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 ★★★★★
()
Ответ на: комментарий от buddhist

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

Очевидно же, что нет. Разве что пакет Mathematica ;)

iVS ★★★★★
()
Ответ на: комментарий от 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)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.