Функциональное программирование |
Функциональное программирование всегда привлекало меня в противопоставлении к императивному.
Я очень часто обсуждаю различные аспекты функционального программирования на различных ветках на Базарной площади.
Но хотелось бы собрать всех заинтересованный этой темой в одной ветке.
Я думаю что настало время открыть такую тему. И вот почему.
Исторически функциональное программирование появилось практически вместе с императивным.
Вторым языком после фортрана был лисп.
Но увы, функциональное программирование надолго было уделом исследовательских институтов или специализированных приложений (Искусственный Интеллект)
Конечно не надо считать весь мир дураками из за того что развитие пошло по пути языков Алгол семейства.
Для этого были вполне обьективные причины. Функциональные языки слишком близки к человеку и слишком далеки от машины.
Они сьедают в десятки раз больше рессурсов чем императивные языки.
Вспомните претензии, предявляемые к java - первому императивному языку с виртуальной машиной и сборщиком мусора, толкаемому большими корпорациями в mainstream.
Жутко тормозит, и жрет всю память какая есть. А ведь функциональные языки (далее ФЯ) все без иключения имеют сборщик мусора, виртуальную машину.
Многие из них (семейство лисп) еще и динамические, что только усугубляет положение.
Вполне естественно что появившись более полусотни лет назад они надолго опередилли свое время.
Для широкого распространения ФЯ нужны гигабайты дешевой памяти и гигагерцы дешевых процессоров.
Прошло более 50 лет, прежде чем такие требования к железу стали реальностью.
Это время наступило. СЕЙЧАС.
Добро пожаловать в новую эру программирования.
Jack Of Shadows
Всего в теме 5502 сообщения
Добавить свое сообщение
Отслеживать это обсуждение 
- Средства разработки. Языки программирования.
- Delphi 4 or Delphi 5
- Что приобрести в качестве средства разработки?
- Delphi6
- Delphi vs PowerBuilder
- Сравнение компиляторов
- Вот и вышла Delphi 7... Вы рады?
№ 932 Удалено модератором | |
№ 931 23-08-2006 01:43 |  |
Ответ на »сообщение 927« (Как слышно? Приём!)
___________________________
А по-моему один лагерь тех, кто восторгается новыми и своеобычными
методами ФЯ и других, кто почему-то воспринимает это как вызов.
Но есть и те, которые никак не врубятся в чём здесь фишка (а хотелось бы)
и не понимают из-за чего драка :)
Я уже в сотый раз повторяю, что меня возмущает не сам факт использования ФП, а попытки изобразить ООП пустышкой (так же, как и программистов, использующих ООП). Причем, делается это все в весьма демагогичной форме.
Я же лично совсем не против сочетания этих технологий.
№ 930 Удалено модератором | |
№ 929 22-08-2006 15:36 |  |
№ 928 22-08-2006 15:15 |  |
Ответ на »сообщение 927« (Как слышно? Приём!)
___________________________
Но есть и те, которые никак не врубятся в чём здесь фишка (а хотелось бы)
и не понимают из-за чего драка :)
Мы можем долго рассказывать вам в чем фишка. Но это как рассказывать упавшему со второго этажа, что такое падать с паращютом. У вас один опыт, у нас другой.
И пока вы не наденете парашют, тьфу, не попробуете ФП на конкретной задаче, то все ваши попытки понять натолкнутся на ваше (я помню, это было больно)
И вот тут начинается заколдованный круг, который разорвать по силам очень немногим.
Как попробовать новый подход в программировании ?
Это ведь не с паскаля на java перейти. Подумаешь begin end на скобки сменил, вот и вся адаптация.
А тут нужно за книжки садиться, задачи решать.
Наскоком не возьмешь. "Интуитивности" ноль. В случае с лиспом например нужно даже учиться читать новую форму записи, куда уж там до новых парадигм.
Потом глаза разбегаются.
Чистые ФЯ (haskell, clean, erlang)
Cмешанные ФЯ (ocaml, lisp, ML)
Динамические ФЯ (lisp, erlang)
Статические ФЯ (ocaml, clean, ML, haskell),
ленивые ФЯ (haskell, clean)
неленивые ФЯ (все остальные)
Какую комбинацию свойств выбрать ? Какую реализацию выбрать ?
Сколько нужно потратить на ВСЕ ЭТО времени чтобы разобраться что подходит для вас а что нет ?
Для вас является очень важным скорость исполнения ? Отметаем динамические языки.
Вас не устраивает отсутствие оператора присваивания ? Отметаем чистые языки.
Вам нужны какие то конкретные библиотеки ? Приходится лазить, искать, выяснять в каком языке они есть, в каком нет.
Не знаете английского ? Tough luck! Rhue ограничивается теми языками по которым сможете найти нормальную литературу.
Только windows ? Ая яй яй ! Вместо быстрого SBCL приходится выбирать в десятки раз более медленный lispworks.
Кто пустится в это далекое и трудное путешевствие ? Вы ?
№ 927 22-08-2006 14:55 |  |
>>> > как можно говорить о четком осознании области применения со стороны
>>> > тех кто ФП не пробовал ? Что и как они могут четко осознавать ? :))
>>> Интересно, это что, не провокация?
Конечно провокация. Провокация принудить попробовать ФП. Это плохо?
>>> один, считающий, что вычислительной мощности теперь (или через
>>> десять лет) хватит на что угодно и другой, который пытается решать
>>> задачи, для которых вычислительной мощности не хватит никогда.
Увы обоим.
А по-моему один лагерь тех, кто восторгается новыми и своеобычными
методами ФЯ и других, кто почему-то воспринимает это как вызов.
Но есть и те, которые никак не врубятся в чём здесь фишка (а хотелось бы)
и не понимают из-за чего драка :)
>>> все компьютеры - это и конечные автоматы и машины Тьюринга одновременно.
Вроде есть ещё аналоговые компьютеры. Или это недокомпьютеры в тупике?
№ 926 22-08-2006 13:56 |  |
№ 925 22-08-2006 13:09 |  |
Ответ на »сообщение 924« (Артем)
___________________________
Интересно, это что, не провокация?
Провокация чего ? Того чтобы вы наконец перестали пургу гнать и попробовали ФП на практике ?
Дык я уже десять раз наверное пытался вас на это спровоцировать. Так ведь бесполезно.
И вопросы, вроде производительности LispWorks на итеративном алгоритме тоже игнорируются.
Это неправда. Речь идет не об итеративном алгоритме, а о работе с конкретными структурами - массивами при отсутствии информации о типе (динамический язык). Любой динамический язык работает с массивами в таком режиме гораздо медленнее статически типизированных языков.
Вы хотите чтобы я это признал ? :)) Признаю.
Вам стало легче уговорить себя не работать на лиспе ? Вам жутко не хватало этого признания ?
№ 924 Удалено модератором | |
№ 923 22-08-2006 12:11 |  |
Ответ на »сообщение 921« (Сергей Перовский)
___________________________
один, считающий, что вычислительной мощности теперь (или через десять лет) хватит на что угодно и другой,
Побойтесь бога! Откуда это "на что угодно" вылезло ?
Начиная с завязки этой темы и красной нитью через все сообщения идет мысль о том что ФП только только начинает влезать в массовое прикладное программирование. И до "чего угодно" ему еще очень и очень далеко.
А на самом деле нужно просто признать, что для многих задач быстродействие стало несущественным,
Рад вас видеть в лагере "наших" :))
Добавить свое сообщение
Отслеживать это обсуждение 
Дополнительная навигация: |
|