Адепты FP задолбали со своей нелюбовью к OOP. Как, впрочем, и все остальные странные люди с плакатиком "XXX — плохо!"
Простите, я очередной раз пытаюсь понять, в каком стиле мне приятно писать. Пока выходит так что главное — не слушать блядь никаких советов. ‎· российский соотечественник
Адепты fixed price? :-) ‎· Все собаки попадают в рай
Этим вообще ничего уже не поможет ‎· российский соотечественник
теперь представим себе XXX = PHP или даже WordPress ‎· верёвка ольховая лёгкая
^ а все то же самое. Если есть какое-то недовольство тем или иным инструментом, то на плакатике так и надо писать: «Мне не нравится XXX» ‎· baton
Адепты OOP тоже забодали своей нелюбовью ко всему, что не мапится на модель OOP (тот же FP). ‎· Загляни в ведро
Недавно был полупьяный срач аспиранта-линуксоида, пилящего что-то на хаскелле, и закоренелого C++-виндузятника. Я наблюдал всё это до тех пор, пока в оппонентов не полетели ложки. ‎· Загляни в ведро
^^^ это плохо действует на людей, не способных к самостоятельному мышлению, которые обычно и составляют основной контингент приверженцев ХХХ ‎· верёвка ольховая лёгкая
^ абсолютно согласен ‎· Загляни в ведро
^^ Не верю что я это делаю, но вот: http://rationalwiki.org/wiki/Balance_fallacy Иногда приверженцы просто лучше соображают. ‎· сын пепла
^ м, ну суть же не в том, хорош ХХХ или нет, потому что круг применимости, подходящий инструмент и всё такое, а в категорическом высказывании как способе заставить задуматься тех, кто этого не делал ‎· верёвка ольховая лёгкая
и да, адепты часто знают лучше, потому что поставлены в нечеловеческие условия, а также self-selection ‎· верёвка ольховая лёгкая
Если что, я не люблю ООП. Если не лень читать, то вот один из самых осмысленных rants на эту тему: http://www.smashcompany.com/technology/object-oriented-progra... ‎· сын пепла
Person A is thus protected from the harmful effects of new information. #SmileAcrossTheAisle ‎· псы в рапиде
А как вы относитесь к людям с плакатиками "Всё плохо"? Или там, менее радикально, "right tool for the job"? ‎· 9000
Как приверженец XXX, я возмущён оскорблениями в каментах. Вы сперва добейтесь, чтобы тиолки устраивали вам threesome в жизни каждый день, а потом говорите, как плохо пользоваться вместо этого XXX! ‎· igors
Rant настолько же бессмысленный, насколько и все остальные. То есть легко и приятно объявлять что "приверженцы просто лучше соображают" — но нет. list.length ничем не хуже length(list) или (length list). Well, homoiconicity — но её нет ни в ML ни в Haskell, а считать их non-FP пока вроде бы никто не рвётся. ‎· российский соотечественник
Отдельно встает вопрос о том, хорошо ли "лучше соображать" и что это вообще такое... ‎· российский соотечественник
@9000 я плохо отношусь к людям с плакатиками. Людей с плакатиком "right tool for the job" я пока не видел — возможно потому что плакатик isn't ‎· российский соотечественник
@alf: Тут не про "лучше соображают", тут про "легче думать". Т.е. наоборот, доступнее простым коротышкам™ вроде меня. Все эти immutability, composability ­и referential transparency — про то, как облегчить мышление и тем уменьшить вероятность ошибки. А от них уж растёт функциональный стиль как наиболее удобный для их реализации. Великая заслуга ООП в этом смысле — продвижение в мэйнстрим идей модульности, отделения интерфейсов от имплементации, SOLID и т.п. Эти вещи, вообще говоря, не так уж привязаны к ООП, так же как всякие "функциональные" вещи не так уж противоречат ООП. ‎· 9000
"list.length ничем не хуже length(list)" — обычно, всё-таки, хуже. `map length lst` проще делать, чем `map methodcaller(:length) lst` какой-нибудь. А с currying сделать `m = obj.binOp; m(x); m(y)` не составляет труда тоже: `m = binOp obj; m(x); m(y). ‎· адский хардлайн в засаде
@9000 с тобой неинтересно спорить, потому что ты прав и не несёшь чепухи :) ‎· российский соотечественник
^^ ха! `lol map (_.length)`, пожалуйста. Не сложнее (+) в хаскеле. Синтаксический сахар на то и сахар, собственно. ‎· российский соотечественник
По моим наблюдениям, не любят не ООП как таковое, а карго-культ ООП и порождамые им чудовища вроде IAbstractHelloWorldFactory. Причина, кажется — индоктринация джавой в вузе + карго-культ паттернов программирования + кровавый энтерпрайз. ‎· alive w/ technology
Ну так карго-культ FP ничем не лучше — я не знаю как лучше соображающие, а я не люблю в коде замыкания внутри замыканий. И если мэйнстримный ООП-программист пойдёт писать на хаскеле, то разгребать за ним будет не легче чем на джаве, ой не легче ‎· российский соотечественник
Иными словами, люди, склонные к карго-культу и не любящие думать и упрощать, при любом подходе устроят ужос. Проблема, таким образом, в людях. "Дело было не в бобине", как говорили пользователи совсем других инструментов. ‎· 9000
Я вообще не представляю себе, что такое ООП в отрыве от конкретного языка и образовавшихся вокруг него (и/или его фреймворков) практик, ООП в стиле пайтон+твистед, ООП в стиле плюсы+стл и ООП в ключе обж-си+риэктивкокоа, например, это настолько разные штуки, что я даже не представляю, что можно вынести за скобки. Ээээ, идею группировки структур данных и рутин для обработки этих данных? Ну я не знаю, мне было бы сложно такую абстрактную вещь активно нелюбить. ‎· zrslv
^ В этой идее можно легко "активно нелюбить" mutable state, канонически инкапсулированное в потрохах объекта. С другой стороны, никто не заставляет его быть mutable. ‎· 9000
^^ Наследование, инкапсуляция, полиморфизм! ‎· Буква quail chick
^^ я туда специально objective c+reactivecocoa подмешал с их традиционными immutability вокруг ОО. ‎· zrslv
^ Ну OK. На фортране можно писать на любом языке, так ведь и на лиспе можно писать на любом языке (на его баснословной самозародившейся половине). Другое дело, что большинство учебников хоть ООП, хоть структурного программирования учат делать mutable state. Даже на яве можно делать composable functions в виде "fluid interface". Кмк, из всех подходов надо брать ценное и использовать, с пониманием присущих этому ограничений. А ярлычки всегда неточны. ‎· 9000
^^^ ну разве что инкапсуляция, про которую я и написал, полиморфизм не специфичен для ООП, а "наследование" это общее название для разных штук, в широком смысле наследование будет встречаться в любой парадигме. ‎· zrslv
^ Да-да, у хаскельных type classes бывают default implementations методов! Правда, diamond pattern там, наверное, не устроить. ‎· 9000
@9000 ну вообще да, ООП зародился из попытки мутабельность обуздать, ФП, в некотором смысле, из принципа "всего одна глобальная переменная это ровно на одну глобальную переменную больше чем нужно", так что, если их и противопоставлять, то как раз по этой оси, контакт. С другой стороны, а чего тогда именно ООП нелюбить, надо тогда уж всех, кто не ФП (я чет не знаю, есть еще какие-то мютабилити-пуристы, так чтоб прям на уровне концепции?) ‎· zrslv
@9000 и напомни мне никогда не ввязываться с тобой в "сколько языков и подходов я знаю"-соревнование, если вдруг такое будет намечаться, сдаюсь еще до начала. ‎· zrslv
@zrslv: нуу, "знаю" — это про меня громко сказано. скажем, про ObjC я не знаю ровно ничего содержательного. и это, соревноваться я не пытался, если что. ‎· 9000
^ просто credit where it's due, никакого двойного смысла ‎· zrslv
судя по комментариям делаю вывод что никто не прочитал линк, cause TMI. @9000 тебе советую прочитать особенно, мне кажется ты и сам со всем согласен, просто хочешь мирного неба :) там на полчаса вдумчивого чтения. ‎· сын пепла
Если и так со всем согласен, не очень понятно, зачем тратить полчаса жизни на чей-то rant. А делать выводы никто не запрещает, делайте. ‎· российский соотечественник