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