Почему функциональные языки? [закрытый]

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

329
задан 2 revs, 2 users 100% 4 September 2008 в 00:30
поделиться

47 ответов

Некоторые мысли:

  • дебаты между FP и императивным программированием (OO, структурированное, и т.д.), бушевал начиная с Lisp по сравнению с Фортраном. Я думаю, что Вы ставите превосходные вопросы, но распознаете, что они не являются особенно новыми.
  • Часть шумихи вокруг FP - то, что мы, кажется, распознаем, что параллелизм является очень трудным, и что блокировки и другие механизмы в OO (например, Java) являются всего одним решением. FP предлагает обновляющие кардинальные изменения с идеями, такими как Агенты и питание вычисления не сохраняющего состояние. Тем, которые борются с OO, среда кажется очень привлекательной.
  • Да, школы преподают FP. На самом деле Университет Уотерлу и другие предлагают Схему в первых классах года ( ссылка здесь ).
  • Относительно среднего программиста, я уверен, что те же аргументы были даны против C++ назад в начале 1990-х. И посмотрите, что произошло. , Если компании могут получить преимущество через технологию, можно держать пари, что люди получат обучение.

Нельзя сказать, что это - решенный вопрос, или что не будет обратной реакции через 3-5 лет (поскольку всегда существует). Однако тенденцию к FP имеет заслугу и стоит наблюдать.

1
ответ дан Michael Easter 4 November 2019 в 10:24
поделиться

Существует большая статья от Slava Akhmechet названа Функциональное программирование Для Остальной части Нас (это было статьей, которая получила меня в FP btw). Среди преимуществ FP приносит, он неправославным образом подчеркивает следующее (которому я верю, способствует призыву к разработчикам программного обеспечения):

  • Поблочное тестирование
  • Отладка
  • Параллелизм
  • Горячее Развертывание Кода
  • Машина Помогла Доказательствам и Оптимизации

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

Наиболее рекомендуемый!

1
ответ дан Herrmann 4 November 2019 в 10:24
поделиться

Мм, жаль, чтобы быть педантом, но это уже завоевало популярность - мы называем его Excel.

http://research.microsoft.com/en-us/um/people/simonpj/papers/excel/

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

(существует много программ, которые много раз запускаются, и программы, записанные в Excel, имеют тенденцию НЕ быть их - большинство программ Excel имеет 1 выполненный экземпляр)

0
ответ дан Gordon Guthrie 4 November 2019 в 10:24
поделиться

FP является следующей лучшей парадигмой, которая является наверняка. Теперь то, какой язык мог быть следующим шагом, Который является сложными вещами, но я верю, могло быть Haskell, F#, Clojure, Ocaml или Erlang. Или мог быть Python с большим количеством конструкций FP и лучшей поддержки параллелизма/производительности, или также Perl 6 с попугаем выглядит очень интересным.

0
ответ дан OtengiM 4 November 2019 в 10:24
поделиться

Это уже завоевало популярность с, Отображают/уменьшают в Hadoop

0
ответ дан 2 revs, 2 users 86% 4 November 2019 в 10:24
поделиться

Много людей упомянуло Функциональные Языки.

, Но некоторые Обычно используемые Функциональные Языки, используемые сегодня помимо JavaScript.

Excel, SQL, XSLT, XQuery, J и K используются в финансовой области.

, Конечно, Erlang.

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

0
ответ дан DouglasH 4 November 2019 в 10:24
поделиться

Функциональное программирование уже завоевало популярность, по моему скромному мнению, это просто не очень видимо все же. Сила таких языков является mathematics/algorhithms, который является одной из причин, почему Парни Halo используют его для своего материала TrueSkill.

-3
ответ дан 2 revs, 2 users 71% 4 November 2019 в 10:24
поделиться

Я на самом деле изучаю LISP после читающих Хакеров, и Живописцы и я действительно полагаем, что я УЗНАЮ о чем-то из LISP, который даст мне лучший undertanding всего остального, что я программирую. Теперь я не думаю, что буду на самом деле использовать LISP в своем повседневном просто, потому что некоторый парень в 1995 создал веб-сайт, который стал Хранилищами Yahoo. Таким образом, это - взаимовыгодное так или иначе (если это завоевывает популярность, я побеждаю в противном случае, я понимаю больше мыслей представлений о том, как программировать и как материал работает)

Теперь... по другому вопросу, отчасти связанному, я думаю, программируя, изменится много с 32 ядрами procs прибывающий в следующем году? ДА, я не знаю, будет ли это функциональное программирование, но... Я вполне уверен будет что-то различное!

1
ответ дан 2 revs, 2 users 83% 4 November 2019 в 10:24
поделиться

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

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

0
ответ дан Chris 4 November 2019 в 10:24
поделиться

Суть, упущенная в обсуждении, - то, что лучшие системы типов найдены на современных языках FP. Кроме того, компиляторы могут вывести все (или по крайней мере большинство) типы автоматически.

Интересно, что каждый тратит половину времени, пишущий имена типов при программировании Java, все же Java далеко не безопасен с точки зрения типов. В то время как Вы никогда не можете писать, типы в программе Haskell (за исключением своего рода компилятора проверил документацию), и код на 100% безопасен с точки зрения типов.

2
ответ дан Ingo 23 November 2019 в 00:46
поделиться

Я бы отметил, что все, что вы говорили о функциональных языках, большинство людей говорили об объектно-ориентированных языках около 20 лет назад. В то время было очень часто слышать об ОО:

* The average corporate programmer, e.g. most of the people I work with, will not understand it and most work environments will not let you program in it
* It's not really taught at universities (or is it nowadays?)
* Most applications are simple enough to be solved in normal IMPERATIVE ways

Изменения должны откуда-то приходить. Значимые и важные изменения произойдут независимо от того, считают ли люди, обученные более ранним технологиям, мнению, что в изменениях нет необходимости. Как вы думаете, изменение OO было хорошим, несмотря на то, что все люди были против него в то время?

8
ответ дан 23 November 2019 в 00:46
поделиться

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

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

- Миямото Мусаси, «Книга пяти колец»

15
ответ дан 23 November 2019 в 00:46
поделиться

Функциональное программирование, вероятно, будет инструментом, который используется Инженерами, Учеными для решения проблем, с которыми они сталкиваются. Это не собирается брать мир как ранее langages. Однако твердым продуктом для избиения является Excel, если я - инженер и потребность сделать вычисления, Excel является потрясающим.

Однако F# будет другим источником и вероятно удовлетворит потребности дизайна непрограммистами. Давайте столкнемся с ним, Программисты сделали отличную работу по созданию совершенно нового способа сделать вещи. Объектно-ориентированное программирование является БОЛЬШИМ. Но иногда Вам просто нужен способ решить уравнение, получить решение и изобразить его в виде графика.Именно. Затем язык как F# подходит. Или возможно Вы хотите создать конечный автомат, F# снова мог быть одним из решений, но затем C мог быть решением также.

Но когда дело доходит до параллельной обработки, сияний Excel и вовремя F# будет там также. Дружественным способом, хотя, F# = дружественный.

0
ответ дан Sam Stokes 23 November 2019 в 00:46
поделиться

Мне трудно представить себе, что чисто функциональный язык станет общепринятым языком дня, причины, по которым я не буду вдаваться в подробности (потому что они - корм для пламени). При этом функциональное программирование может дать преимущества независимо от языка (если это позволяет). Для меня это возможность намного проще протестировать свой код. Я много работаю с базами данных ... Я обычно:

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

. Это позволяет мне писать модульные тесты для моей функции манипулирования без необходимости создавать имитацию и т.п.

Я действительно думаю, что чисто функциональные языки очень интересны ... Я просто думаю, что это '

1
ответ дан 23 November 2019 в 00:46
поделиться

Microsoft действительно продвигает F # в следующей версии Visual Studio. Это гибридный язык, такой как Scala, и он очень хорошо интегрируется с остальной частью .NET Framework. Я думаю, что многие магазины Microsoft собираются использовать его для ускорения разработки приложений и функций для высокопараллельной обработки данных.

0
ответ дан 23 November 2019 в 00:46
поделиться

Лично я думаю, что для распределенных систем и многопоточного / параллельного программирования функциональное программирование скоро будет прорывом. Пока он интегрируется с существующими парадигмами ООП через библиотеки программирования. Так что ... чисто функциональный подход, на мой взгляд, останется академическим.

0
ответ дан 23 November 2019 в 00:46
поделиться

Функциональное программирование существует уже давно, поскольку LISP был одним из первых языков, имевших компилятор, а также со времен LISP-машин MIT. Это не новая парадигма (OO намного новее), но доминирующие программные платформы, как правило, написаны на языках, которые легко переводятся на язык ассемблера, а их API-интерфейсы в значительной степени поддерживают императивный код (UNIX с C, Windows с C и Macintosh с Pascal и позже C).

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

0
ответ дан 23 November 2019 в 00:46
поделиться
Другие вопросы по тегам:

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