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

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

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


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

Архив

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


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

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

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

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

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

 
   
С Л С

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

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

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

Квинтана

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

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

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

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

 
  
АРХИВЫ

 
 

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

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

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

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

 Jack Of Shadows

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

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

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


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

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

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


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

  • <<<... | 2252—2243 | 2242—2233 | 2232—2223 | ...>>>
    Всего сообщений в теме: 5502; страниц: 551; текущая страница: 327


    № 2242   26-03-2007 01:40 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2231« (Булат Зиганшин)
    ___________________________

    желаете опровергнуть это самолично? :D

    Булат, просто надоело одно и то же пятый год перетирать, одну и ту же завиральную демагогию некоторых участников читать.
    Когда случается новый поворот какой -- тогда интересно. А так -- просто нет возможности.


    № 2241   26-03-2007 01:33 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2235« (Сергей Перовский)
    ___________________________

    Ответ на »сообщение 2222« (info21)
    ___________________________
    >>>А эффект этих простых фундаментальных весчей propagates сквозь всю разработку -- от уровня кода, где это выглядит как приятные мелочи, до уровня архитектуры, где это выглядит уже как life saver.
    Разберем, например, контроль заголовков процедур.
    В статической компиляции он есть. При динамическом связывании dll  отсутствует.
    В Обероне работает и при динамическом связывании.
    Я очень редко использую динамическое связывание - ну не надо оно мне.
    И компилятор всегда найдет ошибки в вызове процедуры.
    Поэтому контроль типов при динамическом связывании, для меня изящный пустячок.
    А для разработчика операционной системы это фантастически важный механизм.
    Разные задачи, разные критерии оценки, что тут удивительного?


    Разберем, например, модули. У обычных школьников все задачки -- в одну процедуру.
    Для них модули -- изящный пустячок.
    Разные задачи, разные критерии оценки -- ничего удивительного 8))

    Вы очень редко используете дин. связывание скорее всего потому, что Ваши инструменты его по-хорошему не поддерживают -- и тогда, конечно, одна морока.


    № 2240   26-03-2007 01:17 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2225« (Булат Зиганшин)
    ___________________________

    в данном случае мусор - это procedure, begin, end, if, then, else.

    begin-end мусор в старом паскале. В обероне этого нет. Что остальное мусор -- Ваша субъективность. Неинтересно.

    вы судите об опасности необъявления типов по императивным языкам, которые имеют куда менее строгую типизацию.

    Сужу по Оберону, где типизация абсолютно герметичная.

    в современном программировании приходится использовать очень сложные сконструированные типы, и менять объявления переменных каждый раз при изменении алгоритма - весьма скучная задача

    Вы знаете, мне приходится заниматься постоянным экспериментированием с алгоритмами и очень сложными структурами данных. Такие уж задачи. Самые что ни на есть современные 8))
    И там вероятность того, что двойная ошибка произойдет, нетривиально повышается -- потому что все время приходится что-то где-то переделывать. И когда *это* происходит, мало не покажется.
    От ФЯ я давно отказался, потому что нужно, чтоб все было просто и надежно, как гвоздь, и чтобы студент 3-го курса пришел и через неделю-две что-то полезное уже ковырял.

    Все умности ФЯ -- это игры ИТ-профессионалов, которым скучно ... программирование -- весчь пустая сама по себе. А также нужно чем-то гордиться... А мне веселья и поводов для законной гордости более чем хватает за пределами программирования 8))
    А от программирования нужно только, чтобы как можно меньше от него головной боли происходило. Потому как еще раз -- пустое оно само по себе.


    № 2239   25-03-2007 23:35 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2238« (Jack Of Shadows)
    ___________________________

    Ответ на »сообщение 2237« (Geniepro)
    ___________________________
    И почему дельфисты да цеплюсплюсники не могут найти на неё время, показать всю мощь их языков, не пойму... :о))
    Дык показывать неча :))


    Дельфисты не показывают, они делают... :)


    № 2238   25-03-2007 14:11 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2237« (Geniepro)
    ___________________________
    И почему дельфисты да цеплюсплюсники не могут найти на неё время, показать всю мощь их языков, не пойму... :о))
    Дык показывать неча :))


    № 2237   25-03-2007 14:05 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2234« (Jack Of Shadows)
    ___________________________

    GeniePro даже пустился на героический просто поступок, потратил кучу времени и написал на хаскеле задачу с програмисткой олимпиады. С подороным разбором полетов.

    Ой, Вагиф, ну прям засмущали... :о)
    Не корысти ради, а токмо для пропаганды ФП в целом и Хаскелла в частности... ;о)
    А задачка, кстати, ну такая простенькая, прям разминочная...
    И почему дельфисты да цеплюсплюсники не могут найти на неё время, показать всю мощь их языков, не пойму... :о))


    № 2236   25-03-2007 14:05 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2225« (Булат Зиганшин)
    ___________________________

    вывод типов однако несовместим (или плохо совместим) с наследованием в стиле ООП, неограниченной перегрузкой имён, автоматическими преобразованиями типов

    Немерлисты на RSDN.RU упорно утверждают обратное - мол, в Немерле наикрутейший алгоритм вывода типов, который прекрасно согласуется и с традиционным ООП из С#, и с перегрузкой имён функций, и позволяет макросам быть типизированными...


    № 2235   25-03-2007 13:42 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2222« (info21)
    ___________________________
    >>>А эффект этих простых фундаментальных весчей propagates сквозь всю разработку -- от уровня кода, где это выглядит как приятные мелочи, до уровня архитектуры, где это выглядит уже как life saver.
    Разберем, например, контроль заголовков процедур.
    В статической компиляции он есть. При динамическом связывании dll  отсутствует.
    В Обероне работает и при динамическом связывании.
    Я очень редко использую динамическое связывание - ну не надо оно мне.
    И компилятор всегда найдет ошибки в вызове процедуры.
    Поэтому контроль типов при динамическом связывании, для меня изящный пустячок.
    А для разработчика операционной системы это фантастически важный механизм.
    Разные задачи, разные критерии оценки, что тут удивительного?


    № 2234   25-03-2007 13:00 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2233« (Сергей Перовский)
    ___________________________
    А с модульным или ООП имеет смысл сравнивать только на сложных задачах.
    Что в рамках форума затруднительно.


    Вот вы сами и ответили на вопрос, почему убеждать вас бессмысленно.
    Почему на ваши "ты мне на пальцах покажи как базу данных на ФП написать" никто не имеет ни времени, ни желания.
    GeioPro даже пустился на героический просто поступок, потратил кучу времени и написал на хаскеле задачу с програмисткой олимпиады. С подороным разбором полетов. Но даже это дла вас не является достаточно сложным примером. Стоит ли пытаться дальше ?


    № 2233   25-03-2007 12:52 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2223« (Булат Зиганшин)
    ___________________________
    >>>если я скажу что хаскелл - сверх-высокоуровневый язык и не покажу никаких примеров. вы поверите? ;)
    Вы тут уже высказывались что хаскелл - сверх язык :)
    И даже приводили примеры.
    Вот только примеры в данном случае плохо убеждают.
    Потому что каждый сторонник определенной парадигмы, потому и сторонник, что на ЕГО примерах она лучше работает.
    С чем Вы сравниваете ФП на мелких примерах? С процедурным программированием. В большинстве случаев сравнение будет в пользу ФП, никто и не спорит.
    А с модульным или ООП имеет смысл сравнивать только на сложных задачах.
    Что в рамках форума затруднительно.


    <<<... | 2252—2243 | 2242—2233 | 2232—2223 | ...>>>
    Всего сообщений в теме: 5502; страниц: 551; текущая страница: 327


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

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

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

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

    Перейти на конкретную страницу по номеру
      
    Время на сайте: 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» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
    Все используемые на сайте торговые марки являются собственностью их производителей.

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