Функциональное программирование |
Функциональное программирование всегда привлекало меня в противопоставлении к императивному.
Я очень часто обсуждаю различные аспекты функционального программирования на различных ветках на Базарной площади.
Но хотелось бы собрать всех заинтересованный этой темой в одной ветке.
Я думаю что настало время открыть такую тему. И вот почему.
Исторически функциональное программирование появилось практически вместе с императивным.
Вторым языком после фортрана был лисп.
Но увы, функциональное программирование надолго было уделом исследовательских институтов или специализированных приложений (Искусственный Интеллект)
Конечно не надо считать весь мир дураками из за того что развитие пошло по пути языков Алгол семейства.
Для этого были вполне обьективные причины. Функциональные языки слишком близки к человеку и слишком далеки от машины.
Они сьедают в десятки раз больше рессурсов чем императивные языки.
Вспомните претензии, предявляемые к java - первому императивному языку с виртуальной машиной и сборщиком мусора, толкаемому большими корпорациями в mainstream.
Жутко тормозит, и жрет всю память какая есть. А ведь функциональные языки (далее ФЯ) все без иключения имеют сборщик мусора, виртуальную машину.
Многие из них (семейство лисп) еще и динамические, что только усугубляет положение.
Вполне естественно что появившись более полусотни лет назад они надолго опередилли свое время.
Для широкого распространения ФЯ нужны гигабайты дешевой памяти и гигагерцы дешевых процессоров.
Прошло более 50 лет, прежде чем такие требования к железу стали реальностью.
Это время наступило. СЕЙЧАС.
Добро пожаловать в новую эру программирования.
Jack Of Shadows
Всего в теме 5502 сообщения
Добавить свое сообщение
Отслеживать это обсуждение
- Средства разработки. Языки программирования.
- Delphi 4 or Delphi 5
- Что приобрести в качестве средства разработки?
- Delphi6
- Delphi vs PowerBuilder
- Сравнение компиляторов
- Вот и вышла Delphi 7... Вы рады?
№ 1382 01-11-2006 09:05 | |
№ 1381 01-11-2006 07:56 | |
Ответ на »сообщение 1379« (Сергей Перовский)
___________________________
Для меня особых трудностей перехода к ООП не было. Но если даже те мелочи, которые были, умножить на 10000, то трудозатраты впечатляют.
Я не о языке говорю, а подходах к проектированию.
А то вот студенты тоже хвалятся, что Си++ знают, а, оказывается они компилятором Си++ научились Си-шные исходники компилировать...
Мало того, можно и на Лиспе а-ля Си или Паскаль писать (даже эмулировать Си++ модель объектов), но - зачем?
И мне предлагают это попробывать без всяких гарантий полезности ДЛЯ МОИХ ЗАДАЧ.
Потому и клянчу постоянно не заявления и восторги, а анализ того, для какого типа задач выгоднее использовать функциональный подход и почему.
Сергей, пройденный путь отраслью - это путь к "чистым решениям", основанным на "чистой математике". Для их прямых воплощений в полной мере, компы и программисты не готовы (ПОКА!). Но всё идёт к тому, что в скорости, уже будут... Я говрю, что не удивлюсь, если через декаду увижу контроллер в стиральной машине, по вычислительным возможностям превышающий мою сегодняшнюю настольную систему НА ПОРЯДКИ. И это не будет чем-то из ряда вон. Эти огромные мощности и объёмы - будет естественной платой для получения упомянутых "естественных" решений.
Теперь подойдём с другой стороны. А профессиональные программисты будут готовы работать в этих условиях? Уровень знаний и подготовки будет соответствовать предоставляемым возможностям? Или опять вся эта прорва мощности на "бирюльки" будет расходоваться?
И Лисп меня не интересует конкретно в приложении к ФП. Фины-авторы "Мира Лиспа" началом второго тома показали мне, что Лисп - просто самый гобкий и выразительный из языков, способный работать в любой из существующих парадигм...
Я бы на вашем месте задал другой вопрос: какой из инструментов подходит мне для выражения решений для моих задач.
У Ван Гира(?) есть замечательное выражение в первых же обзацах в книге по системологии: "от задачи - к инструментам, а не ограничение (и их преобразование) задач за счёт ограничений инструментария!"
Лисп ограничений не накладывает. В Ваших границах способ его применения и придумывания новой парадигмы и нового языка на основе Лиспа. Впрочем, тут уже наговорено об этом. Не хочется начинать опять свалку.
В серебрянную пулю я не верю.
Чудища, против которых она готовится, не существуют не в природе, они - в нашем сознании и страхах.
№ 1380 01-11-2006 07:51 | |
Ладно, вернусь к ФП, хотя отношение людей к ФП - наверное тоже затрагивает само ФП... :-))
Я лично пока вижу только одно преимущество у ФП (для меня лично) - это возобновление угасавшего интереса к программированию. С, С++, С#, Обероны - это всё, конечно же, очень хорошо. Но скучно. Для меня, по крайней мере.
А Хаскелл - это жутко интересно! Я вдруг вспомнил, что программирование - это интересно... ;-)
Хотя есть и моменты, которые я пока не понимаю...
Вот например, как отлаживать программу на Хаскелле? Какие существуют методы отладки программ на Хаскелле?
Оператор print куда попало не засунешь - низзя! Эт вам не F#...
Есть ли какой-нибудь отладчик? Я читал где-то, что сделать отладчик для ленивого языка - очень нетривиальная задача...
Конечно, по идее, надо делать программу так, что бы она не нуждалась в отладке, то есть была бы просто корректной, и всё! Но это требует ОЧЕНЬ высокой культуры математического мышления, чего нет, увы, не только у меня, но и у большинства других программистов.
Старая привычка - ринуться в кодирование, а там посмотрим, - всё время даёт о себе знать... Нетерпеливость, хочется сразу увидеть, как работает та или иная функция, а увидеть не так просто, так как другие взаимосвязанные части ещё не готовы...
Приходится перебарывать лень и начинать думать, представлять, что должна делать программа, конкретная функция, что непросто, и потому так мало функциональных программистов, имхо...
Лень умственная...
Точная постановка задачи - половина решения. Тяжело, лениво... :о) Да ещё и язык тоже ленивый! :-)) Эх...
Достаточно ли Вы готовы работать над Самосовершенствованием, что бы заняться Функциональным Программированием? ~_o
№ 1379 01-11-2006 06:37 | |
>>> Да ПОПРОБУЙТЕ ВЫ ЧЕРТ ВАС ВОЗЬМИ! (c) Jack Of Shadows
>>>Как можно рассказывать о вкусе фрукта тем кто его ни разу не пробовал ?
(c) Jack Of Shadows
>>>вы можете себе представить трудности "перелома" сознания при переходе к ООП... Теперь помножьте их на 10000.
(c) Владимир Лось
Для меня особых трудностей перехода к ООП не было. Но если даже те мелочи, которые были, умножить на 10000, то трудозатраты впечатляют. И мне предлагают это попробывать без всяких гарантий полезности ДЛЯ МОИХ ЗАДАЧ.
Потому и клянчу постоянно не заявления и восторги, а анализ того, для какого типа задач выгоднее использовать функциональный подход и почему.
В серебрянную пулю я не верю.
№ 1378 01-11-2006 03:20 | |
Ответ на »сообщение 1376« (Как слышно? Приём!)
___________________________
Владимир, Вы бы лучше со своим авторитетом склонили Jacka
раскрыть таки суть преимуществ функционального программирования,
А в чём, прошу пардону, неясности? Берёте для начала горячих финских парней и штудируете... Причём, для затравки, я бы порекомендовал начать... с первых шести глав второго тома... :о)
так сказать кухню, чем политический флейм добесконца провоцировать.
Трудно доказать тому, кто не слышит (или не желает слышать) доказательств. (Не примите конкретно только на свой счёт)
А иначе, получается как в диалоге Жванецкого (Карцев + ещё кто-то) на счёт доказательства своей личности...
Пример эффективности рекурсии с Аккерманом меня как то не вдохновил,
а даже того - этого совсем наоборот. Так где тут собака порылась?
В середине 90-х в нескольких журналах публиковалась статья с кодом и выводами, что графические редакторы всё же лучше писать не в ОО-стиле... Автор тоже возмущался что ему на примерах интерфейса пользователя пытаются доказать, что ОО привноситт что-то новое и мощное...
Если вы достаточно давно живёте (например если знаете, сколько колонок на торезовской перфокарте или рядов "информационных дырочек" на перфоленте), то вы можете себе представить трудности "перелома" сознания при переходе к ООП... Теперь помножьте их на 10000.
"Поманил куда-то, а сам дороги не сказал"
"Ищущие да обрящут!"
№ 1377 01-11-2006 02:56 | |
Ответ на »сообщение 1376« (Как слышно? Приём!)
___________________________
раскрыть таки суть преимуществ функционального программирования
Я устал, надоело.
Бессмысленно. Я старался. И уже сто раз наверное говорил, намекал, упрашивал. Да ПОПРОБУЙТЕ ВЫ ЧЕРТ ВАС ВОЗЬМИ!
Как можно рассказывать о вкусе фрукта тем кто его ни разу не пробовал ?
Потом начиная с какого то момента резко обрубило всякое желание общаться за пределами круга функциональщиков.
Уговаривать, убеждать. Просто вдруг вы мне господа стали безразличны.
Потом понял на что это похоже.
Клиффорд Саймак "Город".
Почитайте http://www.fenzin.org/book/4207
Там есть одна из линий повествования, где рассказывается об исследовании какой то планеты (Юпитера по моему)
У людей есть техника при помощи которой человек перевоплощается в тело жителя Юпитера - огромного паука-скакуна. С тем чтобы высадиться на Юпитере (враждебная для человека среда) и соответственно исследовать, вернуться и доложить. Только вот проблема, сколько не пробовали, скольо пламенных добровольцев не посылали - никто не возвращается. Рассказывать некому.
Потом по ходу повествования выясняется, что просто никто не хочет возвращаться. Даже на время, чтобы рассказать что там. Все что осталось позади становится безразличным.
Мне (теперь уже) мягко говоря безразлично, понимаете ли вы преимуществ функционального программирования или нет.
Мне теперь интересно говорить только с теми кто понимает, то есть уже на этой стороне.
№ 1376 01-11-2006 02:15 | |
Владимир, Вы бы лучше со своим авторитетом склонили Jacka
раскрыть таки суть преимуществ функционального программирования,
так сказать кухню, чем политический флейм добесконца провоцировать.
А то с ФЯ как у Манго-Манго:
"У нас есть такие приборы!
Но мы вам о них не расскажем!
Аквалангисты - это хорошо!"
Пример эффективности рекурсии с Аккерманом меня как то не вдохновил,
а даже того - этого совсем наоборот. Так где тут собака порылась?
"Поманил куда-то, а сам дороги не сказал"
№ 1375 01-11-2006 01:27 | |
Ответ на »сообщение 1372« (Jack Of Shadows)
___________________________
Пардон за оффтопик...
№ 1374 01-11-2006 01:12 | |
Ответ на »сообщение 1371« (Geniepro)
___________________________
Чё вы так разволновались?
Вы посмотрите на это дело с другой стороны. Дыма-то без огня никогда не бывает. Если такие настроения появляются в обществе, то это не потому, что некто, например(чисто например!) "прирождённый изначальный антисемит" или "непрятель чужих", а потому, что общество - система с обратными связями и пошла реакция на некое воздействие... Реакция в рамках СФОРМИРОВАННОГО наблюдаемыми обстоятельсвами окружающей повседневной жизни, а не априори существовавшего, мировосприятия. Тем, кто боится данных тенденций, надо не визгливо-карательно-"обличительные" меры предпринимать, а разобраться в собственном поведении. Почему вдруг такая реакция регулярно и периодически возникает...
А то получается, как в той американской пародии конца 80-х-начала 90-х. (не помню названия) Там в полёт отправляется огромный космический корабль. И от каждого народа Земли там по нескольку человек. Типа нового ковчега. На отбытие пришли служители разных религий, что бы благословить на дальнюю дорожку. И рабе говорит своим "таки вы летите далеко. Мало ли вы кого там встретите, но я вам говорю, что все они в глубоко душе антисемиты!" :о)
Если детально разобраться в требованиях подобных "народных мстителей", то выясняется, что по сути своей требования их элементарны. Они хотят только лишь не ущемления других народов, а наконец получения хотя бы каких-то равных прав для своего. В коем-то веке!
И потом, страхи, в большинстве своем из области тёмно-подсознательного, сформированного на основании собственного отношения к другим. Скорее всего, бояться именно того, что сами способны сделать с другими...
Маленький пример.
Огромная часть восприятия народа происходит через знание его истории. Но всё дело, как подавать эту историю. Например, немалая часть восприятия русских на Западе происходит из баек о "зверствах" Ивана Грозного. Средний обыватель ужасается, но ведь ему в голову не приходит элементарное сравнение: ЗА ВСЁ ВРЕМЯ ЦАРСТВОВАНИЯ "терибля" Грозного было казнено 3000 человек (детоубийц, предателей, казнокрадов, душегубов, разбойников с большой дороги), но в то же самое время в "просвещённейшей и самой европейской"Англии, благодаря двум принятым законам (о сгоне неуплативших арендаторов в полной мере налога с земли и о повешании пойманных бродяг) ТОЛЬКО ЗА ОДИН ИЗ ТЕХ ГОДОВ (самый "урожайный") вдоль дорог повесили 70 000 крестьян... Ах, ужасная Россия!... Дикие нравы!... :о)
Ну а если брать современные "эпизоды", то давайте сначала разберёмся что такое есть и из кого состоит та же самая пресловутая "русская мафия"?! А то опять начнётся "Oh, those Russians!" :о)))
Азербайджанцев по традиции называют "чёрными" или "чурками". Но, скорее всего, это произносят те, кто "чужих" успел увидеть только у себя на рынках и в армии. У меня, что в Баку, что в Армии были друзья азербайджанцы. Конечно, картину создаёт "наиболее активная часть населения", но подумайте, неужели все эти миллионы азербайджанцев разбежались по миру и спекулируют по рынкам? А кто же тогда в самом Азербайджане нефть добывает, автобусы собирает, дома строит, детей в школах и вузах учит, стены штукатурит, хлеб выпекает, пахлаву (настоящую!) делает, виноград выращивает, наконец, кепки шьёт? :о) Так шо, "щательнее надо", ребята!
№ 1373 Удалено модератором | |
Добавить свое сообщение
Отслеживать это обсуждение
Дополнительная навигация: |
|