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

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

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


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

Архив

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


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

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

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

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

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

 
   
С Л С

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

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

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

Квинтана

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

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

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

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

 
  
АРХИВЫ

 
 

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

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

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

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

 Jack Of Shadows

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

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

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


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

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

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


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

  • <<<... | 2222—2213 | 2212—2203 | 2202—2193 | ...>>>
    Всего сообщений в теме: 5502; страниц: 551; текущая страница: 330


    № 2212   24-03-2007 17:40 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2211« (Geniepro)
    ___________________________

    Ответ на »сообщение 2206« (AVC)
    ___________________________
    Надеюсь, Илья Ермаков распишет так же подробно матричные-множественные алгоритмы из своей программы на КП и укажет, какие у них преимущества... ;о)

    А что там расписывать?? Решение собственно задачи - это строк 50 кода, между прочим - практически "функционально чистого".
    Громотуха начинается с вводом/разбором строк - по уже обсуждавшимся причинам (нужна подходящая библиотека обработки строк и т.п.)


    № 2211   24-03-2007 17:37 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2206« (AVC)
    ___________________________

    Легче читать нормальный текст, чем криптограмму, даже короткую.

    Без привычки поэму читать тоже труднее, чем прозу.
    Однако вскоре понимаешь, что поэмы красивее тяжеловесных романов.

    Кстати, о криптограммах. :о))
    Почитайте, если найдёте время, мою статью с расписанной по пунктам программой - решением задачки с ACM ICPC 2007.
    Не знаю, почему Вы так не любите Хаскелл, но надеюсь, что Ваше мнение о нём изменится...

    Надеюсь, Илья Ермаков распишет так же подробно матричные-множественные алгоритмы из своей программы на КП и укажет, какие у них преимущества... ;о)


    № 2210   24-03-2007 16:25 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2204« (Max Belugin)
    ___________________________

    Ответ на »сообщение 2198« (Илья Ермаков)
    ___________________________
    >>>Смолтокисты, переходящие в Обероны, чувствуют себя как дома

    Это фигура речи или вы наблюдали хотя бы одного такого смолтокиста?

    http://forum.oberoncore.ru/viewtopic.php?t=401


    № 2209   24-03-2007 16:12 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2190« (Булат Зиганшин)
    ___________________________

    идея построения софта из отдельных компонентов витает в воздухе с 80-х годов - next+objc

    Идея построения ПО из отдельных компонентов была высказана Дугом Макилроем (Doug McIlroy). Он довольно знаковая фигура: автор и исполнитель идеи программных магистралей (pipeline) в UNIX и принципа фильтров -- элементарной композиции процессов через вход-выход (выход одного является входом другого), то бишь конвейер, очень близкий к композиции функций в ФП. В эпоху зарождения UNIX он возглавлял в AT&T Bell Labs тот самый департамент (Computing Techniques Research Department), где трудились Кен Томпсон и Деннис Ритчи. Известен и по реализации многих утилит в UNIX.

    Так вот, Макилрой, выступая на конференции NATO по программной инженерии в Гармиш-Партенкирхене (Германия) в октябре 1968 г., предложил в целях индустриализации неиндустриализированного производства программного обеспечения идею библиотеки оттестированных и хорошо отдокументированных компонентов. Его выступление называлось "Mass Produced Software Components". В нем же он выдвинул идею фабрики компонентов (components factory). А потом свою идею компонентов в первом приближении сам же успешно воплотил в утилитах-фильтрах UNIX.

    Небольшая выдержка из его выступления: I would like to see components become a dignified branch of software engineering. I would like to see standard catalogues of routines, classified by precision, robustness, time-space performance, size limits, and binding time of parameters. I would like to apply routines in the catalogue to any one of a large class of often quite different machines, without too much pain.

    Интересна и реакция из зала на это выступление со стороны Петера Наура, сразу разглядевшего важные последствия ценной идеи: What I like about this is the stress on basic building principles, and on the fact that big systems are made from smaller components. This has a strong bearing on education. What we want in education, particularly at the more elementary level, is to start indoctrinating the knowledge of the components of our systems. A comparison with our hardware colleagues is relevant. Why are they so much more successful than we are? I believe that one strong reason is that there is a well established field of electronic engineering, that the young people start learning about Ohm’s Law at the age of fourteen or thereabouts, and that resistors and the like are known components with characteristics which have been expounded at length at the early level of education. The component principles of our systems must be sorted out in such a form that they can be put into elementary education."

    Спустя 20 лет идеи Макилроя в контексте реплики Наура нашли свое воплощение в виртовской Oberon System.

    P.S. Полный текст исторического доклада Макилроя (и другие не менее интересные выступления) можно найти в сборнике конференции: http://www.europrog.ru/book/nato1968e.pdf


    № 2208   24-03-2007 16:07 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2202« (Булат Зиганшин)
    ___________________________

    >>>я ниже писал - передавать целиком состояние мира в виде структуры.

    Очень интересно.
    Т.е. по всей программе "разгуливает" структура неизвестного размера (да и неясного содержания), а учитывая строгости ФП -- скорее всего, несколько ее копий.
    Если это то, что я подумал (я мог понять неверно), то у нас с Вами разные представления о модульности (в данном контексте -- разбиении программы на части с минимизацией связей (coupling) между частями).
     AVC


    № 2207   24-03-2007 15:56 Ответить на это сообщение Ответить на это сообщение с цитированием
    Смолтокисты, переходящие в Обероны, чувствуют себя как дома
    На самом деле, неужели такие есть?
     hugi


    № 2206   24-03-2007 15:37 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2205« (Geniepro)
    ___________________________

    >>>У наших оберонщиков такое мнение - чем больше код программы, тем легче его читать... :о))

    Легче читать нормальный текст, чем криптограмму, даже короткую.
     AVC


    № 2205   24-03-2007 15:12 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2202« (Булат Зиганшин)
    ___________________________

    что касается мерянья - то интересно посмотреть, *почему* программа маленькая и чтя в этом заслуга - языка, библиотек, rts, или может даже программиста :)))

    У наших оберонщиков такое мнение - чем больше код программы, тем легче его читать... :о))


    № 2204   24-03-2007 14:21 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2198« (Илья Ермаков)
    ___________________________
    >>>Смолтокисты, переходящие в Обероны, чувствуют себя как дома

    Это фигура речи или вы наблюдали хотя бы одного такого смолтокиста?


    № 2203   24-03-2007 10:53 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 2200« (Сергей Перовский)
    ___________________________

    Ответ на »сообщение 2193« (Илья Ермаков)
    ___________________________
    >>>При показе некоторых фокусов в Оберонах (например, работа в BlackBox с гуем в стиле составных документов) у привыкших к традиционным средам программистов глаза медленно на лоб лезут :-)
    Вы имеете в виду каких программистов? Знающих пол-языка программирования?
    Так их удивить не штука.
    Для меня все это именно фокусы: вполне симпатичные но совершенно не обязательные возможности. Тут я согласен с Булатом Зиганшиным: для 365*24 это необходимость, в остальных случаях - приятные мелочи.


    динамически-визуальных сред я до сих пор не видел (позор!), а вот от delphi обалдел когда увидел, как в среде мышкой меняют размер одного окна, и тут же меняется размер другого, от него отнаследованного :)  это назыается как-то типа two-fold visual programming

    что касается компонентности, то я в том обероновском треде привёл примеры программ, использующих её - от фара до винампа. единственное, с чем я не согласен - что это является исключительным свойством оберона как языка. думаю, что остальные популярные языки могут обеспечить то же самое - вопрос только в инструментарии. для хаскел к примеру есть библиотека hs-plugins, правда я совершенно не в курсе её фич


    <<<... | 2222—2213 | 2212—2203 | 2202—2193 | ...>>>
    Всего сообщений в теме: 5502; страниц: 551; текущая страница: 330


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

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

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

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

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

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