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

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

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


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

Архив

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


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

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

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

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

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

 
   
С Л С

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

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

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

Квинтана

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

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

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

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

 
  
АРХИВЫ

 
 

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

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

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

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

 Jack Of Shadows

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

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

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


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

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

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


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

  • <<<... | 2532—2523 | 2522—2513 | 2512—2503 | ...>>>
    Всего сообщений в теме: 5502; страниц: 551; текущая страница: 299


    № 2522   02-04-2007 15:37 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2519« (Jack Of Shadows)
    ___________________________

    Ответ на »сообщение 2516« (Илья Ермаков)
    А вот с обероном и вообще языками этого уровня потяжелее. Никакая многолетняя практика не помогает. Вот тут ваша аналогия с муравьем ползающим по большой трехмерной поверхности и пытающимся подсчетом шажков понять по чему же это он лазит - точна.

    Джек, но факт есть факт - качество/количество ошибок при программировании на Обероне на порядок ниже общепринятого по индустрии. Независимо от индивидуальных особенностей - в целом обероновский open-source дает именно такое впечатление. Операционные системы и другие "насыщенные" вещи реализуются малыми командами в короткие сроки.
    Почему? Из-за совокупного эффекта - а) язык прост и включает минимум базовых средств для "чистого" выражения алгоритмов и проектных решений в стиле модульного и ООП-программирования б) эти средства безопасны и герметичны. Непосредственный (и, наверное, единственный) близкий аналог в этом смысле - Smalltalk. И тоже - поглядите на него - парадоксально - в чем причина резкого повышения качества? Никаких супер-абстракций вы в нем не найдете, это высокоуровневый, но чисто императивный язык. Типизация полностью динамическая, а это - весьма опасный "рассадник ошибок" в других языках... Однако работает фактор простоты и жесткости "скелета" языка, который включил минимум "кирпичиков" и минимум необходимых отношений между ними, на основе чего дальше строятся гибкие и надежные системы...


    № 2521   02-04-2007 15:27 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2520« (Jack Of Shadows)
    ___________________________

    Ответ на »сообщение 2518« (RBV)
    ___________________________
    Джек, признайтесь, Вы провели хотя бы одно занятие в школе? В вузе?
    Признаюсь, нет. И ?


    :) Мне всегда нравятся заявления людей не имеющих отношения к образованию, о том, что лучше для оного. В особенности для школьного.

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


    № 2520   02-04-2007 15:20 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2518« (RBV)
    ___________________________
    Джек, признайтесь, Вы провели хотя бы одно занятие в школе? В вузе?
    Признаюсь, нет. И ?


    № 2519   02-04-2007 15:19 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2516« (Илья Ермаков)
    ___________________________
    Дело привычки... Я честно признаюсь, что даже с объяснениями, даже после чтения Душкина, я тяжело воспринимаю код на Хаскелле. Приходится как бы удерживать в голове сразу множество граней-соотношений.
    Да вам просто приходится читать на иностранном языке. Вот и все. Вы совершенно правы - дело привычки.
    Чтением книг без практики не научишься ни борьбе, ни игре на пианино, ни конечно же программированию.
    Лечится участием в проекте среднего размера. Через пару недель будете просто "летать" над кодом :))

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


    № 2518   02-04-2007 15:17 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2509« (Jack Of Shadows)
    ___________________________


    ФЯ именно в обучении дают преимущество. В том плане что прививают грамотный подход НЕЗАВИСИМО от размера задачи. Прививают ПРИВЫЧКУ к декомпозиции, модуляризации, упрятыванию всего лишнего внутрь, взаимодействия через жесткие и скупые интерфейсы функций (входные параметры, выходные значения)


    Джек, признайтесь, Вы провели хотя бы одно занятие в школе? В вузе?


    № 2517   02-04-2007 14:22 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2513« (Владимир Лось)
    ___________________________
    Я представляю собой труп фортера-любителя (могилка здесь: http://www.forth.org.ru/~belugin/ приходите и положите цветы).

    Фортом начал заниматься в школе (учитель информатики был любителем этого языка) продолжил дома на Вектор-06ц.

    Тогда можно было сделать объектно-ориентированный язык из форта на 32к ОЗУ.

    Но сейчас это просто не нужно.

    Спасибо форту за то, что научил меня готовить равиоли ( http://c2.com/cgi/wiki?RavioliCode ) и за понимание того, как устроены машины


    № 2516   02-04-2007 14:15 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2514« (Jack Of Shadows)
    ___________________________

    Ответ на »сообщение 2512« (Jack Of Shadows)
    ___________________________
    В отличии от КП, код на хаскеле читается практически как постановка задачи.

    Дело привычки... Я честно признаюсь, что даже с объяснениями, даже после чтения Душкина, я тяжело воспринимаю код на Хаскелле. Приходится как бы удерживать в голове сразу множество граней-соотношений. Т.е., образно говоря, код на ФП для меня - это как одним взглядом представить себе куб в шестимерном пространстве, а код на ИП - неспешное и кропотливое построение многих проекций на двумерную плоскость. Подход муравья, проползшего по всем граням и пошагово выстроившего общее представление.

    Между прочим, такое "приземление", работа на уровне большей детализации может также трактоваться как абстрагирование. Абстрагирование от сложности нотации/инструмента. Потому что большая "содержательность" конструкций инструмента ведет не только к сокращению кода, она ведет к усложнению возможных отношений между "кирпичиками", в случае чрезмерно навороченных языков - к "комбинаторному взрыву" таких возможностей, и как следствие - к тому, что инструмент выходит из под умственного контроля, удержать в голове все "встроенные" в него отношения становится тяжело.


    № 2515   02-04-2007 13:51 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2513« (Владимир Лось)
    ___________________________
    А фортеры кстати если и заглянут, будут на стороне императивщиков.
    У них явное манипулирование состоянием (стеком) В КАЖДОЙ строчке, и не только строчке но практически в каждом слове программы :))
    Они в этом плане святее папы римского, то есть императивнее даже императивщиков :))
    Я не НАСТОЛЬКО умен, чтобы в такие игры играть. Лазание по стеку - не для меня.
    Да и в общем как показывает судьба фортовских языков, не для подавляющего большинства людей.

    Кстати если хотите пообщаться с фортовцами, то есть такая известная линость как Слава Пестов, автор весьма популярного программистского редактора Jedit, а также создатель языка Factor
    http://factorcode.org/


    № 2514   02-04-2007 13:44 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2512« (Jack Of Shadows)
    ___________________________
    Да забыл, вторая проблема решения на КП (она тоже была озвучена GeniPro ранее). Запутанность решения.
    Код write-only тяжело читается, тяжело понимается.
    То есть каждая отдельная строчка вроде понятна. А вместе - вермишель какой то. Особенно места с вложенными двойными и тройными (!!!) циклами.

    В отличии от КП, код на хаскеле читается практически как постановка задачи.


    № 2513   02-04-2007 13:41 Ответить на это сообщение Ответить на это сообщение с цитированием
    Я вот всё думаю, и как это сюда ещё фортер какой не заглянул? :о)
    Вроде по теории вероятностей уже давно пора... Или перевелись уже все? Исчезли, как класс...
    Они бы быстро всем растолковали что - к чему... ("крылья-крылья!... - НОГИ!") :о)


    <<<... | 2532—2523 | 2522—2513 | 2512—2503 | ...>>>
    Всего сообщений в теме: 5502; страниц: 551; текущая страница: 299


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

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

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

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

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

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