Функциональное программирование |
Функциональное программирование всегда привлекало меня в противопоставлении к императивному.
Я очень часто обсуждаю различные аспекты функционального программирования на различных ветках на Базарной площади.
Но хотелось бы собрать всех заинтересованный этой темой в одной ветке.
Я думаю что настало время открыть такую тему. И вот почему.
Исторически функциональное программирование появилось практически вместе с императивным.
Вторым языком после фортрана был лисп.
Но увы, функциональное программирование надолго было уделом исследовательских институтов или специализированных приложений (Искусственный Интеллект)
Конечно не надо считать весь мир дураками из за того что развитие пошло по пути языков Алгол семейства.
Для этого были вполне обьективные причины. Функциональные языки слишком близки к человеку и слишком далеки от машины.
Они сьедают в десятки раз больше рессурсов чем императивные языки.
Вспомните претензии, предявляемые к java - первому императивному языку с виртуальной машиной и сборщиком мусора, толкаемому большими корпорациями в mainstream.
Жутко тормозит, и жрет всю память какая есть. А ведь функциональные языки (далее ФЯ) все без иключения имеют сборщик мусора, виртуальную машину.
Многие из них (семейство лисп) еще и динамические, что только усугубляет положение.
Вполне естественно что появившись более полусотни лет назад они надолго опередилли свое время.
Для широкого распространения ФЯ нужны гигабайты дешевой памяти и гигагерцы дешевых процессоров.
Прошло более 50 лет, прежде чем такие требования к железу стали реальностью.
Это время наступило. СЕЙЧАС.
Добро пожаловать в новую эру программирования.
Jack Of Shadows
Всего в теме 5502 сообщения
Добавить свое сообщение
Отслеживать это обсуждение
- Средства разработки. Языки программирования.
- Delphi 4 or Delphi 5
- Что приобрести в качестве средства разработки?
- Delphi6
- Delphi vs PowerBuilder
- Сравнение компиляторов
- Вот и вышла Delphi 7... Вы рады?
№ 2422 01-04-2007 05:53 | |
дополнение на »сообщение 2418« (Илья Ермаков)
Кажется такое свойство языка называется ортогональностью.
№ 2421 01-04-2007 05:49 | |
Ответ на »сообщение 2416« (Geniepro)
___________________________
Ответ на »сообщение 2405« (Илья Ермаков)
___________________________
Питон в Гугле является обязательным языком - наверное, неспроста... Гугловцы вообще неглупые люди...
См. выше - свое отношение к Питону в принципе я выразил, как абсолютно положительное. Даже похожий пример привел, только из игрописания. Зачем мусолить одно и то же, если можно внимательно читать слова оппонентнов?
№ 2420 01-04-2007 05:49 | |
Ответ на »сообщение 2412« (info21)
___________________________
Ответ на »сообщение 2391« (Geniepro)
___________________________
Зачем требовать от школьников инженерных подходов к программированию? Всё равно мало кто из них захочет стать в будущем программистами, так зачем зря отпугивать?
Типичное непонимание того, зачем и как устроена система образования, в т.ч. школьного. Английский язык там преподают не для того, чтобы делать переводчиков, физику -- не для подготовки будущих физиков ... и т.д.
Прошу прощения у Geniepro, который ровно о том же писал раньше сам.
Значит, проблема в другом: в отсутствии опыта преподавания в школе (там можно спокойно ни разу не упоминать, что INTEGER -- 32 бита) и т.п.
Вообще, уважаемый Geniepro, позвольте просто отметить некоторую "расхлябанность" логики ...
№ 2419 01-04-2007 05:48 | |
Ответ на »сообщение 2416« (Geniepro)
___________________________
Ответ на »сообщение 2405« (Илья Ермаков)
По этому поводу спорить можнол бесконечно...
Вам нужны солдаты или художники с производительностью на три порядка выше солдатской?
Мне нужны профессионалы с безупречно поставленной техникой. Как в спорте, в музыке, в танцах, в рисовании - в чем угодно: сначала ставятся жесткие требования и ограничения, "корсеты", идет наработка правильной техники, а уже затем человек сможет заниматься творчеством, не задумываясь об этой, "в плоть и кровь" вошедшей технике.
№ 2418 01-04-2007 05:46 | |
Ответ на »сообщение 2408« (Geniepro)
___________________________
Ответ на »сообщение 2398« (slava)
___________________________
Вы знаете, модули ведь тоже всего лишь синтаксический сахар. Как и оъекты, и записи...
И вообще, ВСЁ что свыше Машины Тьюринга (в ИП) или лямбда-исчисления (в ФП) - ВСЁ это лишь синтаксический сахар, не более того...
Если что-то имеет содержательную, конструктивную роль, реализует конкретный механизм и при этом не вводит дублирующихся возможностей - то это не сахар. То, что лишь для мелкого удобства в частном случае ("средство на каждый чих", "одно сверло для столов, второе для стульев, третье - для табуреток") - то это синт. сахар. В идеале язык для каждой возможности должен предоставлять один, наиболее простой путь.
Т.е. поясню так: для какого-то конкретного случая два программиста одинаково высокой компетенции должны в компактном языке пойти одним и тем же путем. Т.е. применить ли то или иное средство - это должно диктоваться только объективной целесообразностью, но не вкусом/предпочтением/капризом. Оберон этому требованию удовлятворяет, поэтому так легко читать чужие коды - простора для "личных капризов" нет. Все мыслительные усилия направлены на решения высокого уровня, а не на жонглирование средствами языка...
№ 2417 01-04-2007 05:45 | |
Ответ на »сообщение 2355« (Geniepro)
___________________________
Эх, непонятно всё-таки, где Вы откопали этот миф, что ФП якобы пригодно только для решения высшематематических задач, но никак не для прикладного программирования. Разве у Вас есть такой негативный опыт? Если есть, так поделитесь им! ;о)
Ну, я вот делился не раз:
ФП нехорошо (по интегралу, на длинных временах) даже для "высшематематических" задач. Оберон делает все то же, но с гораздо меньшей головной болью и не выставляя барьеров в плане выбора устройства типов данных, при выходе на низкий уровень, на файлы и т.п. (а в больших задачах всегда происходит выход за пределы тех гигабайт, где ФП себя хорошо чувствует).
Повторю, мне лично абсолютно наплевать на все ИТ в мире -- меня интересуют содержательные задачки в физике и их эффективное решение, причем в понятие эффективности включается и факт известной компетенции школьных учителей.
И реальность в том, что как инструмент решения больших нестандартных содержательных задач Обероны по интегралу проще и эффективнее, чем ФП.
№ 2416 01-04-2007 05:41 | |
Ответ на »сообщение 2405« (Илья Ермаков)
___________________________
По поводу Python, Ruby и т.п., что Вы где-то выше предложили для школы...
Бррр... Мне от этой мысли коробит. Чистый Scheme/Lisp/Haskell - это одно...
Но только не эти "сахарные" языки.
Руби я никогда не предлагал. Я и языка-то такого не знаю. Слышать слышал, даже мелкие программки видел, но интереса он не вызвал. Хотя "Трогательный путеводитель по Руби" мне понравился... :о))
Питон в Гугле является обязательным языком - наверное, неспроста... Гугловцы вообще неглупые люди...
Но только не эти "сахарные" языки. Нужно приучать с первых шагов к дисциплине и минимализму, а не к многочисленным удобствам и "язык должен мне позволить так, как я хочу". В противном случае - что будет заложено в школе, потом и рожном не вышибешь :-)
По этому поводу спорить можнол бесконечно...
Вам нужны солдаты или художники с производительностью на три порядка выше солдатской?
№ 2415 01-04-2007 05:34 | |
Ответ на »сообщение 2413« (Geniepro)
___________________________
Ответ на »сообщение 2402« (Илья Ермаков)
Люди, не ставшие программистами, таким выбором не задаются - они решают свои профессиональные задачи...
Вот проект Информатики-21 и имеет такую цель - дать этим людям в процессе базового обучения (в школе, на первом курсе ВУЗа на непрофильной специальности) простой и удобный, "карманный" инструмент для решения задач из их будущей проф. области... И защитить их от необходимости разбираться с "собственными уродствами ИТ", будь то навороты Висуал Студий, или дебри ФП...
№ 2414 01-04-2007 05:31 | |
Ответ на »сообщение 2361« (Geniepro)
___________________________
Есть преподователи, считающие ФЯ гораздо идеальнее других языков подходящими для начального обучения программированию. И таких преподователей существенно больше, чем преподователей Оберонов...
"Нас много, поэтому мы смелые..."
ФЯ имеет, конечно, то огромное преимущество в плане пиара, что может впечатлить посредственность необычностью и пустыми мантрами насчет математичности.
Короче, ФЯ -- дешевый способ поверить в собственный особый ум и избранность.
№ 2413 01-04-2007 05:30 | |
Ответ на »сообщение 2402« (Илья Ермаков)
___________________________
Знаете, я как-то не помню никаких проблем с решением "типичных школьных задачек" на Паскале, когда был в школе... В 11 классе реализовывал даже распознавание образов на Дельфе - и вполне успешно (программа заняла 1 место на всеройссийском конкурсе Intel-Авангард).
Таких школьников как Вы на всю школу - раз-два и обчёлся... В подавляющем большинстве школ, по-крайней мере...
Вы проецируете свой единичный успешный случай на всех, а потом удивляетесь, что и мы так тоже умеем делать... :о))
для окончившего школу и не ставшего проф. программистом два выбора: либо так ничего никогда и не написать за пределами школьного курса, либо лезть в дебри сверхвысоких для среднего ума абстракций...
Люди, не ставшие программистами, таким выбором не задаются - они решают свои профессиональные задачи...
Добавить свое сообщение
Отслеживать это обсуждение
Дополнительная навигация: |
|