Функциональное программирование |
Функциональное программирование всегда привлекало меня в противопоставлении к императивному.
Я очень часто обсуждаю различные аспекты функционального программирования на различных ветках на Базарной площади.
Но хотелось бы собрать всех заинтересованный этой темой в одной ветке.
Я думаю что настало время открыть такую тему. И вот почему.
Исторически функциональное программирование появилось практически вместе с императивным.
Вторым языком после фортрана был лисп.
Но увы, функциональное программирование надолго было уделом исследовательских институтов или специализированных приложений (Искусственный Интеллект)
Конечно не надо считать весь мир дураками из за того что развитие пошло по пути языков Алгол семейства.
Для этого были вполне обьективные причины. Функциональные языки слишком близки к человеку и слишком далеки от машины.
Они сьедают в десятки раз больше рессурсов чем императивные языки.
Вспомните претензии, предявляемые к java - первому императивному языку с виртуальной машиной и сборщиком мусора, толкаемому большими корпорациями в mainstream.
Жутко тормозит, и жрет всю память какая есть. А ведь функциональные языки (далее ФЯ) все без иключения имеют сборщик мусора, виртуальную машину.
Многие из них (семейство лисп) еще и динамические, что только усугубляет положение.
Вполне естественно что появившись более полусотни лет назад они надолго опередилли свое время.
Для широкого распространения ФЯ нужны гигабайты дешевой памяти и гигагерцы дешевых процессоров.
Прошло более 50 лет, прежде чем такие требования к железу стали реальностью.
Это время наступило. СЕЙЧАС.
Добро пожаловать в новую эру программирования.
Jack Of Shadows
Всего в теме 5502 сообщения
Добавить свое сообщение
Отслеживать это обсуждение
- Средства разработки. Языки программирования.
- Delphi 4 or Delphi 5
- Что приобрести в качестве средства разработки?
- Delphi6
- Delphi vs PowerBuilder
- Сравнение компиляторов
- Вот и вышла Delphi 7... Вы рады?
№ 2762 06-04-2007 15:38 | |
Ответ на »сообщение 2760« (Илья Ермаков)
___________________________
У нас в Орле все переменилось в мгновение ока... ВУЗы, школы - все уходит на Линукс... Иногда даже с полным отказом от винды.
Пришлось осваивать в спешном порядке - как работу в системе, так и системные API :-) Кстати, не жалею - получил от перехода большое удовольствие, обратно не хочу :-)
Я Вам даже немного завидую - у нас тут такого никогда не будет, имхо... :о))
На весь город - всего три-четыре линуксоида...
Что такое лицензии и авторские права знают лишь бухгалтеры с 1C и конструктора с Компасом, и то потому, что у них там HASP-ы стоят. Даже не знаю, к лучшему это или к худшему... :о(
№ 2761 06-04-2007 15:30 | |
Ответ на »сообщение 2759« (Jack Of Shadows)
___________________________
Ответ на »сообщение 2758« (Geniepro)
___________________________
А пока что хаскель на практике можно использовать только там где не требуется GUI - например для web разработки.
Ну или ждать действительно когда родную GUI для хаскеля сделают.
Выходит, что реализации Хаскеля, с которой можно организовать простое взаимодействие как с библиотекой из другого языка, пока нет? Я думал, HUGS имеет какие-то интерфейсы (ну, COM-овские, например) для доступа извне к своей вирт. машине. Как понял из Душкина - нет?
№ 2760 06-04-2007 15:26 | |
Ответ на »сообщение 2758« (Geniepro)
___________________________
Ответ на »сообщение 2757« (Илья Ермаков)
___________________________
А если использовать родной для системы GUI API - то гораздо удобнее, хотя и непереносимо... Ну и ладно, Виндовс везде, Линукс - почти нигде... :о))
Месяца три назад я думал также...
У нас в Орле все переменилось в мгновение ока... ВУЗы, школы - все уходит на Линукс... Иногда даже с полным отказом от винды.
Пришлось осваивать в спешном порядке - как работу в системе, так и системные API :-) Кстати, не жалею - получил от перехода большое удовольствие, обратно не хочу :-) И Блэкбокс даже в виндовой версии нормально работает под эмулятором Wine...
№ 2759 06-04-2007 15:25 | |
Ответ на »сообщение 2758« (Geniepro)
___________________________
Если бы не идиотское требование прикомпиливать к хаскелевской dll модуль написанный на си, для того чтобы эта dll была доступна их других языков, то я бы уже давно пользовался хаскелем.
GUI-ная морда на дельфях, логика в хасклевской dll.
А пока что хаскель на практике можно использовать только там где не требуется GUI - например для web разработки.
Ну или ждать действительно когда родную GUI для хаскеля сделают.
№ 2758 06-04-2007 15:05 | |
Ответ на »сообщение 2757« (Илья Ермаков)
___________________________
Не знаю, не знаю - а имеет ли вообще смысл привязываться исключительно к Винде, особенно при сегодняшнем раскладе? :-) В этом смысле Gtk получше - кросплатформенней...
Кроссплатформенность - хорошо, конечно, но, например, распространять свою программу, для которой ещё и фреймворк GTK+ или .NET - не очень-то удобно... С .NET ещё ладно, когда везде будет стоять Виста, .NET тоже будет везде, но Хаскелл с самим .NET'ом не очень дружит. Есть интерпретатор HUGS.NET, но это несолидно... :о))
А если использовать родной для системы GUI API - то гораздо удобнее, хотя и непереносимо... Ну и ладно, Виндовс везде, Линукс - почти нигде... :о))
№ 2757 06-04-2007 14:44 | |
Ответ на »сообщение 2751« (Geniepro)
___________________________
Ответ на »сообщение 2746« (Jack Of Shadows)
___________________________
Для Хаскелла это особенно больной вопрос - сделать GUI-библиотеку такой, что бы она и винде родной была, и при этом сохраняла дух Хаскелла. Т.е. была бы функционально-реактивной, типа Fran... Интересно, ведутся ли такие работы?
Не знаю, не знаю - а имеет ли вообще смысл привязываться исключительно к Винде, особенно при сегодняшнем раскладе? :-) В этом смысле Gtk получше - кросплатформенней... В любом случае, видимо, стоит заиметь свой набор абстракций ГУЯ, который будет удобен для языка - а уже под ним "шлюз" к системным библиотекам...
Мы тут над вопросами ГУЯ тоже голову посломали, в связи с проблемами портирования Блэкбокса в Линукс...
№ 2756 06-04-2007 14:42 | |
Ответ на »сообщение 2753« (Jack Of Shadows)
___________________________
А хаскель, пока пусть лапу сосет :))
Для Хаскелла есть библиотека Fudgets, построенная на принципах FRP специально для него, но хотя она и давно уже придумана была (лет 10 тому назад), но из Линукса так и не вышла, блин...
Да и немного эзотеричная работа с ней, судя по демо-программкам...
№ 2755 06-04-2007 14:41 | |
Ответ на »сообщение 2752« (AVC)
___________________________
А какие сложности таятся в отсутствии присваиваний?
Для меня никакие, для вас - не знаю :))
Для подавляющего большинства испорченных императивом - тяжелый случай.
Разве не вы совсем недавно просили показать хоть на маленьком примере с whilе как же это без присваиваний обходиться ?
Разве не Сергей Перовский все никак понять не может как же это без императива его задачи решать ?
Вот вам и сложности, сложности в понимании.
№ 2754 06-04-2007 14:38 | |
Ответ на »сообщение 2752« (AVC)
___________________________
Монады, конечно, вещь сложная, но и без них вопросов хватает; один из них я не уставал задавать долгое время.
А устраивающего Вас ответа так и не получили, верно?
Видимо, проблема эта высосана из пальца и проблемой местным функциональщикам не кажется... :о))
№ 2753 06-04-2007 14:37 | |
Ответ на »сообщение 2751« (Geniepro)
___________________________
Интересно, ведутся ли такие работы?
Деньги, деньги, деньги.
Сделать нетрудно. Трудно найти того кто эту работу оплатит.
Для лиспа кстати есть и родные виндовые GUI.
Это CAPI, которая входит в коммерческую lispworks
И opensource Graphic-Forms: http://common-lisp.net/project/graphic-forms/
А хаскель, пока пусть лапу сосет :))
Добавить свое сообщение
Отслеживать это обсуждение
Дополнительная навигация: |
|