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

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

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


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

Архив

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


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

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

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

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

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

 
   
С Л С

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

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

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

Квинтана

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

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

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

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

 
  
АРХИВЫ

 
 

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

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

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

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

 Jack Of Shadows

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

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

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


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

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

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


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

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


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

    А какая самая агрессивно-одиозная?  0:-)
    Если в шутку, то PHP, а если всерьез, то C++.


    № 1171   07-09-2006 07:28 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1167« (Сергей Перовский)
    ___________________________
    Инструмент  который не допускает вариативности результатов - это автомат, работающий без вмешательства человека. А если это все таки инструмент, то зоопарк результатов обеспечен.
    Наверное человек скорее всего имел в виду количество вариантов для достижения цели.

    >>>словарь не кирилл и мефодий придумали зпт а пользователи языка
    Словарь (да и синтаксис) славянских языков в основном сложился задолго до Кирилла.
    Посмотрите на рукотворные языки, такие как эсперанто или иврит. Если бы авторы ограничились синтаксисом и сотней слов, в надежде, что остальные слова появятся в процессе использования, мы бы имели сотни взаимно непонятных диалектов.
    С языками программирования так происходит постоянно.
    Да, но есть другая крайность. Раньше в русском было девять падежей и порядка 2000 (двух тысяч! - куда там аглицкому :о) ) глагольных форм. Ими и сейчас можно пользоваться, но в силу ряда исторических и социально-политико-демографических событий и процессов, произошло искусственное "сокращение" языка.
    А "зоопарк" в ЯП как раз и возникает, что разные производители имеют преобладание в разных отраслях и "приспосабливают" язык соответственно. Всем оно нужно? КТо-то из производителей "угадывает" (навроде Борланада) - просто в той доле рынка потребностей большая масса народу работает, а кто-то "пролетает"...


    № 1170   07-09-2006 07:23 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1156« (Владимир Лось)
    ___________________________


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


    "Удивительный язык" на задворках отрасли скорее всего из-за своей низкоуровневости, чем из-за отсутствия стандарта.


    № 1169   07-09-2006 07:18 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1167« (Сергей Перовский)
    ___________________________
    А если это все таки инструмент, то зоопарк результатов обеспечен. Тут мы подходим к такому тонкому понятию, как чувство меры. Зоопарк точному определению не поддается, это вопрос интуиции и опыта. :) Для кого-то ранообразие внутренних DSL вполне приемлемо, а для кого-то даже классы являются излишеством. :)


    № 1168   07-09-2006 07:11 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1166« (Владимир Лось)
    ___________________________
    а теперь бибизяне дали запал от водородной бомбы Ну назвать запалом от водородной бомбы функциональные языки трудно. Если бибизяна будет будет в них творить, то программа или просто не будет работать, или будет работать очень медленно. Вот C++ можно назвать таковым запалом. Поэтому одной из целей создания следующей генерации ООП языков, вроде Java и .Net-семейства, была минимизация негативных последствий неквалифицированного программирования. Я и сам стону, когда в C# приходится писать unmanaged code, но понимаю, для чего это все эти танцы с бубном были сделаны - для защиты от бибизян.
    Это хорошо если животное "допрёть", что дело "пахнет керосином" и вернётся в "родные места", а если "начнёт творить"? Тут тоже все далеко не так однозначно. Ведь даже квалифицированные программисты когда-то были, как вы говорите, "животными".  Зачем же отказывать кому-то в праве творить? :)  Другое дело, что чье-то творчество со временем улучшается, а чье-то - нет. Но тут ничего не поделаешь - закон природы. :)


    № 1167   07-09-2006 07:05 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1161« ()
    ___________________________
    >>>скорее нужен инструмент для многих и который не допускает вариативности результатов
    Инструмент  который не допускает вариативности результатов - это автомат, работающий без вмешательства человека. А если это все таки инструмент, то зоопарк результатов обеспечен.

    >>>словарь не кирилл и мефодий придумали зпт а пользователи языка
    Словарь (да и синтаксис) славянских языков в основном сложился задолго до Кирилла.
    Посмотрите на рукотворные языки, такие как эсперанто или иврит. Если бы авторы ограничились синтаксисом и сотней слов, в надежде, что остальные слова появятся в процессе использования, мы бы имели сотни взаимно непонятных диалектов.
    С языками программирования так происходит постоянно.


    № 1166   07-09-2006 06:46 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1164« (Артем)
    ___________________________
    А в Лиспе те же DSL выглядят настолько же ужасно, как и сам язык :) Впрочем, это тоже дело вкуса. Есть ведь люди, кому нравится такой синтаксис. :)
    В последние несколько лет начинаю склоняться ко мнению, что всё это не играет никакой роли. Тут и на Си(++)-то две трети народа, что говорит, что "работает на Си(++)", на самом деле и языка не знают, и программировать НЕ УМЕЮТ. А теперь представьте, что таким "спецам" в руки попадает Лисп или Форт... Это в "классических" языках, сами их ограничения (синтаксиса, идеологии, инструментария) служили "тормозом" для "разгула удалой и залихватской безграмотности", а теперь бибизяне дали запал от водородной бомбы... Последствия предугадать не трудно... Это хорошо если животное "допрёть", что дело "пахнет керосином" и вернётся в "родные места", а если "начнёт творить"? В жизни, конечно, всегда есть место подвигу, но лучше быть подальше от таких мест... :о)


    № 1165   07-09-2006 06:32 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1163« (Lisp Hobbyist)
    ___________________________
    Уважаемый Lisp Hobbyist!
    Скажите, в процентном отношении, сколько таких "надстройщиков" языка существует?
    И есть ли в конторах средства и время заниматься подобными вещами. Уверяю вас, что в тех местах, где на подобные занятия есть и время, и деньги (и программисты только этим и занимаются, получая при этом ДАЛЕКО не 100 доллярив), скорее всего, потребностей "остального мира", занимающегося той же тематикой, не знают. Действительно универсальных решений даже для "той же ниши" не существует. Как правило это внутрикорпоративные разработки. Правде не всегда те, кто пишет такие "библиотеки" даже отдают себе отчёт, что они пытаются "родить" DSL...

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


    № 1164   07-09-2006 06:31 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1163« (Lisp Hobbyist)
    ___________________________
    Гораздо интереснее, когда язык начинает расширяться конструкциями, специфичными для конкретных предметных областей, образуя тем самым Domain-Specific Language.
    Да мы с Jack of Shadows тут уже переломали копья на эту тему. Я бы, все-таки, предпочел более высокоуровневый и удобоваримый язык с макросами, такой как Nemerle, или систему подсоединения внешних DSL к тому же C#  :)  А в Лиспе те же DSL выглядят настолько же ужасно, как и сам язык :) Впрочем, это тоже дело вкуса. Есть ведь люди, кому нравится такой синтаксис. :)



    № 1163   07-09-2006 05:51 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1155« (bb)
    ___________________________

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

    Можно вспомнить, например, метаалгоритмический язык Рефал, созданный В.Ф.Турчиным в 1966


    Я имел в виду другое --- возможность легкого доопределения языка необходимыми конструкциями, которые естественно вольются в языковое ядро и по удобству своего применения не будут отличаться от встроенных. Например, можно представить себе Лисп-ядро, в котором имеется примитив ветвления и безусловного перехода, но нет циклов. Поверх такого ядра с помощью макросов можно надстроить весь спектр циклических конструкций, определенных ANSI CL (т.е. DO, DOLIST, DOTIMES, LOOP и т.п.), а если кому-то нужна еще какая-то экзотика, то добавить ее --- задача достаточно легкая. Как говорится, чтобы никто не ушел обиженным. Но такая раскрутка системы --- только начальный уровень, на котором оценить ее должным образом могут только компиляторостроители (остальным и не надо --- с замечанием о минусах "зоопарка" базовых примитивов я согласен). Гораздо интереснее, когда язык начинает расширяться конструкциями, специфичными для конкретных предметных областей, образуя тем самым Domain-Specific Language. Здесь уже последствия "зоопарка" куда менее страшны, так как предметные области достаточно высокого уровня уже достаточно различны и интеграция на этом уровне нужна куда реже. Например, над Лиспом можно надстроить язык описания прошивок ПЛМ. С одной стороны, такие описания можно "скормить" подсистеме генерации файлов для программатора, а с другой --- использовать в программе-симуляторе. Причем в этом языке, в отличие от того же Verilog, будет доступна вся мощь лисповских макросов, которые, например, могут пригодиться для параметризации компонент вместо внешних программ-генераторов.

    В Рефале аналогов этому я не видел.


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


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

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

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

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

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

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