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

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

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


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

Архив

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


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

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

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

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

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

 
   
С Л С

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

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

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

Квинтана

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

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

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

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

 
  
АРХИВЫ

 
 

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

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

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

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

 Jack Of Shadows

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

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

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


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

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

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


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

  • <<<... | 1482—1473 | 1472—1463 | 1462—1453 | ...>>>
    Всего сообщений в теме: 5502; страниц: 551; текущая страница: 404


    № 1472   08-11-2006 06:11 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1471« (Pointer To)
    ___________________________

    Вполне обычный и естественный процесс эволюции человеческого сознания: от примитивного понятия конкретного числа к понятию абстрактного типа данных с абстрактными методами.

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

    "Где начало того конца, которым оканчивается начало?" - вопрошал Козьма Петрович Прутков, появившийся на небосклоне русской литературы примерно за сто лет до Лиспа. В самом деле, куда мы идем? Эволюционная спираль сделала очередной виток...


    № 1471   08-11-2006 05:52 Ответить на это сообщение Ответить на это сообщение с цитированием
    >>>Всему - своё время...

    Я тоже хочу немного защитить ООП :)
    ООП можно хаять только, если понимать его в узком примитивном смысле. А если воспринимать ООП, как естественный ход эволюции программирования по пути "от конкретного - к абстрактному", то это значительный этап на этом пути, который будет развиваться дальше.
    Что, по сути, такое классы и объекты ? Естественный результат в процессе развития метода абстракции в области программирования:
    1) Эволюция абстракции данных:
    Значение данных->
    Тип данных->
    Абстрактный тип данных(АТД)->
    Класс
    2) Эволюция абстракции опреаций:
    Мономорфная (обычная) процедура->
    Полиморфная процедура->
    Абстрактная процедура
    Вполне обычный и естественный процесс эволюции человеческого сознания: от примитивного понятия конкретного числа к понятию абстрактного типа данных с абстрактными методами. На данном этапе результат этой эволюции называется ООП. Хаять этот результат можно, но зачем? С таким же успехом можно хаять понятие "переменной" и "процедуры", которые благополучно пережили уже, наверно, 40 лет эволюции и ничего. До сих пор пользуемся...


    № 1470   Удалено модератором


    № 1469   08-11-2006 05:21 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1459« (Jack Of Shadows)
    ___________________________
    ООП я хаял и хаять буду. ООП это не универсальная парадигма программирования в отличие от ФЯ / ИЯ - а частный инструмент, который по стечению обстоятельств на какое то (надеюсь короткое) время стал доминирующим.
    Не ну именно хаять незачем.
    Это как этапы: сказки -> ­догадки -> примитивное использование наблюдаемых закономерностей3 > ньютоновская физика -> СТО -> ...
    Для каждого уровня понимания и представлений о мире подойдёт и будет "законченно-полезной" своя ниша. Просто сейчас основная масса задач решается с помощью процедурного и ООП - подходов. Это как в артиллерии: в средние века таблицы углов для стрельбы из пушек были достижением, ценились и составлялись практически на каждое орудие индивидуально. Там и не считалось практически ничего. А вот уже во второй половине 19 века - математика в полный рост. Особенно когда выяснилось, что в южном полушарии снаряды почему-то летают "чуть-чуть" не так, как в родном Альбионе... :о)
    Всему - своё время...


    № 1468   08-11-2006 05:07 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1464« (Антон Григорьев)
    ___________________________
    Я понимаю, что это моё сообщение Вы тоже удалите, но не кажется ли эта мера Вам слишком, СЛИШКОМ жестокой?!
    За что?!
     hugi


    № 1467   08-11-2006 05:03 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1461« (Jack Of Shadows)
    ___________________________
    >>>Без императивности то никуда. Но лучше эту императивность свести к минимуму
    К какому минимуму?
    Собственно это из Вас и тянут уже тысячу постов.
    Где Вы видите эту границу?


    № 1466   08-11-2006 04:56 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1448« (Jack Of Shadows)
    ___________________________
    Совершенно верно. Есть такое. Конечно и Кени Тилтон стал сталкиваться с подобными роблемами, когда реализовал идею, и его библиотеку начали применать многие другие люди. Она развивается, на месте не стоит.
    Эта проблема привела к тому что он ввел в cells новое поняти - синапсы как он их называет.
    Если у вас ситуация когда какое то значение очень быстро меняется, вы вместо непосредственной связи между двумя значениями, ставите туда специальный обьект синапс, в котором можно запоминать предыдущие значения переменной, и принимать решение стоит ли дергать связь и оповещать обьект.

    А разница между этим подходом и подходом, когда объект, в котором можно запоминать предыдущие значения переменной, и принимать решение стоит ли дергать связь , будет сам устанавливать значение чего ему там надо, останется???
    Если мне не изменяет память, -- а я вполне могу сейчас серьёзно ошибиться, -- в Smalltalk существует паттерн Value Holder, делающий что-то наподобие. Ещё раз повторю, я могу ошибаться, и прошу знающих людей поправить меня в таком случае.
     hugi


    № 1465   08-11-2006 04:48 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1454« (Jack Of Shadows)
    ___________________________
    Например

    var
      x, y : integer

    x := ?f: y+5;

    После чего меняете значение y и наблюдаете как автоматом меняется значение x.
    Вот такой вот своеобразный OnChange навешенный на простенький integer.

    Вопрос. КАК cells узнает об изменении значения y?
     hugi


    № 1464   08-11-2006 04:41 Ответить на это сообщение Ответить на это сообщение с цитированием
    сообщение от модератора

    Ответ на »сообщение 1463« (Артем)
    ___________________________

    Ответ на »сообщение 1461« (Jack Of Shadows)
    ___________________________
    Блин, пойду я лучше плюшками баловаться. <...>
    P.S. Я улетаю, но обещаю вернуться. Когда будет настроение.


    Лучше не возвращайтесь. Все ваши сообщения я буду удалять - можете считать, что заработали здесь пожизненный бан.


    № 1463   Удалено модератором


    <<<... | 1482—1473 | 1472—1463 | 1462—1453 | ...>>>
    Всего сообщений в теме: 5502; страниц: 551; текущая страница: 404


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

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

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

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

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

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