Rambler's Top100
"Knowledge itself is power"
F.Bacon
Поиск | Карта сайта | Помощь | О проекте | ТТХ  
 Базарная площадь
  
О разделе

Основная страница

Группы обсуждений


Тематический каталог обсуждений

Архив

 
 К н и г и
 
Книжная полка
 
 
Библиотека
 
  
  
 


Поиск
 
Поиск по КС
Поиск в статьях
Яndex© + Google©
Поиск книг

 
  
Тематический каталог
Все манускрипты

 
  
Карта VCL
ОШИБКИ
Сообщения системы

 
Форумы
 
Круглый стол
Новые вопросы

 
  
Базарная площадь
Городская площадь

 
   
С Л С

 
Летопись
 
Королевские Хроники
Рыцарский Зал
Глас народа!

 
  
ТТХ
Конкурсы
Королевская клюква

 
Разделы
 
Hello, World!
Лицей

Квинтана

 
  
Сокровищница
Подземелье Магов
Подводные камни
Свитки

 
  
Школа ОБЕРОНА

 
  
Арсенальная башня
Фолианты
Полигон

 
  
Книга Песка
Дальние земли

 
  
АРХИВЫ

 
 

Сейчас на сайте присутствуют:
 
  
 
Во Флориде и в Королевстве сейчас  14:27[Войти] | [Зарегистрироваться]
Обсуждение темы:
Функциональное программирование

Функциональное программирование всегда привлекало меня в противопоставлении к императивному.
Я очень часто обсуждаю различные аспекты функционального программирования на различных ветках на Базарной площади.
Но хотелось бы собрать всех заинтересованный этой темой в одной ветке.
Я думаю что настало время открыть такую тему. И вот почему.

Исторически функциональное программирование появилось практически вместе с императивным.
Вторым языком после фортрана был лисп.
Но увы, функциональное программирование надолго было уделом исследовательских институтов или специализированных приложений (Искусственный Интеллект)
Конечно не надо считать весь мир дураками из за того что развитие пошло по пути языков Алгол семейства.
Для этого были вполне обьективные причины. Функциональные языки слишком близки к человеку и слишком далеки от машины.
Они сьедают в десятки раз больше рессурсов чем императивные языки.
Вспомните претензии, предявляемые к java - первому императивному языку с виртуальной машиной и сборщиком мусора, толкаемому большими корпорациями в mainstream.
Жутко тормозит, и жрет всю память какая есть. А ведь функциональные языки (далее ФЯ) все без иключения имеют сборщик мусора, виртуальную машину.
Многие из них (семейство лисп) еще и динамические, что только усугубляет положение.
Вполне естественно что появившись более полусотни лет назад они надолго опередилли свое время.

Для широкого распространения ФЯ нужны гигабайты дешевой памяти и гигагерцы дешевых процессоров.
Прошло более 50 лет, прежде чем такие требования к железу стали реальностью.
Это время наступило. СЕЙЧАС.
Добро пожаловать в новую эру программирования.

 Jack Of Shadows

Количество сообщений на странице

Порядок сортировки сообщений
Новое сообщение вверху списка (сетевая хронология)
Первое сообщение вверху списка (обычная хронология)

Перейти на конкретную страницу по номеру


Всего в теме 5502 сообщения

Добавить свое сообщение

Отслеживать это обсуждение


Смотрите также обсуждения:
Средства разработки. Языки программирования.
  • Delphi 4 or Delphi 5
  • Что приобрести в качестве средства разработки?
  • Delphi6
  • Delphi vs PowerBuilder
  • Сравнение компиляторов
  • Вот и вышла Delphi 7... Вы рады?

  • <<<... | 932—923 | 922—913 | 912—903 | ...>>>
    Всего сообщений в теме: 5502; страниц: 551; текущая страница: 459


    № 922   22-08-2006 12:04 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 889« (SJ)
    ___________________________

    >>>  все компьютеры - это и конечные автоматы и машины Тьюринга одновременно.

    Автоматы - да. Но вот машина Тьюринга может вычислить функцию Аккермана для любых агрументов, а конечный автомат и реальный компьютер не могут.


    № 921   22-08-2006 12:02 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 919« (Jack Of Shadows)
    ___________________________
    >>>Вы хоть сами с этой страшилкой, кроме как на тестовых примерчиках с функциями Акермана, где нибудь на практике сталкивались ?
    Увы, сталкиваюсь постоянно. Задачи составления расписаний подобными проблемами набиты под завязку. Казалось бы так красиво решать рекурсией, вот только вычислительная сложность алгоритма становится экспоненциальной и можно дальше не дергаться. Вообще, в комбинаторных задачах очень редко удается использовать рекурсию.
    В этой дискуссии, насколько я понимаю, сформировались два лагеря: один, считающий, что вычислительной мощности теперь (или через десять лет) хватит на что угодно и другой, который пытается решать задачи, для которых вычислительной мощности не хватит никогда.
    Отсюда и взаимное непонимание (и неприятие).
    А на самом деле нужно просто признать, что для многих задач быстродействие стало несущественным, во всяком случае менее существенным чем скорость и надежность разработки, но остались и останутся задачи, для которых быстродействие критически важно.





    № 920   22-08-2006 11:38 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 915« (Mirage)
    ___________________________

    GOAL rules! Practically all of the run-time code (approximately half a million lines of source code) was written in GOAL (Game Object Assembly Lisp), Naughty Dog's own internally developed language, which was based on the Lisp programming language.

    Полмиллиона строк кода на диалекте Лиспа, практически весь run-time code - очень даже немаленькая часть кода...

    Тем не менее они ползовались не только Лиспом, но и Visual C++:

    Development software used: Allegro, Common Lisp, Visual C++, Maya, Photoshop, X Emacs, Visual Slick Edit, tcsh, Exceed, CVS

    потому что

    Eventually GOAL became much more robust, but even now C++ has some advantages over GOAL, such as destructors, better constructors, and the ease of declaring inline methods.
    A major difficulty was that we worked in such isolation from the rest of the world. We gave up third-party development tools such as profilers and debuggers, and we gave up existing libraries, including code previously developed internally. Compared to the thousands of programmers with many years of C++ experience, there are relatively few programmers with Lisp experience, and no programmers (outside of Naughty Dog) with GOAL experience, making hiring more difficult.

    хоть и надёжнее, но и сложнее, и менее эффективно работать только на Лиспе...

    Постепенно всё больше склоняюсь к тому, что часть программы нужно делать с использованием ФЯ, а часть - с использованием ИЯ.


    № 919   22-08-2006 11:20 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 912« (Сергей Перовский)
    ___________________________
    А то опять инструмент хвалят и критикуют без четкого осознания области применимости.


    Да ладно вам Сергей. Неужели вы думаете что программисты слепо применяют рекурсию невзирая на результаты ?
    Вот прямо вот так вот я пишу рекурсию, а потом каждый раз терпеливо пережидаю комбинаторный взрыв ? :))

    И как можно говорить о четком осознании области применения со стороны тех кто ФП не пробовал ?
    Что и как они могут четко осознавать ? :))
    Вы хоть сами с этой страшилкой, кроме как на тестовых примерчиках с функциями Акермана, где нибудь на практике сталкивались ?





    № 918   Удалено модератором


    № 917   22-08-2006 08:14 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 916« (Max Belugin)
    ___________________________
    см. сообщения №№ 17, 278, 477


    № 916   22-08-2006 07:48 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 913« (Артем)
    ___________________________
    я поискал lsharp гуглом в королевстве, не нашел и запостил


    № 915   22-08-2006 07:08 Ответить на это сообщение Ответить на это сообщение с цитированием
    Кстати, про Naughty Dog.
    Вот постмортем их игры Jak & Daxter: the Precursor Legacy на Лиспе:
    http://www.gamasutra.com/features/20020710/white_02.htm
    Там вроде требуется регистрация, но она вроде бесплатна.:)
    Вобщем-то игра не совсем на Лиспе, а лишь ее игровая логика. Это может быть довольно большой частью, но все-таки это не та часть, где требуется максимум производительности. Что, впрочем, логично.
    Срок разработки тоже довольно большой:
    1 year of initial development, plus 2 years of full production


    № 914   22-08-2006 05:26 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 912« (Сергей Перовский)
    ___________________________
    А то опять инструмент хвалят и критикуют без четкого осознания области применимости.
    А почему так произошло? Потому, что кто-то за всех решил, будто рекурсия – это стиль одного лишь ФП, а итерация – ООП.


    № 913   22-08-2006 05:21 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 911« (Max Belugin)
    ___________________________
    Ссылка на lsharp была уже тут давно приведена. Нам даже успели расскзать, что это - недо-Лисп, а LispWorks гораздо лучше. Или я не прав?


    <<<... | 932—923 | 922—913 | 912—903 | ...>>>
    Всего сообщений в теме: 5502; страниц: 551; текущая страница: 459


    Добавить свое сообщение

    Отслеживать это обсуждение

    Дополнительная навигация:
    Количество сообщений на странице

    Порядок сортировки сообщений
    Новое сообщение вверху списка (сетевая хронология)
    Первое сообщение вверху списка (обычная хронология)

    Перейти на конкретную страницу по номеру
      
    Время на сайте: GMT минус 5 часов

    Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
    Функция может не работать в некоторых версиях броузеров.

    Web hosting for this web site provided by DotNetPark (ASP.NET, SharePoint, MS SQL hosting)  
    Software for IIS, Hyper-V, MS SQL. Tools for Windows server administrators. Server migration utilities  

     
    © При использовании любых материалов «Королевства Delphi» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
    Все используемые на сайте торговые марки являются собственностью их производителей.

    Яндекс цитирования