LINUX.ORG.RU

Нужно ли ФП обычным смертным программистам?

 , ,


1

2

Я c++ джуниор, работаю в интересной компании. Я хочу развиваться как программист.

Что делать с ООП понятно: книжки по паттернам и наизусть свежие стандарты. Но что делать с ФП? Есть ряд вопросов.

  • 1. Нужно ли обычному программисту (не теоретику, а человеку для которого программирование - работа) понимать Функциональщину чтобы профессионально развиваться?
  • 2. Есть ли на этом дружелюбном ресурсе люди, которые как я не осилили монады, лямбда-исчисление и при этом стали хорошими программистами?
  • 3. Полезно ли вообще программисту читать книжки вроде SICP? (у которого нет главной жизненной цели - блистать умом на лоре).

Перемещено mono из talks


на этом дружелюбном ресурсе

На этом, врядли. Вот на stackoverflow или kernel.org — да.

Полезно ли вообще программисту читать книжки

Вот смотри, на примере Столлмана. Он любит лисп, но большинство софта (99%) на gnu.org написаны и должны быть написаны на сях (не плюсах). Так что, полезность определяется индивидом, а есть еще стандарты и соглашения в каждом отдельном коллективе.

ИМХО, когда вопрос ставится из чего угодно, но не личных побуждений, значит ответом будет демагогия. Т.е. сначала надо ответить на вопрос: а нравится ли мне ФП? И ответ должне быть: да, я фанат, черт возьми, ФП! Да, я хочу писать софт на ФП. И следующий вопрос должен быть: я написал программу на лиспе/хаскеле, она вам нравится, а? А? :)

gh0stwizard
()

Нужно ли обычному программисту (не теоретику, а человеку для которого программирование - работа) понимать Функциональщину чтобы профессионально развиваться?

Нужно? - нет. Но полезно иметь хотя бы минимальное представление.

Полезно ли вообще программисту читать книжки

Да.

Stanson ☕☕☕☕☕
()

Есть мнение, что знание ФП расширяет кругозор и позволяет смотреть на проблему под разными углами и находить более удачное решение в ООП языках. После многих лет я таки сажусь за изучение ФП, но тут скорее приспичило.

roy
()

Переместите вброс в Development.

Pavval
()

Читать и узнавать новое вообще очень полезно. Никто же не заставляет тебя перегнать весь свой быдлокод на крестах в быдлокод на хаскеле.

хорошими программистами

Пруфы нужны

человеку для которого программирование - работа

Вопрос типа «нужно ли ученому знать математику»

смертным

Тоже выкладывай пруф, вдруг ты бессмертный

buddhist ☕☕☕☕
()
Последнее исправление: buddhist (всего исправлений: 1)

1. Нужно ли обычному программисту (не теоретику, а человеку для которого программирование - работа) понимать ООП, чтобы профессионально развиваться?

2. Есть ли на этом дружелюбном ресурсе люди, которые как я не осилили инкапсуляцию, наследование, и при этом стали хорошими программистами?

3. Полезно ли вообще программисту читать книжки вроде <<Паттерны ООП>>? (у которого нет главной жизненной цели - блистать умом на лоре).

Нет, ООП не нужно, функциональщина не нужна, языки высокого уровня не нужны, все должды писать на ассемблере, типы и лямбды придумал сатана, чтоб совратить человеков с пути истинного.

Freyr69
()

понимать Функциональщину чтобы профессионально развиваться?

Обязательно. Хотя бы на уровне map, reduce, filter

Полезно ли вообще программисту читать книжки вроде SICP

Читать книжки вообще полезно.

no-such-file 👍👍👍👍👍
()

Ты можешь пояснить, какое отношение SICP имеет к сабжу? Ты хотя бы пролистал его? Или может обложку видел, содержание прочитал?

По сабжу. Для плюсовика ФП — самое оно, это все тот же BDSM, поэтому должно быть привычно и легко. Это штука, очень похожая на класс-ООП, только это все стараются тшательно скрывать.

linux-101
()

Нужно ли ФП?

1. Нет

Есть ли на этом дружелюбном ресурсе люди

2. Да, наверняка есть, но ты никак не сможешь пустить одних и не пустить других. Так что смирись и прими наше милое сообщество таким, какое оно есть.

Полезно ли вообще программисту читать книжки вроде SICP?

3. Есть много других хороших книг, и нет ни одной такой книги, которую ты просто обязан прочитать. Читай то, что нравится.

pathfinder
()
Ответ на: комментарий от gh0stwizard

Т.е. сначала надо ответить на вопрос: а нравится ли мне ФП? И ответ должен быть: да, я фанат, черт возьми, ФП! Да, я хочу писать софт на ФП. И следующий вопрос должен быть: я написал программу на лиспе/хаскеле, она вам нравится, а? А? :)

Нет, мне не нравится ФП - я его не понимаю. Для меня это сильно высшая математика.

Но сотни пользователей ресурса linux.org.ru не могут же ошибаться....?

JANB
() автор топика
Ответ на: комментарий от pathfinder

Пустить?

Я просто хочу чтобы мне сказали, что «знание функционального программирования» - не залог успеха в IT.

JANB
() автор топика
Ответ на: комментарий от linux-101

Ты можешь пояснить, какое отношение SICP имеет к сабжу? Ты хотя бы пролистал его?

Купил. Пролистал. Во многом - книга просто по Computer Science. Но, умные и компетентные пользователи linux.org.ru говорили что там изложены основы ФП.

JANB
() автор топика
Ответ на: комментарий от JANB

У тебя проблема с логикой, а вот уж она точно нужна хорошему программисту

buddhist ☕☕☕☕
()
Ответ на: комментарий от JANB

Но, умные и компетентные пользователи linux.org.ru говорили что там изложены основы ФП.

Это слишком сильно сказано. Там рассматривается лишь подстановочная модель вычислений, только в первых главах, затем делается однозначный вывод, что фапэ сосет (время имеет значение, да), и следует резкий переход к ИМПЕРАТИВНОМУ программированию, как к сложной, но ПРАВИЛЬНОЙ модели.

anonymous
()
Ответ на: комментарий от JANB

умные и компетентные пользователи linux.org.ru

У тебя какая-то проблема с выбором авторитетов, советую обратиться в близлежащую поликлинику к специалисту

buddhist ☕☕☕☕
()
Ответ на: комментарий от anonymous

следует резкий переход к ИМПЕРАТИВНОМУ программированию, как к сложной, но ПРАВИЛЬНОЙ модели.

Да, а книжка учит не тому, как избегать сложности, а как с ней справляться.

anonymous
()
Ответ на: комментарий от buddhist

будут только плюсы.

Плюсы головного мозга.

anonymous
()

Нужно изучать функциональщину просто чтобы не быть на уровне грязного животного, которое гадит в глобальном стэйте и через всякие побочные фокусы реализует управление потоком выполнения.

nerdogeek
()
Ответ на: комментарий от buddhist

Тебе нужны чулки? Нет? Если нет, то надень их, и пройдись по площади имени Ленина, профит обеспечен. Только конченые идиоты могут думать, что нужно то, что не нужно. Странно, что ты буддист еще какой-то, с такими шаловливыми мыслишками.

anonymous
()
Ответ на: комментарий от JANB

сотни

Ты хочешь сказать, что тут несколько сот любителей ФП? Тут нужен пруф. Ну хотя бы ссылка на голосование.

greenman 👍👍👍
()
Ответ на: комментарий от JANB

Но сотни пользователей ресурса linux.org.ru не могут же ошибаться....?

Кто все эти люди?

iVS
()
Ответ на: комментарий от JANB

Ни что не залог успеха в IT, если не дано* - ФП** не поможет, если дано, к успеху и без ФП** прийти можно.

* - требует уточнения т.к. при определённом упорстве можно развить многое

** - можно заменить на ООП, TTD, и проч аббревиатуры, суть не поменяется.

qnikst
()

Функциональщину саму по себе понимать не надо.

Надо на практическом уровне понимать, что такое лямбда, что такое замыкание, что такое область видимости имен, что такое семантика перемещения - все то, что важно для понимания возможностей современного C++.

Монады, как и все прочие design patterns, это такая штука, которой все пользуются, но не все знают, как оно называется. И не надо, собственно, я считаю, глупо это, каждый мелкий нелепый шаблон именовать и носиться потом с этим как с писаной торбой.

SICP - устаревшая, глупая книжонка для первокурсников из отсталых факультетов, без малейшего опыта программирования. Если ты не У/О из школы для недоразвитых, то SICP тебе не нужен.

anonymous
()
Ответ на: комментарий от buddhist

Вопрос типа «нужно ли ученому знать математику»

Чушь. Правильнее «нужно ли слесарю-электрику знать вариационное исчисление и ТФКП?»

anonymous
()
Ответ на: комментарий от no-such-file

Хотя бы на уровне map, reduce, filter

Которые к функциональщине не имеют ни малейшего отношения, и наиболее эффективно применяются при наличии сайд-эффектов.

anonymous
()
Ответ на: комментарий от JANB

Но, умные и компетентные пользователи linux.org.ru говорили что там изложены основы ФП.

Основы ФП изложены у Барендрегта и у Филда с Харрисоном. А в SICP разжевывают на уровне, доступном дебилам, как писать программы не сильно сложнее hello, world, без привязки к языкам и парадигмам. Если считаешь себя дебилом - читай SICP. Если думаешь, что у тебя еще есть какая-то надежда стать человеком, то не читай SICP.

anonymous
()
Ответ на: комментарий от Indaril_Shpritz

Это что вообще за говно, и зачем ты это сюда принес?!?

anonymous
()
Ответ на: комментарий от JANB

1) Шома не погроммист, а менеджер

2) Шома лузер. За историями успеха иди к местному престарелому жабакодеру, который хвастается запредельной для школоты зарплатой в $4000

anonymous
()

1) За монады не скажу (не знаю что это, или возможно знаю но не знаю что оно так называется;-)), но лямбды в плюсах иногда использую. Код становится лаконичней и понятней без потери производительности. В питоне юзаю ФП сплошь и рядом - это просто удобно.

2) я не считаю себя прораммистом;-)

3) Книжки читать однозначно полезно, в т.ч. по программированию.

AIv
()
Ответ на: комментарий от AIv

Да даже если и не используешь лямбды (мне вот очень редко это бывает нужно), то уж читать-то чужой код с лямбдами все равно придется. Какой же это «программист на C++», который не знает всего языка?

anonymous
()

1. Как минимум полезно для расширения доступных возможностей при проектировании.

2. Дофига.

3. Книжки читать вообще полезно. Особенно расширяющие кругозор.

Dark_SavanT 👍
()

Основной вопрос на ЛОРе - нужно или не нужно. Это от сомнений...

Сомнения от неустойчивости и от лени. Позитивное тут лень - движитель прогресса.

Вопрос нужности решается на 123, так-же как и вопрос брать зонт или нет ;)

anonymous
()
Ответ на: комментарий от anonymous

λ-исчисления являются основой для функционального программирования, многие функциональные языки можно рассматривать как «надстройку» над ними[1].

(С) википедия.

AIv
()
Ответ на: комментарий от anonymous

у Барендрегта и у Филда с Харрисоном

У них разжевывается, как программировать с хронической недостаточностью головного мозга, т.е. они дают ответ на вопрос: «Могу ли я стать программистом, обладая мозгами секретутки?» — «Да, ведь мы смогли!!!». В SICP же, разжевывают на уровне, доступном дебилам, что программировать дебилы не способны, для них есть другой вариант — псевдопрограммирование (в обиходе — фп)

anonymous
()
Ответ на: комментарий от JANB

Не залог. Залог успеха - умение решать поставленные задачи в разумные сроки. Как впрочем и везде.

Dark_SavanT 👍
()
Ответ на: комментарий от anonymous

Ну я вот не знаю всего языка, я ограничиваюсь только тем что мне нужно. Да и слабо мне верится, что есть люди (акромя создателей) знающие ВЕСЬ С++:-)

AIv
()
Ответ на: комментарий от AIv

Нет, друг мой, лямбды — это функции (как правило, анонимные), которые являются первоклассными объектами. А лямбда-исчисление — это про другое. Ты говорил именно про лямбды.

anonymous
()
Ответ на: комментарий от AIv

Ты не можешь поддерживать чужой код и пользоваться чужими библиотеками, не зная как минимум синтаксиса всего языка. Да и не такой он и сложный, все «сложности» C++ из UB лезут.

anonymous
()
Ответ на: комментарий от AIv

В питоне нет ФП (т.е. ест очень маленький срез фподходов характерных для ФП) :) а так ты вроде весьма хороший специалист

qnikst
()
Ответ на: комментарий от AIv

Лябмды в сях имеют далеко не прямое отношение к лябмда исчислению. ЛИ - является теоритической основой ФП языков, как МТ для императивщины, правда к ней почаще обращаются в теории вопросах.

qnikst
()
Ответ на: комментарий от anonymous

В языках программирования под «λ-исчислением» зачастую понимается механизм «анонимных функций» —callback-функций, которые можно определить прямо в том месте, где они используются, и которые имеют доступ клокальным переменным текущей функции.

(С) википедия

AIv
()
Ответ на: комментарий от tailgunner

Отстань, ты у меня щас будеш долго требовать определение не своими словами (т.к. ими будет неточно) пока мне не надоест и отажешься прав. :)

qnikst
()
Последнее исправление: qnikst (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.