Haskell против процедурного программирования в реальном мире [закрыто]

11 ответов

Haskell не так сложен, как люди любят думать, чтобы учиться. Haskell открывает для вас новый мир, о существовании которого вы даже не подозревали. Его так же важно выучить, как и любой другой язык. Возможно, вы не найдете работу, требующую от вас программирования на Haskell, но действительно ли это означает, что язык бесполезен?

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

Haskell на самом деле мало используется в «реальном мире», если вы определяете «реальный мир» как «генератор денег». Так что если это ваша цель, то вам, возможно, придется переосмыслить цели: p

Кроме того, мне не очень нравится эта часть выбранного ответа «как выучить haskell». Чтобы овладеть любым языком, не только Haskell, нужны месяцы или годы. В зависимости от того, как вы определяете «хозяин». Я могу использовать Haskell с довольно хорошей степенью эффективности, я изучаю его всего месяц, и даже медленно.

52
ответ дан 26 November 2019 в 21:49
поделиться

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

Функциональная парадигма начинает проникать в различные основные приложения и языки - даже C ++ собирается добавить (урезанную) лямбду в C ++ 0x.

Вы также можете посмотреть на некоторые гибридные языки, такие как Scala или OCaml. Scala используется в Twitter, а OCaml используется на Jane's Street в финансовой торговой платформе.

19
ответ дан 26 November 2019 в 21:49
поделиться

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

10
ответ дан 26 November 2019 в 21:49
поделиться

В отличие от процедурных языков, будет ли мне полезно изучать Haskell и парадигмы функционального программирования?

Если наличие расширенного набора навыков полезно, тогда: да.

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

Наличие этого навыка в рукаве не повредит.

7
ответ дан 26 November 2019 в 21:49
поделиться

Я вижу, что функциональное программирование может быть плюсом в производственной среде, если его очень легко использовать нефункциональным кодом. Думаю, MS тоже это заметил, когда они придумали F #.

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

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

Поэтому, поскольку база пользователей MS такая большая, я предполагаю, что если F # не приживется в ближайшем будущем, то и Haskell тоже.

5
ответ дан 26 November 2019 в 21:49
поделиться

Расширение кругозора поможет вам стать лучшим программистом независимо от того, какой язык вы используете в данный момент. Вы никогда не будете смотреть на программирование таким же образом, например, после того, как напишете макросы Lisp. После того, как вы начнете мыслить в терминах Haskell, вы обнаружите, что составляете функции и желаете замыканий на менее продвинутых языках.

Судя по положительным особенностям C #, таким как лямбда-выражения, вывод типов, замыкания, и так далее ], изучение Haskell даст вам преимущество в завтрашнем дне в распространенных языках.

2
ответ дан 26 November 2019 в 21:49
поделиться

Некоторым людям нравится программировать на Haskell. Если вы можете выбрать свое окружение, и удовольствие - это соображение, тогда, может быть, вам стоит вмешаться.

Многие программисты не в состоянии выбирать свои инструменты, и удовольствие не является фактором для их выбора. Многие из них используют C / Java / и т. Д. На своем рабочем месте в качестве «основного источника проекта», но затем также выбирают или нуждаются в использовании Python для «скриптов», таких как скрипты сборки с SCons, другие скрипты, которые генерируют Java / т. Д. код, системы тестирования, проверки концепций и т. д. И в других местах Python также используется в «основном проекте».

Через 8 лет это будет Haskell, а не Python, который «придет в ты". Но вы можете прийти к этому раньше.

Многие из них используют C / Java / и т. Д. На своем рабочем месте в качестве «основного источника проекта», но затем также выбирают или нуждаются в использовании Python для «скриптов», таких как скрипты сборки с SCons, другие скрипты, которые генерируют Java / т. Д. код, системы тестирования, проверки концепций и т. д. И в других местах Python также используется в «основном проекте».

Через 8 лет это будет Haskell, а не Python, который «придет в ты". Но вы можете прийти к этому раньше.

Многие из них используют C / Java / и т. Д. На своем рабочем месте в качестве «основного источника проекта», но затем также выбирают или нуждаются в использовании Python для «скриптов», таких как скрипты сборки с SCons, другие скрипты, которые генерируют Java / т. Д. код, системы тестирования, проверки концепций и т. д. И в других местах Python также используется в «основном проекте».

Через 8 лет это будет Haskell, а не Python, который «придет в ты". Но вы можете прийти к этому раньше.

который будет «приходить к вам». Но вы можете прийти к этому раньше.

который будет «приходить к вам». Но вы можете прийти к этому раньше.

1
ответ дан 26 November 2019 в 21:49
поделиться

В отличие от процедурных языков, будет ли мне полезно изучать Haskell и парадигмы функционального программирования?

Нет, если вы не хотите быть несчастным. Люк Плант говорит в Почему изучение Haskell / Python делает вас худшим программистом :

Итак, изучение Python и Haskell деморализовало меня и воодушевило мне написать причудливый и трудный для понимания код ...

(Это не совсем шутка.)

4
ответ дан 26 November 2019 в 21:49
поделиться

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

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

Функциональное программирование вместо этого может быть чрезвычайно полезным в очень прагматической манере - многие объектно-ориентированные / императивные языки теперь включают функциональные элементы по этой причине (Linq, анонимные функции, значения только для чтения, указатели / делегаты функций, вывод типов) : Вы можете сконцентрироваться на том, что должно быть сделано, что позволит вам выразить больше с помощью меньшего количества кода (что еще менее подвержено ошибкам).

Не чисто функциональные языки (стандартные функциональные языки), такие как Scala или F #, могут быть легко интегрированы в существующая Java или. NET-проектов, поэтому вы можете комбинировать преимущества обеих парадигм там, где они необходимы. Типичные преимущества функциональных языков см. В этой ветке . Просто подумайте о чрезвычайно мощном синтаксическом анализе (комбинаторы монадического синтаксического анализатора / Parsec) или параллельном программировании, которое возможно с функциональными языками, и вы увидите, насколько они полезны.

5
ответ дан 26 November 2019 в 21:49
поделиться

Вы можете комбинировать использование функционального программирования и прагматично

Все современные языки сценариев, включая JavaScript или Lua, допускают использование функциональной парадигмы.

1
ответ дан 26 November 2019 в 21:49
поделиться

Функциональная концепция набирает обороты. Обратите внимание на всплеск активности и интереса к Ruby. Я также заметил, что в последнее время немного больше интереса к JavaScript, чем к простому языку сценариев браузера. Вы можете опередить игру, ныряя в нее сейчас, хотя потраченное время может не окупиться в этом или следующем году.

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

1
ответ дан 26 November 2019 в 21:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: