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

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

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


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

Архив

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


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

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

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

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

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

 
   
С Л С

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

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

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

Квинтана

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

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

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

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

 
  
АРХИВЫ

 
 

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

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

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

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

 Jack Of Shadows

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

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

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


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

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

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


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

  • <<<... | 1242—1233 | 1232—1223 | 1222—1213 | ...>>>
    Всего сообщений в теме: 5502; страниц: 551; текущая страница: 428


    № 1232   17-09-2006 11:48 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1230« (Владимир Лось)
    ___________________________
    Чем больше программа, тем больше в ней ошибок. И если на более высокоуровневом языке программа занимает меньшееек оличество строк, то и ошибок в ней будет меньше. Что же касается 1.7 миллионов строк на Erlang, то это гигантский объем (ядро Linux - 2.5 млн.), что учитывая характер программы (идентификация, контроль и дистрибуция трафика в интернете) позволяет сделать предположение, что большая часть ее - это перечень прецедентов, т.е. своеобразная БД.

    На Си++ по прежнему будет писаться подавляющее большинство проектов. Интересно, а на основании чего вы пришли к такому выводу?

    Желание приблизить (упростить) до уровня "обывателя от технических НАУК" математическую дисциплину, приводить к куче компромисов. С точки зрения "высоколобых" эти компромисы - вынужденная мера. С точки зрения "паренька от программистской сохи", во всю мощь своей рабоче-крестьянской глотки кричащего на всех форумах о необходимости иметь "удобный гибкий язык, в котором есть куча средств", - эти компромисы - неотъемлемая часть "любого нормального ЯП". А почему бы этим таинственным яйцеголовым не создать математически дисциплинированный и бескомпромиссный язык, дабы отсечь, как вы говорите, "рабоче-крестьянских пареньков", т.е. избавиться от низкооплачеваемых конкурентов и пребывая в счастливом осознании собственной исключительности создавать "божественные" программы?

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


    № 1231   17-09-2006 11:35 Ответить на это сообщение Ответить на это сообщение с цитированием
    во всю мощь своей рабоче-крестьянской глотки кричащего

    Ого! Форум поднялся до классовой борьбы! На Зимний (на Смольный)!

    Всё проще - Вагиф тут тренируется в обосновании перехода на LispWorks перед работодателями и хочет раскрутить их на AllegroCL :) А вы тут парадигмы философии программирования рассусоливаете.
    Сообщение не подписано


    № 1230   17-09-2006 06:56 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1229« (Артем)
    ___________________________
    Ответ на »сообщение 1228« (Jack Of Shadows)
    ___________________________
    Скорее всего большая часть из этих 1.7 миллиона все-таки является базой фактов со слабой связностью. Может, я не прав, но у меня есть опыт работы с Prolog. Там часто основная часть - это своеобразный гибрид программы и базы данных, состоящей или из элементарных фактов, или из простых правил.

    Скорее всего, Вы не правы.

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

    На Си++ по прежнему будет писаться подавляющее большинство проектов. И негде, кроме, как в этих проектах не будет такого бардака.

    Желание приблизить (упростить) до уровня "обывателя от технических НАУК" математическую дисциплину, приводить к куче компромисов. С точки зрения "высоколобых" эти компромисы - вынужденная мера. С точки зрения "паренька от программистской сохи", во всю мощь своей рабоче-крестьянской глотки кричащего на всех форумах о необходимости иметь "удобный гибкий язык, в котором есть куча средств", - эти компромисы - неотъемлемая часть "любого нормального ЯП". То, что это протсо "интеллектуальные костыли", выданные "высоколобыми" "паренькам", последние или не понимают или понимают, но бояться признаться...

    Уж лучше, в очередной раз, завести зурну о количестве скобок в языке...


    № 1229   17-09-2006 02:37 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1228« (Jack Of Shadows)
    ___________________________
    Скорее всего большая часть из этих 1.7 миллиона все-таки является базой фактов со слабой связностью. Может, я не прав, но у меня есть опыт работы с Prolog. Там часто основная часть - это своеобразный гибрид программы и базы данных, состоящей или из элементарных фактов, или из простых правил.


    № 1228   16-09-2006 18:38 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1227« (Артем)
    ___________________________
    Вы видели эти 1.7 миллиона строк кода от нескольких ребят? Это ж сколько времени им беднягам надо было писать? Может, посчитаем? 

    Можно и посчитать, если не путать Ericsson с BlueTail :)))


    № 1227   16-09-2006 16:38 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1223« (Jack Of Shadows)
    ___________________________
    Вы видели эти 1.7 миллиона строк кода от нескольких ребят? Это ж сколько времени им беднягам надо было писать? Может, посчитаем?

    В Prolog тоже можно нагенерить базу фактов размером в пару миллионов строк. Только все эти строки не будут полноценной программой.


    № 1226   16-09-2006 11:53 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1224« (info21)
    ___________________________
    При локальных (в любом смысле) функциях, передаваемых куда-то в качестве параметров...

    Для чистых функций понятия локальный\глобальный теряют всякий смысл.
    Если результат функции зависит только от принимаемых агрументов и при этом исполнение функции не меняет состояния системы, то какая разница, локальная эта функция или глобальная ?


    № 1225   16-09-2006 11:23 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1220« (Артем)
    ___________________________

    беллетристика.

    Наконец-то найдено слово, за которое нельзя забанить!
    Артем, спасибо!


    № 1224   16-09-2006 11:15 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1216« (Jack Of Shadows)
    ___________________________

    Ответ на »сообщение 1212« (bb)
    ___________________________
    А вот чистый ФП как я уже говорил - дает гарантии что независимо от того кто пишет код, этот код будет отвечать определенным требованиям - абстракции и инкапсуляции.


    НЕ ДАЕТ.

    Дальше от железа -- не значит ближе к человеку, ни к проблемной области.

    Насчет инкапсуляции вообще -- как бы помягче выразиться, штоб не забанили? скажем так -- ерунда. При локальных (в любом смысле) функциях, передаваемых куда-то в качестве параметров...


    № 1223   16-09-2006 11:11 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1221« (Артем)
    ___________________________
    Пока же я выбираю такие средства, которые позволяют мне зарабатывать деньги,

    http://armstrongonsoftware.blogspot.com/2006/08/making-money-from-erlang.html

    В 1998 году несколько ребят из Erricson создали с нуля свою компанию Bluetail, написали на Erlang софт для идентификации, контроля и дистрибуции трафика в интернете.
    Через 2 годы их купила крупная компания за 152 миллиона долларов.
    Как вам 152 миллионов долларов за 2 года ? Позволяют ФЯ зарабатывать деньги ?

    По поводу насаждения минимальной дисциплины программирования.
    Эти мысли пришли мне в голову во время изучения книги Haskell The Craft of Functional Programming, которую я сейчас штудирую.
    Написание примеров из книги натолкнуло меня на мысль, что использовать процедурный стиль у меня не получилось бы при все моем желании. Нет операций присваивания, нет циклов. Ты просто вынужден разбивать логику программы на независимые друг от друга функции.



    Да если язык заточен на определенные проблемы (многопоточность, например, по нетребовательности к ресурсам там вообще уникальна), если один и тот же класс проблем воплощается на нем в меньшем количестве кода, чем в C++ (упомянем здесь и ~ одинаковую квалификацию программистов), то и ошибок там будет меньше.


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


    <<<... | 1242—1233 | 1232—1223 | 1222—1213 | ...>>>
    Всего сообщений в теме: 5502; страниц: 551; текущая страница: 428


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

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

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

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

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

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