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

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

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


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

Архив

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


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

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

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

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

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

 
   
С Л С

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

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

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

Квинтана

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

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

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

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

 
  
АРХИВЫ

 
 

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

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

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

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

 Jack Of Shadows

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

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

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


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

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

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


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

  • <<<... | 1172—1163 | 1162—1153 | 1152—1143 | ...>>>
    Всего сообщений в теме: 5502; страниц: 551; текущая страница: 435


    № 1162   07-09-2006 05:26 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1160« (bb)
    ___________________________
    Ну не стоит так бояться. Не самая агрессивно-одиозная группировка. :)
    А какая самая агрессивно-одиозная?  0:-)


    № 1161   07-09-2006 05:06 Ответить на это сообщение Ответить на это сообщение с цитированием
    чтобы создать качественный синтаксис нужна маленькая команда
    скорее какой-нибудь синтаксис

    для создания стандартных библиотек необходима крупная организация
    скорее нужен инструмент для многих и который не допускает вариативности результатов
    словарь не кирилл и мефодий придумали зпт а пользователи языка
    Сообщение не подписано


    № 1160   07-09-2006 04:35 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1158« (Артем)
    ___________________________

    P.S. Боже, кажется я открыл ящик Пандоры, о оттуда сейчас вылетит разъяренный рой оберонистов и покусает меня! Я НЕ ПРОТИВ ОБЕРОНА! ПРОСТО У НАС ДЕМОКРАТИЯ, КОТОРАЯ ПОДРАЗУМЕВАЕТ ЧТО И ЕГО МОЖНО ПОКРИТИКОВАТЬ!
    Ну не стоит так бояться. Не самая агрессивно-одиозная группировка. :)


    Средство средству - рознь :) Если под чистотой понимать то, что вместо классов мы употребляем записи, а наследование называем расширением, то не есть ли это очередной экзотический зоопарк, идущий вразрез с общепринятой терминологией? :)

    Это не чистота языка (в данном случае Оберона), а его "самость". Язык хочет отличаться от других (по крайней мере, в том, что закладывал его автор). Что в этом плохого? И если на нем можно имитировать ООП, то это не означает, что средства имитации должны обязательно называться так, как это принято в той парадигме, которая считается самой что ни на есть единственно-правильной на всем белом свете. Они в Обероне предназначены не только и не столько для ООП.

    Если вы сегодня движетесь в авангарде (ООП), то есть большая вероятность, что через n-е количество лет мода и взгляды существенно поменяются (люди накушаются и поймут, что к чему), и раздастся команда "Кругом!". Те языки, которые продвигают и отстаивают свою самость, имеют шансы на сохранение. Остальным уготована участь стать пациентами очередного знатока пластической хирургии.


    № 1159   07-09-2006 04:26 Ответить на это сообщение Ответить на это сообщение с цитированием
    Представьте, что мы разрабатываем не язык программирования, а обычный язык человеческого общения (такие случаи были). Нам придется придумать синтаксис  языка и словарь. Посмотрите на размеры учебника любого естественного языка и соответствующего словаря.
    К сожалению, разработчики языков программирования всегда уделяли много внимания синтаксису и ограничивались минимальным словарем: библиотеки пусть пишут пользователи по мере необходимости.
    Это не чья-то злая воля: чтобы создать качественный синтаксис нужна маленькая команда (или вообще один человек), иначе не добиться идеологической цельности; а для создания стандартных библиотек необходима крупная организация, которая должна провести анализ возможных областей применимости языка, выделить часто встречающиеся алгоритмы и структуры данных, спроектировать уровни библиотек или иерархии классов и создать огромный по объему стандарт. Тут не отделаться энтузиазмом - требуются серьезные материальные затраты.


    № 1158   07-09-2006 04:21 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1157« (bb)
    ___________________________
    "Чистота" языка - это средство борьбы против зоопарков, которые так многим не нравятся. Порядок против анархии. Средство средству - рознь :) Если под чистотой понимать то, что вместо классов мы употребляем записи, а наследование называем расширением, то не есть ли это очередной экзотический зоопарк, идущий вразрез с общепринятой терминологией? :)

    P.S. Боже, кажется я открыл ящик Пандоры, о оттуда сейчас вылетит разъяренный рой оберонистов и покусает меня! Я НЕ ПРОТИВ ОБЕРОНА! ПРОСТО У НАС ДЕМОКРАТИЯ, КОТОРАЯ ПОДРАЗУМЕВАЕТ ЧТО И ЕГО МОЖНО ПОКРИТИКОВАТЬ!


    № 1157   07-09-2006 04:04 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1154« (Артем)
    ___________________________

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

    Так может быть стоит фиксировать синтаксис языка, его семантику и прагматику, включая в последнюю базовые (стандартные) библиотеки и требования к эталонной реализации? Интересно, а есть ли в мире языки, отличные от Ада, где эти вопросы проработаны столь же тщательно и скрупулезно?

    Главное, чтобы приверженцы какого-то одного течения с пеной у рта не доказывали никчемность всех осальных, что, извините, наблюдается и на этом сайте у некоторых любителей "чистоты" Оберона или могущества Лиспа.

    "Чистота" языка - это средство борьбы против зоопарков, которые так многим не нравятся. Порядок против анархии.



    № 1156   07-09-2006 04:01 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ (Артем) и (Lisp Hobbyist)
    ___________________________
    На счёт "фич, прибитыми гвоздями".
    Они абсолютно необходимы в языке.
    Абсолютно гибкий Форт имеет количество реализации ООП больше, чем наверное отдельных ООП-языков. И каждая имеет свои "вкусности"... Стандартообразующий органы "зевнули" в своё время и, в результате, удивительный язык на задворках отрасли...
    До последнего времени Страуструп всчески отбрыкивался от рассмотрения введения в Си++ поддержки многозадачности(-поточности). В результате, все кому не лень, "присобачивают" к очередной выдающейся шаблонной библиотеке уродство в виде классов-обёрток над примитивами многозадачности ОСей... С этим другая проблема: наборы примитивов, вроде как наметили "приближаться" к некоему стандарту, но дело в том, что воплощённый в библиотеках уровень их представления совершенно не подходит к применению в моделях прикладников + неудовлетворяет всем требованиям безопасности.
    Совершенно другая ситуация складывается в случае, если в язык-таки были введены "рамочки". В конечном итоге, оказывается, что такие "ограничения" окупаются сторицей. В той же Аде, в результате введения прямо в язык и стандартизации средств многозадачности, получается совершенно "естественная" ситуация для моделирования предметных областей. Причём, со стандартной, описанной, реакцией и поведением типовых компонентов.

    Правда, есть ещё одна такая противная вещь, которую сейчас модно называть "человеческий фактор".
    Какой бы расчудесный инструмент не использовался (будь-то Си++, Эйффель, Ада или Оберон), всегда на пути его ПРАВИЛЬНО применения (от проектирования и до расстановки отступов в текстах исходников), будут стоять: неряшливость, лень, снобизм ("стажевый" и возрастной), тупость, зашкаливающее самомнение, нежелание учиться, безудержное folowing money, общее бескультурие, отсутствие стремления к созданию красивого кода, пренебрежение парадигмами и найденными техниками при создании ПО...


    № 1155   07-09-2006 03:56 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1153« (Lisp Hobbyist)
    ___________________________

    Так устроены Форт и Лисп (возможно, есть и другие языки такого типа, но я с ними не имел дела).

    Можно вспомнить, например, метаалгоритмический язык Рефал, созданный В.Ф.Турчиным в 1966 г.: http://www.refal.ru/intro-ref.htm , http://www.croco.net/croco/papers/stolyarov_2001_a.html

    Его относят к представителям ситуационного программирования с выделением анализа исходной структуры и синтеза результирующей структуры. Соответственно, в сфере интересов Рефала, который в своей основе близок нормальным алгоритмам Маркова, лежат вопросы трансформации программ и суперкомпиляции.


    № 1154   07-09-2006 03:27 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1153« (Lisp Hobbyist)
    ___________________________
    Сразу оговорюсь, что я не против третьего пути. Просто и у него есть свои недостатки.
    можно реализовать маленькое языковое ядро + средства расширения В этом случае мы превратим программистское сообщество в россыпь индивидуальных зоопарков, и не факт, что в каждом таком зоопарке будут жить прелестные и милые зверюшки. Да вы и сами оговорили этот момент, когда сказали, что самые нужные расширения требовалось все-таки зафиксировать из практических соображений . Кроме того, явно можно предполагать, что фичами прибитыми гвоздями к компилятору намертво пользоваться удобнее, чем реализованными, например, макросредствами.
    Вообще, конечно, это дело индивидуального вкуса. По-моему, очень хорошо, что существуют различные модели. Они конкурируют друг с другом и взаимно обогащают. Главное, чтобы приверженцы какого-то одного течения с пеной у рта не доказывали никчемность всех осальных, что, извините, наблюдается и на этом сайте у некоторых любителей "чистоты" Оберона или могущества Лиспа.
    И еще. Относительно посика идеала. У меня иногда создается впечатление, что многие программисты ждут появления языка, которому можно сказать пускай вот от нашего дворца да до вашего крыльца мост будет хрустальной. и идти спать, а "мост" построится сам собой.


    № 1153   07-09-2006 02:28 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1152« (Geniepro)
    ___________________________

    У "богатого" языка есть свой, причём очень существенный обьективный недостаток - гораздо труднее реализовать для него надёжный, качественный транслятор, который к тому же генерировал бы быстрый код, что видно, например, на противостоянии Ада vs Модула/2-Оберон...

    ИМХО, есть и третий путь --- вместо того, чтобы устраивать религиозные войны на тему, какие фичи прибить гвоздями к компилятору намертво, а какие просто игнорировать (предоставив программисту самостоятельно искать им заменители), можно реализовать маленькое языковое ядро + средства расширения, которыми оно раскручивается. Так устроены Форт и Лисп (возможно, есть и другие языки такого типа, но я с ними не имел дела). Правда, при этом есть немалая вероятность наплодить зоопарк взаимно несовместимых базовых библиотек (например, альтернативных реализаций ООП). Кстати, это одна из причин, почему стандарт ANSI CL такой большой --- самые нужные расширения требовалось все-таки зафиксировать из практических соображений.


    <<<... | 1172—1163 | 1162—1153 | 1152—1143 | ...>>>
    Всего сообщений в теме: 5502; страниц: 551; текущая страница: 435


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

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

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

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

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

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