Функциональное программирование |
Функциональное программирование всегда привлекало меня в противопоставлении к императивному.
Я очень часто обсуждаю различные аспекты функционального программирования на различных ветках на Базарной площади.
Но хотелось бы собрать всех заинтересованный этой темой в одной ветке.
Я думаю что настало время открыть такую тему. И вот почему.
Исторически функциональное программирование появилось практически вместе с императивным.
Вторым языком после фортрана был лисп.
Но увы, функциональное программирование надолго было уделом исследовательских институтов или специализированных приложений (Искусственный Интеллект)
Конечно не надо считать весь мир дураками из за того что развитие пошло по пути языков Алгол семейства.
Для этого были вполне обьективные причины. Функциональные языки слишком близки к человеку и слишком далеки от машины.
Они сьедают в десятки раз больше рессурсов чем императивные языки.
Вспомните претензии, предявляемые к java - первому императивному языку с виртуальной машиной и сборщиком мусора, толкаемому большими корпорациями в mainstream.
Жутко тормозит, и жрет всю память какая есть. А ведь функциональные языки (далее ФЯ) все без иключения имеют сборщик мусора, виртуальную машину.
Многие из них (семейство лисп) еще и динамические, что только усугубляет положение.
Вполне естественно что появившись более полусотни лет назад они надолго опередилли свое время.
Для широкого распространения ФЯ нужны гигабайты дешевой памяти и гигагерцы дешевых процессоров.
Прошло более 50 лет, прежде чем такие требования к железу стали реальностью.
Это время наступило. СЕЙЧАС.
Добро пожаловать в новую эру программирования.
Jack Of Shadows
Всего в теме 5502 сообщения
Добавить свое сообщение
Отслеживать это обсуждение
- Средства разработки. Языки программирования.
- Delphi 4 or Delphi 5
- Что приобрести в качестве средства разработки?
- Delphi6
- Delphi vs PowerBuilder
- Сравнение компиляторов
- Вот и вышла Delphi 7... Вы рады?
№ 4222 06-04-2008 04:30 | |
Ответ на »сообщение 4221« (Jack Of Shadows)
___________________________
Вот Вы говорите о новой эре в связи с появлением и предстоящим доминированием
многоядерных процессоров и необходимости перехода на ФЯ, как заточенном под эти задачи.
Однако кластерные системы известны давно, а в связи с Gigabit Ethernet ( и 10G)
кластеры приближаются к многоядерным системам.
Можно еще вспомнить Chorus, работающий по шинам HyperTransport,
который стирает грань между кластерами и многоядерными процессорами.
И все это болтается не на ФЯ.
Или я ошибаюсь и тут есть бонус у ФЯ?
Я это не только из любопытства - подумываю всерьёз занятся кластерными расчётами.
Это в плане привязки клиента хороший сервис, поле непаханное (я про Россию),
задачи есть, ПО есть под Linux, есть ещё много плюсов, но не буду нагружать.
Кстати, к моему любимому вопросу о вредности застоя с топологией дерева.
В кластерах "звезда" Ethernet не в почёте.
Там пространственные торы, многомерные решётки и т.п.
Топология даёт надежность, о необходимости которой так много здесь говорят.
№ 4221 04-04-2008 18:26 | |
Ответ на »сообщение 4220« (Geniepro)
___________________________
Всегда найдётся новый супер-пупер 3D-движок
Первый предвестник перемен в этой области был Playstation 3, в котором вместо специализированных графических чипов используются 7 ядер общего назначения (пусть и не таких как x86)
Если эта же идея проникнет в писюки (а Интел весьма активно эту идею и толкает) то все, приехали, сливай воду.
Начиная с 4 ядер, любой писюк общего назначения, безо всяких специализированных плат, может выдавать на гора нехилую трехмерную графику в реальном времени.
Из специализированных приложений я вижу только один путь отступления - голографические трехмерные изображения.
Но там уже не только плату, там и экран наверное тоже придется менять.
№ 4220 04-04-2008 18:14 | |
Ответ на »сообщение 4219« (Jack Of Shadows)
___________________________
Так вот выход на 4-х и более ядерные процессоры, означает что и этот рубеж технически уже взят, а коммерчески будт завоеван в ближайшие 2 года.
По моему видеокарточкам отступать больше некуда. Разве что уж вообще в какие нибудь узкоспециальные ниши.
Всегда найдётся новый супер-пупер 3D-движок с HDTV-качеством картинки и суперфизикой, для которого 1024-ядерная видяшка подойдёт куда лучше 8-ядерного ЦПУ... И опять пойдёт гонка вооружений... ;о)
№ 4219 04-04-2008 14:01 | |
Ответ на »сообщение 4215« (Lisp Hobbyist)
___________________________
Если мне не изменяет память, в 1992-м, презентуя первый Pentium, та же самая фирма Intel обещала чисто программные средства отображения видео, поскольку производительность процессора якобы достигла достаточного для этого уровня...
Дык они и сдержали свое обещание.
Именно поэтому ничко больше не покупает видео платы просто чтобы двухмерную картинку на экран выводить.
Все видео встроенное в материнку, более того даже памыть использует общую.
Видеокарточки отошли на рубеж специализированного видео - 3d игры.
Так вот выход на 4-х и более ядерные процессоры, означает что и этот рубеж технически уже взят, а коммерчески будт завоеван в ближайшие 2 года.
По моему видеокарточкам отступать больше некуда. Разве что уж вообще в какие нибудь узкоспециальные ниши.
№ 4218 04-04-2008 12:21 | |
Ответ на »сообщение 4216« (Lisp Hobbyist)
___________________________
который личным примером еще раз обратил мое внимание на Лисп. Здесь-то до меня и дошло, в чем сила скобок! :-)
А как же без практики ? Если на работе не пользуетесь, то где тогда ?
№ 4217 04-04-2008 04:29 | |
Ответ на »сообщение 4214« (Jack Of Shadows)
___________________________
>>> NVIDIA и ATI просто подписан смертный приговор.
Выпустят четырехядерную видеоплату :)
Видео впечатлило, особенно по сравнению с OpenGL Demo по соседству,
где мутный передний план, что противоестественно.
Оригинально северное сияние, только нижний край ровный, что не есть гуд.
Впрочем, Infinity Game Engine Demo тоже хорош, хотя на одном ядре.
>>> Программировани графики становится гораздо более простым.
Что-то никаких подробностей в комментариях к ролику -
на чем написано, какая машина.
№ 4216 04-04-2008 04:18 | |
Ответ на »сообщение 4213« (Jack Of Shadows)
___________________________
Главное начать пробовать.
Я несколько лет назад попробовал и получил от руководства дружеское пожелание не морочить голову окружающим выгодами Лиспа, которых у него не может быть потому, что просто не может. Blub paradox. С тех пор я придерживаюсь мнения, что для перехода к чему-то принципиально новому недостаточно влияния извне (если оно не силовое, конечно), человек должен сам к этому прийти. Когда я прочел свои первые книги по Лиспу (в их числе оказался и "Мир Лиспа"), особого впечатления он не вызвал (как и отторжения). Просто потому, что все задачи, которые мне приходили в голову на тот момент, достаточно элегантно решались на C++. Но несколько лет спустя появились другие, посложнее. И тут мне повезло --- случайно встретил в онлайне человека, который личным примером еще раз обратил мое внимание на Лисп. Здесь-то до меня и дошло, в чем сила скобок! :-) Если бы эти два события во времени разошлись --- одним любителем Лиспа было бы меньше.
№ 4215 04-04-2008 03:52 | |
Ответ на »сообщение 4214« (Jack Of Shadows)
___________________________
Intel выложла интересные демо ролики графических игр, использующих вместо графической карты 4-х ядерный процессор.
Если мне не изменяет память, в 1992-м, презентуя первый Pentium, та же самая фирма Intel обещала чисто программные средства отображения видео, поскольку производительность процессора якобы достигла достаточного для этого уровня...
То что показывают ролики можно однозначно охарактеризовать как смерть индустрии графических карт.
Спустя несколько лет после той презентации видеокарты без аппаратной поддержки MPEG-декодирования считались устаревшими.
NVIDIA и ATI просто подписан смертный приговор.
Все возможно. Только, например, специализированные графические карты может заменить не ЦП, а универсальный векторный ускоритель, вроде Intel'овского Larrabee.
№ 4214 03-04-2008 18:51 | |
Intel выложла интересные демо ролики графических игр, использующих вместо графической карты 4-х ядерный процессор.
http://www.youtube.com/watch?v=DqmVG47zgvU
То что показывают ролики можно однозначно охарактеризовать как смерть индустрии графических карт.
NVIDIA и ATI просто подписан смертный приговор.
Зачем покупать специализированные карты если процессор общего назначения прекрасно справляется ?
Поняное дело это также означает выбрасывание на свалку всех этих специализированных Direct X и прочих API
Программировани грефики становится гораздо более простым.
Ну и соответственно все это разворачивается во всей своей красе и мощи только в функциональных языках.
Потому что программировать множество ядер в таких массовых и сложных вычислениях обычными старыми способами просто не под силу достаточному количеству программистов.
Вот такие вот тектонические сдвиги :))
№ 4213 01-04-2008 14:54 | |
Ответ на »сообщение 4210« (Lisp Hobbyist)
___________________________
Поздравляю. Но, опять-же, если говорить не о freelance, такая возможность выбора инструмента скорее исключение из правила. Некоторым разработчикам на C++ (к счастью, не мне) корпоративные правила предписывают не использовать boost, который уже является стандартом де-факто.
Ну дельфисты знакомы с подобными проблемами не понаслышке.
В любой крупной компании существует довольно жесткий стандарт на софт, в том числе и на средства разработки.
И в большинстве случаев дельфи у них не в почете.
Я сам, работая в BP (British Petroleum), сталкивался с проблемами пробивания Дельфей в качестве средства разработки. И ничего, протащили таки :))
Эта проблема присуща не конкретно ФЯ, а вообще всем маргинальным языкам и инструментам.
Так что в случае с тем же самым F#, официально обласканным МС, ситуация во многих dotnet командах может быстро измениться.
Питон вон тот же, смог пробиться во многие крупнейшие компании. Не сам ведь по себе, люди его толкали, где тайком от начальства, где на своем авторитете.
Ищите способы, при решении любой задачи, тыкайте ее на возможность использования какого нибудь ФЯ.
Я полагаю, страхи во многом преувеличены. Уж если маленькая команда из 2-х программистов в захолустном Баку, смогла убедить региональное IT BP (отвечающее за всю Азию аж до Индии и Сингапура), включить в список одобренных инструментов Дельфи, то в более мелких компаниях все может оказаться гораздо легче.
Главное начать пробовать.
Добавить свое сообщение
Отслеживать это обсуждение
Дополнительная навигация: |
|