Функциональное программирование |
Функциональное программирование всегда привлекало меня в противопоставлении к императивному.
Я очень часто обсуждаю различные аспекты функционального программирования на различных ветках на Базарной площади.
Но хотелось бы собрать всех заинтересованный этой темой в одной ветке.
Я думаю что настало время открыть такую тему. И вот почему.
Исторически функциональное программирование появилось практически вместе с императивным.
Вторым языком после фортрана был лисп.
Но увы, функциональное программирование надолго было уделом исследовательских институтов или специализированных приложений (Искусственный Интеллект)
Конечно не надо считать весь мир дураками из за того что развитие пошло по пути языков Алгол семейства.
Для этого были вполне обьективные причины. Функциональные языки слишком близки к человеку и слишком далеки от машины.
Они сьедают в десятки раз больше рессурсов чем императивные языки.
Вспомните претензии, предявляемые к java - первому императивному языку с виртуальной машиной и сборщиком мусора, толкаемому большими корпорациями в mainstream.
Жутко тормозит, и жрет всю память какая есть. А ведь функциональные языки (далее ФЯ) все без иключения имеют сборщик мусора, виртуальную машину.
Многие из них (семейство лисп) еще и динамические, что только усугубляет положение.
Вполне естественно что появившись более полусотни лет назад они надолго опередилли свое время.
Для широкого распространения ФЯ нужны гигабайты дешевой памяти и гигагерцы дешевых процессоров.
Прошло более 50 лет, прежде чем такие требования к железу стали реальностью.
Это время наступило. СЕЙЧАС.
Добро пожаловать в новую эру программирования.
Jack Of Shadows
Всего в теме 5502 сообщения
Добавить свое сообщение
Отслеживать это обсуждение
- Средства разработки. Языки программирования.
- Delphi 4 or Delphi 5
- Что приобрести в качестве средства разработки?
- Delphi6
- Delphi vs PowerBuilder
- Сравнение компиляторов
- Вот и вышла Delphi 7... Вы рады?
№ 412 Удалено модератором | |
№ 411 03-07-2006 13:33 | |
Ответ на »сообщение 410« (Jack Of Shadows)
___________________________
Тьфу черт! Мой ninja автоматически перевел Qwerty в Йцукен :))
№ 410 03-07-2006 13:32 | |
Кстати Йцукен вы зря пользуетесь WinHugs. Он пока в стадии глубокой беты, то есть это активно разрабатывающийся продукт пока не рекомендуемый для обычных пользователей, тем более новичков.
WinHugs это всего лишь оболочка к Hugs88
Так что мой вам совет. Не хотите наступать на грабли в бета версии - работайте с Hugs98
Там у вас все примеры, включая GUI пойдут без ошибок.
№ 409 03-07-2006 13:28 | |
Ответ на »сообщение 407« (Q. Werty)
___________________________
Смотрю - такого файла действительно нет - в пакете инсталлятора явный глюк.
Вы правы. У меня старый, мартовский WinHugs.
У вас новый may WinHugs
И они действительно напортачили там с инсталятором.
Попробуйте скачать предыдущюю версию (март)
И либо работайте пока в ней, либо можете скопировать фолдер win32 из старой версии в новую.
№ 408 03-07-2006 12:52 | |
Ответ на »сообщение 407« (Q. Werty)
___________________________
к сообщению об отсутствии файла Types.dll. Смотрю - такого файла действительно нет
Вы уверены ? :)))
Гляньте здесь: C:\Program Files\WinHugs\packages\Win32\Graphics\Win32\GDI
У меня Types.dll нашелся там.
№ 407 03-07-2006 12:31 | |
>>>Удивили три вещи:
Меня тоже одна вещь удивила.
В Блэкбоксе я с созданием GUI приложений разобрался за 5 минут.
С WinHugs я "борюсь" уже 3 дня и все без толку. В самой системе запуск любого примера с использованием GUI (Win32) приводит к сообщению об отсутствии файла Types.dll. Смотрю - такого файла действительно нет - в пакете инсталлятора явный глюк. Порылся в инете - нашел две библиотеки - FranTk и TclHaskell. Все скачал. Смотрю документацию - на словах все OK!, должно работать и под Windows и под Unix, и с GHC, и с Hugs98. Запускаю их же примеры - опять полная фигня - то один импортируемый модуль не найден, то другой. Я зверею, сбрасываю все в текущий каталог - ноль эмоций. Только сообщения типа ERROR - не могу найти то, не могу найти се...
Если бы ребята из Oberon Ms. так бы работали - я бы и Оберон бросил бы на пол-дороге.
А тут есть чувство. что на уровне идеи все хорошо, а вот когда дело доходит до технических деталей - дело дрянь :).
P.S.
Кстати, может кто может посоветовать графическую библиотеку для WinHugs 98 (Haskell)? Только чтобы все модули были в комплекте - был бы очень благодарен.
№ 406 03-07-2006 12:18 | |
Ответ на »сообщение 404« (Илья Ермаков)
___________________________
2) Страшно медленная работа
Лисп мощнее dotnet и java вместе взятых.
Я не знаю на какой машине 2 года назад вы пробовали Allegro. Не удивлюсь если P3.
Попробуйте на нем же dotnet - будет та же медленная работа.
Я уже говорил, что причина забвения функциональных языков заключается в их невероятных просто требованиях к рессурсам машины.
Однако на современных компьютерах как dotnet с java так и лисп (включая Allegro) работают нормально.
3) Постоянные сообщения об ошибках
Не могу подтвердить. Аллегро у меня вообще никаких ошибок никогда не выдавал и не вылетал.
Это в отличие от VS.dotnet и дельфи которые мне приходится выключать по 3, 4 раза в день из за memory violation.
Другое дело если вы имеете в виду ошибки в программах которые вы пытались писать.
Если приведете ошибки которые вам выдавала Allegro, можно будет выяснить что и почему.
Хотя за давностью лет вы конечно помнить не можете.
Сейчас я работаю на lispworks и clisp. Там нет GUI билдера, но мне он и не нужен.
Я на лиспе серверную часть пишу.
№ 405 02-07-2006 15:51 | |
Ответ на »сообщение 404« (Илья Ермаков)
___________________________
Почему для дорогого коммерческого продукта характерно 1) и 3), непонятно...
2) и 3), то есть...
№ 404 02-07-2006 15:48 | |
Ответ на »сообщение 395« (Jack Of Shadows)
___________________________
Например можете скачать бесплатную epress version Allegro 8
Помню, два года назал скачивал пробную версию.
Удивили три вещи:
1) Как две капли воды похожесть на Дельфи
2) Страшно медленная работа
3) Постоянные сообщения об ошибках
Почему для дорогого коммерческого продукта характерно 1) и 3), непонятно...
Или, как и следовало ожидать, это качества, с которыми в Лиспе приходится неизбежно мириться в больших приложениях, в которых требуется значительный объем эмуляции имератива и ООП (а среда разработки / ран-тайм - это именно такая категория)?
№ 403 30-06-2006 11:18 | |
Ответ на »сообщение 402« (Как слышно? Приём!)
___________________________
Вопрос не понятен. Вы практически ничего не сказали о задаче.
В лиспе конечо же есть библиотеки шифрования RSA и других алгоритмов.
Или если вам нужно управлять каким то железом (электронный ключ), то в этом случае в лиспе есть интерфейсы к внешним функциям на си, dotnet, java.
Так что если в поставке этого электронного ключа есть примеры работы с ним с любого из этих языков, то можно тот же API использовать и из лиспа.
Добавить свое сообщение
Отслеживать это обсуждение
Дополнительная навигация: |
|