LINUX.ORG.RU

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

 , ,


1

2

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

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

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

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

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

А я и не поддерживаю чужой код, я пишу свой:-)

Насчет библиотек - мне хватает самого простого.

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

Ну, того что там есть мне хватает:-) Я верю, что существует некая волшебная вундервафля (настоящее ФП), но судя по ьому что я не могу представить ее применение в своих задачах - она мне ненужна.

«Специалист подобен флюсу» - это про меня:-)

О, ты ж вроде математик? Знаешь что нить про построение многозначных поверхностей в комплексном пр-ве?

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

Убей сам и напищи как надо (токо что б было понятно). Я в этом не специалист.

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

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

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

Возможно ТС тоже не программист, но просто об этом не знает? Я искренне считал себя программистом лет до 30ти.

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

А это такая бесполезная теоретическая хрень, типа машины Тьюринга, на которую любят фапать слабаки, не осилившие настоящего программирования.

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

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

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

Физик знающий фп? О_О.

Нееет сынок, физик это я! А ты программист:-)

Каустики, волновой фронт в неоднородной среде, индекс лучевой трубки - ни о чем не говорит?

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

Я не согласен с этим определением. Согласно ему напртмер дядька с телевиком на свадьбе этл фотограф. Хотя это часто неправда:-)

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

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

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

Я тока один контрпример приведу. Филососфы согласно этому определению это ученые. При этом они не считают философию наукой (и все остальные ученые с ними согласны:-))

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

Ну кроме себя я знаю (не лично) минимум 3 человек с дипломом физика хорошо разбирающихся в haskell.

Чуть больше, но толкового я сказать скорее всего ничего не смогу.

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

Нет, философам так и платят - за философию. И в дипломах и грамотах у них написано - «философ». И в зарплатной ведомости написано, что «философ».

А у кого в бумажках не написано «программист», тот не программист.

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

Я згаю еще одного!

Жаль... а то там интерсная задача, мне вчера вхлам порвало все шаблоны.

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

У кого так написано (а это не у всех, у кого я знаю написано что-либо типа «lecturer in philosophy») - те несомненно являются научными сотрудниками, и мнение всяких там о «научности» или «ненаучности» философии никого не колышет. И если у теолога или, пардон, гомеопата в ведомости написано «научный сотрудник», то он тоже самый настоящий научный сотрудник. По определению.

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

Типа об аксиоматической базе не спорят?:-)

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

quasimoto в них не входит, я не знаю на кого он образовывался. А где он и самому интересно, я в других сообществах кроме лора с ним не пересекался.

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

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

Надеюсь, ты понимаешь, что одно другому никак не противоречит.

Freyr69 ★★★
()

ФП нужен, мой тебе совет:

Завтра ищешь в интернете книжку Categories for the Working Mathematician. Пофиг если ничего не поймешь. Затем идешь на haskell.org и изучаешь стандартную библиотеку от корки до корки. Потом зубришь, именно, сука, вызубриваешь определения языка и стандартных библиотек - The Haskell 2010 Report, чтобы от зубов отскакивало. Когда напишешь свой первый катаморфизм, по пути изучив теорию типов на уровне TaPL-а, скачиваешь и изучаешь любую хаскеллевскую библиотеку с первоклассными функторами и морфизмами, рекомендую category-extras или recursion-schemes. Как переделаешь стандартную прелюдию, чтобы по крайней мере все рекурсивные схемы были выражены через комонады, можешь идти дальше - тебя ждет увлекательный мир теории категорий. Катаморфизмы, параморфизмы, зигоморфизмы, хистоморфизмы, препроморфизмы, анаморфизмы, апоморфизмы, футуморфизмы, постпроморфизмы, хиломорфизмы, крономорфизмы, синкрономорфизмы, экзоморфизмы, метаморфизмы, динаморфизмы алгебра и коалгебра Калвина Элгота наконец. Успех хиккующих выблядков / просто быдлокодеров типа рейфага или сисярп/джава-девелоперов, которые работают в Люксофте не будет тебя волновать и уже через пол года ты будешь получать такие гранты, что любой профессор будет теч при одном упоминании списка твоих публикаций.

holuiitipun ★
()

4. Есть ли вообще программисты на этом дружелюбном ресурсе?

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

Зачем париться? Я вот — вообще хрен в пальто. И как-то не парюсь по этому поводу!!!

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

Вот на stackoverflow

Во, точно! Уж там наверняка не одна сотня программистов сидит... А здесь — ну, от силы тысячи 3 активных пользователей; еще, возможно, тысяч 10 readonly. Если среди них хотя бы 1% программистов наберется, то это будет несколько десятков активных участников форума.

Теперь вопрос: какой процент программистов знает ФП? В общем, найти таких на ЛОРе — это как девственницу в борделе искать!

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

Возможно ТС тоже не программист, но просто об этом не знает?

Возможно...

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

какой процент программистов знает ФП? В общем, найти таких на ЛОРе — это как девственницу в борделе искать!

Если считать, что ты не программист - то да, на лоре их нет.

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

А ты — программист?

Из кучи собеседников на ЛОРе я никого сходу и не вспомню, кто был бы программистом: есть научники, математики, физики, админы, фотографы... Но программистов нет!

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

Я думаю, что кто нибудь из этих - Haskell, монады, память, и все-все-все - скорее всего считает себя программистом.

Я считаю, что программист - это тот, кто получает за кодинг деньги. Для кого это программирование - профессия.

И даже если он отвратительно пишет на долбаном visual basic и получает за это деньги - он все равно программист. Херовый, но программист.

И на лоре много программистов.

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

Других определений нет. И, да, фотограф - это тот, кому платят за то, что он фотографирует.

Согласен.

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

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

Я не пойду, но спасибо за предложение.

Кстати, давно хотел сказать,- мне нравится Ваша аватарка.

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

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

Хреново быть тобой. P.S. Ни разу не фотограф.

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

Я считаю, что программист - это тот, кто получает за кодинг деньги

Не, в этом случае всякие пыхпыхеробыдлокодеры тоже программистами будут считаться!

Для кого это программирование - профессия.

А вот это правильно. Только добавить: и он — профессионал!

И на лоре много программистов

которые сайтики в "жумле" штампуют?

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

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

Вы серьезно?

Тогда реквестирую литературу, которую нужно прочитать, чтобы стать _не_дебилом_. Обещаю прочитать (если это будет по теме).

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

Не, в этом случае всякие пыхпыхеробыдлокодеры тоже программистами будут считаться!

Я их тоже считаю программистами. Они приходят на работу, открывают IDE и там пишут программы. Особо продвинутые потом даже комитят и пушат. Можете считать их умственноотсталыми, слабаками, неосиляторами, как угодно. Но они программируют. И я считаю их программистами.

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

которые сайтики в «жумле» штампуют?

Нет. Сайтики в жумле делаются мышкотыкательно. Это не программирование. А вот плагины под неё уже пишут программисты.

JANB ★
() автор топика

Местный плебс и не слышал о том, что считается достойными задачами:

  • САПРы для разработчиков электроники, содержащие алгоритмы для размещения миллиардов транзисторов на кристалле в соответствии с высокоуровневой спецификацией.
  • Системы управления роботами самых разнообразных типов, ракетами, БПЛА.
  • Алгоритмы распознавания образов, визуальных, звуковых, каких-либо ещё. (Это и есть распознавние лиц, речи и т.д.)
  • Обработка информации на естественном языке.
  • Планирование для принятия решений (в т.ч. составление расписаний) таким образом, чтобы решения были оптимальными по заданному критерию.
  • Моделирование сложных технических и экономических систем.
  • Биоинформатика.

Список можно продолжать и продолжать, я затронул лишь малую часть релевантных тем.

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

1. Да 2. Не знаю 3. Книжки в т.ч. по фп читать полезно

Печально.. Блин, значит всё таки придётся. Просто почитаешь треды на лоре и возникает ощущение, что ФП чаще всего используется для сравнения длин половых членов у самцов-интеллектуалов.

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

мышкотыкательно

предположим, есть секретарша, она форматирует документы в графическом интерфейсе. Пришел некий мессия, и обучил ее делать это в текстовом режиме, например при помощи гипертекстовой разметки. Отличие в том, что раньше она выделяла текст, потом из контекстного меню выбирала font и щелкала по нему. Теперь она пишет <paragraph font=...> Она стала программистом? Какая вообще, принципиальная разница между разработкой в текстовом режиме и разработкой мышкой?

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

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

Функции — first-class objects, засилье итераторов (ленивых структур данных) в пику энергичным структурам данных — вполне достаточно. Другое дело, что физикам-штангистам этого безусловно слишком мало. TCO нет, например.

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

На самом деле, у программиста есть интерфейс, предоставляемый реализацией языка. С этой точки зрения, программист является всего лишь пользователем интерфейса, и тут нет разницы, программирует ли он посредством написания инструкций или мышью. Настоящее программирование начинается тогда, когда инженер является не пользователем языка, а его разработчиком, решая конкретную задачу. Этому, в частности, учит SICP, в отличии от вышеупомянутых харрисонов фордов и прочих домохозяек. И ФП тут не при чем.

linux-101
()

Но что делать с ФП?

Забыть о ФП. Вообще. Нет такого термина «ФП». Вернее не так, понимаешь чем map отличается от filter — можешь считать что полностью освоил ФП и можешь к предмету не возвращаться.

Всякие вещи типа полиморфизм 2-го/высших порядков к ФП относится слабо.

которые как я не осилили монады

Ну я могу помочь тебе «осилить монады» в формате одного поста. Только оно тебе не поможет. Твоей реакцией будет: «что за фигную для школьников 3-го класса ты тут мне рассказываешь».

Про лямбда исчисление — вааще угореть-не-встать. 7-лет в школе и 5 в вузе, ты занимался редукцией нетипизированных (а иногда и просто-типизированных) лямбда-термов. И после чего заявляешь, мол «ниасилил». Гы-гы-гы-гы. Если бы ты его действительно ниасилил — ты бы даже пост написать не смог бы. Факт!

Я хочу развиваться как программист.

Развивайся. Я разрешаю. Знаешь какой единственный способ развития программиста? Нет? Кодить-кодить-кодить-кодить-кодить... Во сне, наяву, на компе, на бумажке, в уме. Думаешь мышечная память играет несущественную роль? Хе-хе-хе...

Хочешь изучать хаскель — изучай. Только учти, хуже инфекции для мозгов ещё не придумали. И если не хочешь заразиться ужасной болезнью «хаскель головного мозга», даже близко не подходи. Слава богу, вирус пока через даже через укусы (не говоря уж про воздушно-капельный путь) не распространяется. Но в секретных лабораториях Фейсбука и M$ research ведутся активные работы по вывыведению новый перспективных штаммов, и каждый следующий штамм оказывается всё более и более вирулентным.

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

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

Ничто не залог успеха кроме самого успеха. Но если ты сумел осилить парадигму ФП — это тест на профпригодность. Он указывает, что *вероятно* ты выбрал профессию верно.

unanimous ★★★★★
()
Вы не можете добавлять комментарии в эту тему: топик перемещен в архив.