Функциональное программирование |
Функциональное программирование всегда привлекало меня в противопоставлении к императивному.
Я очень часто обсуждаю различные аспекты функционального программирования на различных ветках на Базарной площади.
Но хотелось бы собрать всех заинтересованный этой темой в одной ветке.
Я думаю что настало время открыть такую тему. И вот почему.
Исторически функциональное программирование появилось практически вместе с императивным.
Вторым языком после фортрана был лисп.
Но увы, функциональное программирование надолго было уделом исследовательских институтов или специализированных приложений (Искусственный Интеллект)
Конечно не надо считать весь мир дураками из за того что развитие пошло по пути языков Алгол семейства.
Для этого были вполне обьективные причины. Функциональные языки слишком близки к человеку и слишком далеки от машины.
Они сьедают в десятки раз больше рессурсов чем императивные языки.
Вспомните претензии, предявляемые к java - первому императивному языку с виртуальной машиной и сборщиком мусора, толкаемому большими корпорациями в mainstream.
Жутко тормозит, и жрет всю память какая есть. А ведь функциональные языки (далее ФЯ) все без иключения имеют сборщик мусора, виртуальную машину.
Многие из них (семейство лисп) еще и динамические, что только усугубляет положение.
Вполне естественно что появившись более полусотни лет назад они надолго опередилли свое время.
Для широкого распространения ФЯ нужны гигабайты дешевой памяти и гигагерцы дешевых процессоров.
Прошло более 50 лет, прежде чем такие требования к железу стали реальностью.
Это время наступило. СЕЙЧАС.
Добро пожаловать в новую эру программирования.
Jack Of Shadows
Всего в теме 5502 сообщения
Добавить свое сообщение
Отслеживать это обсуждение
- Средства разработки. Языки программирования.
- Delphi 4 or Delphi 5
- Что приобрести в качестве средства разработки?
- Delphi6
- Delphi vs PowerBuilder
- Сравнение компиляторов
- Вот и вышла Delphi 7... Вы рады?
№ 192 16-06-2006 01:23 | |
сообщение от модератораОтвет на »сообщение 181« (Jack Of Shadows)
___________________________
Ответ на »сообщение 180« (Руслан Богатырев)
___________________________
В отличие от обероноцев, я воздух не продаю. Какие то там технологии, которые ни пощупать невозможно, ни результат более менее видимый узреть. Да и к оберону, как при ближайшем рассмотрении выясняется, эти технологии имеют отношение "поскольку-постольку".
Ну на фига ещё и здесь Оберон так пинать? Оффтопик он здесь. Специально, что ли, оберонщиков на флейм разводите? Вам мало того, что в соседних ветках происходит?
Jack, эта ветка - ваша, вы здесь главный идеолог и основная движущая сила. Поэтому на вас лежит повышенная ответственность по поддержанию здесь нормальной атмосферы. А вы наоборот - сами провоцируете конфликты.
№ 191 16-06-2006 01:14 | |
сообщение от модератораОтвет на »сообщение 178« (Jack Of Shadows)
___________________________
Ну некоторые скажут что мол люди быдло тупое и умных мало. Этим у нас грешит время от времени info21 на своем модерируемом форуме.
В ветках по Оберону тоже всё начиналось с мелких выпадов, а теперь они снова на грани закрытия из-за совсем уже неприличной перепалки. Я, конечно, понимаю, что в острой дискуссии иногда невозможно полностью обойтись без перехода на личности, но давайте будем делать это только тогда, когда это действительно необходимо, а не вот так, мимоходом, не имея на это никаких особых причин. Ведь потом придёт сюда info21, ему такой выпад не понравится, он ответит, вы тоже ответите - и после нескольких таких сообщений Королевство останется без очень интересной ветки о функциональных языках.
№ 190 16-06-2006 00:29 | |
Ответ на »сообщение 178« (Jack Of Shadows)
___________________________
Вот скажем мы все до сих пор уже сколько веков пользуемся юлианским календарем.
Уверяю Вас, что я не пользуюсь юлианским календарем. Так что с мы все вы явно промахнулись.
Hint: Казалось бы, а причем здесь Григорий XIII ...
№ 189 15-06-2006 23:25 | |
Ответ на »сообщение 182« (Jack Of Shadows)
___________________________
Где распознавание образов ? Почему мы до сих пор не говорим с машиной ? Почему машины не переводят с языка на язык на достаточно качественном уровне ?
Кстати да, где все это? Если дело в императивных языках, то почему до сих пор все это не написано на функциональных?
И причем тут императивность? Насколько я знаю тут проблема в том, что нет надежных алгоритмов. Или в ФП алгоритмы не нужны?
Где новые элементы управления, интерфейса с машиной ? Долго мы будем елозить мышку по столу, и разговаривать с машиной при помощи ОДНОГО ПАЛЬЦА ?
Тут тоже ЯП виноваты? :)
Просто идей стоящих нет.
Так вот именно таким вот сокобанством мы все занимаемся! Только с компьютерной памятью.
В результате любая, даже самая простенькая задача превращается в головоломку (коей сокобан и является)
Нам уже давно не нужно это. Мы уже давно можем выходить из комнаты и выносить хоть все ящики (памяти стало немерянно просто). Но мы по прежнему делаем вид, что это так важно!, лишний байтик скономить.
И где Вы такое видели? Я запустив новую программу нередко удивляюсь - куда она столько памяти девает и почему так тормозит. Память и процессор сейчас никто не экономит.
С нетерпением жду засилия ФП - люблю удивляться.:)
Программы, которые изменят в принципе подход к компьютингу, и общение человека с машиной будут написаны уже на языках нового поколения. Языках, в который человек перестанет говорить машине что и куда надо записывать.
Ничего не получится: такие языки нельзя написать без таких языков. Как машина такой умной станет, что сама решит что куда записывать? ;)
№ 188 15-06-2006 21:48 | |
Жаль, что хорошая тема портится безудержным hype-ом.
№ 187 15-06-2006 21:33 | |
Ответ на »сообщение 181« (Jack Of Shadows)
___________________________
Если я в чем то ошибся или перегнул палку - укажите. ...
В отличие от обероноцев, я воздух не продаю. ...
Продаете, причем горячий:
"... слишком близки к человеку ..."
№ 186 15-06-2006 17:04 | |
Ответ на »сообщение 185« (Руслан Богатырев)
___________________________
Руслан, я вообще то расчитывал что вы альтернативы покажете, а не в сторонку отойдете. :))
А вот распараллеливание (асинхронное программирование) на уровне крупных блоков -- куда важнее и интереснее. Для этого можно использовать специальные подходы, которые к ФП имеют достаточно отдаленное отношение.
Дайте угадать. Активные обьекты ? Не расскажете на популярном уровне что это за специальные подходы и какие они помогают решать проблемы ?
Я вот более менее доступно про авто-распараллеливание рассказал.
Низкоуровневое распараллеливание на уровне конструкций языка вообще, на мой взгляд, играет значимую роль лишь в специфических приложениях.
В случае с parallel haskel операторы par и seq назвать низкоуровневыми ну никак нельзя. Потому что помечать ими можно блоки любого размера. Т.е. практически вы можете указывать компьютеру запускать целые подсистемы в отдельном процессе. Как видите достаточно высокий уровень приложения.
№ 185 15-06-2006 16:46 | |
Ответ на »сообщение 184« (Jack Of Shadows)
___________________________
Если нет - отойдите в сторонку, не мешайте, поезд едет. :))
Да я в общем-то и не мешаю. Каждый должен заниматься своим делом. Тем, что по душе, или тем, что приносит средства, необходимые в нашем столь несовершенном мире. Лично меня вполне устраивает императивное программирование вкупе с модульным как фундамент, а остальные подходы и парадигмы -- что называется "соль и сахар по вкусу".
Низкоуровневое распараллеливание на уровне конструкций языка вообще, на мой взгляд, играет значимую роль лишь в специфических приложениях. А вот распараллеливание (асинхронное программирование) на уровне крупных блоков -- куда важнее и интереснее. Для этого можно использовать специальные подходы, которые к ФП имеют достаточно отдаленное отношение. Но при этом никак и не отрицают использования ФП.
№ 184 15-06-2006 16:28 | |
Ответ на »сообщение 183« (Руслан Богатырев)
___________________________
Альтернатива всегда есть. Любая безапелляционность суждений
Если я поменяю свое безапелляционное суждение на "ее (альтернативу) никто не видит" вам станет легче ?
ОК скажем так. Допустим альтернативя ФЯ есть. Но ее никто не видит.
Это не означает что мы никогда альтернативы не увидим. Все может повернуться иначе. Прогресс на месте не стоит.
Но вопрос, будете ли вы ждать когда появится эта альтернатива, только потому что вам словосочетание ФЯ не нравится ?
Или вы выберите то тот выход который у вас есть здесь и сейчас ?
Если этот вопрос задать тем кому нужно решать задачи, кто не может ждать. То каков будет ответ ?
Мне плевать что и как поможет мне решить задачу. Вам видимо нет. В чем дело ? Ностальгия замучила ?
Старческое "вот в наааши гоооды" ?
Если вы видите альтернативу - покажите нам.
Если нет - отойдите в сторонку, не мешайте, поезд едет. :))
№ 183 15-06-2006 16:19 | |
Ответ на »сообщение 181« (Jack Of Shadows)
___________________________
Альтернатива у индустрии есть ? Никакой!
Альтернатива всегда есть. Любая безапелляционность суждений (включая слова "все", "всегда", "никогда", "никакой" и т.п.) лично у меня вызывает как минимум подозрение.
Займитесь проблемами агитпропа оберона, а мы уж здесь как нибудь сами управимся :))
Наше дело посоветовать -- Ваше дело прислушаться или пропустить мимо ушей.
Добавить свое сообщение
Отслеживать это обсуждение
Дополнительная навигация: |
|