Функциональное программирование |
Функциональное программирование всегда привлекало меня в противопоставлении к императивному.
Я очень часто обсуждаю различные аспекты функционального программирования на различных ветках на Базарной площади.
Но хотелось бы собрать всех заинтересованный этой темой в одной ветке.
Я думаю что настало время открыть такую тему. И вот почему.
Исторически функциональное программирование появилось практически вместе с императивным.
Вторым языком после фортрана был лисп.
Но увы, функциональное программирование надолго было уделом исследовательских институтов или специализированных приложений (Искусственный Интеллект)
Конечно не надо считать весь мир дураками из за того что развитие пошло по пути языков Алгол семейства.
Для этого были вполне обьективные причины. Функциональные языки слишком близки к человеку и слишком далеки от машины.
Они сьедают в десятки раз больше рессурсов чем императивные языки.
Вспомните претензии, предявляемые к java - первому императивному языку с виртуальной машиной и сборщиком мусора, толкаемому большими корпорациями в mainstream.
Жутко тормозит, и жрет всю память какая есть. А ведь функциональные языки (далее ФЯ) все без иключения имеют сборщик мусора, виртуальную машину.
Многие из них (семейство лисп) еще и динамические, что только усугубляет положение.
Вполне естественно что появившись более полусотни лет назад они надолго опередилли свое время.
Для широкого распространения ФЯ нужны гигабайты дешевой памяти и гигагерцы дешевых процессоров.
Прошло более 50 лет, прежде чем такие требования к железу стали реальностью.
Это время наступило. СЕЙЧАС.
Добро пожаловать в новую эру программирования.
Jack Of Shadows
Всего в теме 5502 сообщения
Добавить свое сообщение
Отслеживать это обсуждение
- Средства разработки. Языки программирования.
- Delphi 4 or Delphi 5
- Что приобрести в качестве средства разработки?
- Delphi6
- Delphi vs PowerBuilder
- Сравнение компиляторов
- Вот и вышла Delphi 7... Вы рады?
№ 4382 Удалено модератором | |
№ 4381 23-07-2008 15:23 | |
Ответ на »сообщение 4376« (Jack Of Shadows)
___________________________
Ответ на »сообщение 4373« (Илья Ермаков)
___________________________
По моему вы путаете термины. Есть понятие локального оптимума. Мы уже это обсуждали.
Подобными оптимумами например являются лисп, смолток, форт, си, хаскель, пролог.
Локальный оптимум означает что вблизи него нет ничего лучше. И чтобы найти другую высоко стоящюю точку надо достаточно далеко отпрыгивать.
При этом и речи нет о сравнении этих далеко стоящих друг от друга вершин.
Да и в профессиональной деятельности иногда оказываются рядом...
Вот, например, есть задачи, для которых ключевое преимущество - простота в сочетании с высокой динамичностью среды разработки/исполнения. Т.е. наличие однородной операционной среды. Это задачи научного программирования, аналитики, макетирования, м.б. имитационки и т.п. В этом случае Смоллток, Оберон и Лисп оказываются как раз в одном "локальном оптимуме". Причины для выбора должны быть дополнительные - если работаем ближе к системному/вычислительному - Оберон, к прикладному/моделирующему - Смоллток, тексты/"ИИ" - Лисп... И всё равно в большей степени уже дело привычки, что выбрать.
№ 4380 23-07-2008 15:17 | |
Ответ на »сообщение 4376« (Jack Of Shadows)
___________________________
Ответ на »сообщение 4373« (Илья Ермаков)
___________________________
По моему вы путаете термины. Есть понятие локального оптимума. Мы уже это обсуждали.
Подобными оптимумами например являются лисп, смолток, форт, си, хаскель, пролог.
Локальный оптимум означает что вблизи него нет ничего лучше. И чтобы найти другую высоко стоящюю точку надо достаточно далеко отпрыгивать.
При этом и речи нет о сравнении этих далеко стоящих друг от друга вершин.
Да нет, не путаю...
Локальность и нечёткость - это как температура и цвет... :-)
По некоторым принципиальным параметрам (с точки зрения высшего образования, например) далеко отстоящие, вообще говоря, друг от друга вершины могут оказаться рядом. Например, Лисп, Оберон, Ада, Смолток, Хаскель, Эйффель для ИТ-специальностей в качестве базовых языков хороши, и примерно из-за сходных качеств - строгости, достаточной простоты/регулярности и т.п. (хотя вот Ада с Эйффелем уже несколько в сторону, лучше бы не основным языком, а вторым - для цикла по инженерии ПО). Поэтому преподаватели, работающие на их основе, ходят вокруг одного, в общем, оптимума (воспитывают похожие интеллектуальные ценности в студентах). И ругаться не надо за частности, а надо конструктивно взаимодействовать.
Однако возьмите школу - и уже названный список очень сильно подсхлопнется (требования "поехали" и ещё сильней устрожились).
№ 4379 Удалено модератором | |
№ 4378 Удалено модератором | |
№ 4377 Удалено модератором | |
№ 4376 23-07-2008 15:02 | |
Ответ на »сообщение 4373« (Илья Ермаков)
___________________________
По моему вы путаете термины. Есть понятие локального оптимума. Мы уже это обсуждали.
Подобными оптимумами например являются лисп, смолток, форт, си, хаскель, пролог.
Локальный оптимум означает что вблизи него нет ничего лучше. И чтобы найти другую высоко стоящюю точку надо достаточно далеко отпрыгивать.
При этом и речи нет о сравнении этих далеко стоящих друг от друга вершин.
№ 4375 Удалено модератором | |
№ 4374 Удалено модератором | |
№ 4373 23-07-2008 14:38 | |
Ответ на »сообщение 4372« (Варяг)
___________________________
Ответ на »сообщение 4371« (Илья Ермаков)
___________________________
И потому умный Оксфорд выбрал Haskell и Оберон в качестве базы для обучения... А более умный в деле программирования МТИ для обучения выбрал Scheme. Самый гибкий язык программирования. На нем можно проиллюстрировать ВСЁ. SICP - живая классика.
Вот Info21 тут неоднократно толковал о понятии нечёткого оптимума в столь тонких вопросах, как, например, инструментарий программирования... Небольшой +/- имеет ли значение, если всё равно оптимум определён нечётко? Чувствуют люди, что "живая классика" - и флаг им...
(Однако, если вести речь о некотором сквозном стержне в образовании, проходящим и через школы, и через ВУЗы, то конкретный выбор сделать, конечно, нужно - может быть, с ущемлением некоторых неплохих вариантов, которые пойдут уже только вторым номером, в параллель, по выбору... Но стоит ли, опять же, копья ломать, когда основная задача - выпереть оттуда дремучесть типа С++/VB...)
Добавить свое сообщение
Отслеживать это обсуждение
Дополнительная навигация: |
|