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

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

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


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

Архив

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


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

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

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

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

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

 
   
С Л С

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

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

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

Квинтана

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

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

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

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

 
  
АРХИВЫ

 
 

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

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

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

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

 Jack Of Shadows

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

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

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


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

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

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


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

  • <<<... | 822—813 | 812—803 | 802—793 | ...>>>
    Всего сообщений в теме: 5502; страниц: 551; текущая страница: 470


    № 812   18-08-2006 07:34 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 803« (Jack Of Shadows)
    ___________________________

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

    Невозмножно отрицать, что ФЯ сразу закладывает дозу сложности, даже для тривиальных задач.

    И все равно в итоге синтетические языки, когда для людей.
    Но вот железо -- оно императивное.


    № 811   18-08-2006 07:34 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 808« (Артем)
    ___________________________
    А вот, кстати об интуитивной понятности ООП.
    Для всех ли очевидно, что 5 умеет реагировать на сообщения и превращать себя в строку?


    № 810   18-08-2006 07:27 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 807« (Артем)
    ___________________________

    Так что давайте мерять крутость языка, по количеству ключевых слов :)))

    Боюсь, Лисп окажется круче в oo раз. :-)


    № 809   18-08-2006 06:21 Ответить на это сообщение Ответить на это сообщение с цитированием
    >>>Так споры не ведутся,SJ. Если бы рекурсия и итеративность были одним и тем
    >>>же, то не было бы надобности называть их разными именами. Другое дело, что
    >>>рекурсию можно преобразовать в итеративность, и наоборот.
    Вы, наверно, не мои посты читали :)))
    Я никогда не говорил, что это одно и то же. Я говорил только об их смысловой эквивалентности. А Вы опять за меня что-то свое придумали и тут же бросились опровергать.

    >>>Так и с типами вы уперлись. Вам уже говорили здесь, что есть реализации
    >>>ООП, где даже простые типы являются объектами. А вы, просто, или
    >>>невнимательно читаетет доводы оппонентов, или считаете, что они вас
    >>>обманывают.
    Опять Вы говорите о чем-то своем :)))
    Я не отрицаю, что есть типы данных, которые являются объектами. Я отрицаю, что не существует типов данных, которые объектами не являются. Вы на самом деле не понимаете разницы?!!!







    № 808   18-08-2006 05:52 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 805« (SJ)
    ___________________________
    SJ, не впадайте слишком в схоластику. Толку от этого никакого не будет.
    То, когда мы обсуждали рекурсивность или итеративность каких-то определений, вы сначала говорили, что такое-то определение рекурсивно; потом, когдамы настаивали на его итеративности, вы вдруг начинали говорить, что рекурсия и итеративность еквивалентны, т.е. по сути есть одно и тоже. Так споры не ведутся,SJ. Если бы рекурсия и итеративность были одним и тем же, то не было бы надобности называть их разными именами. Другое дело, что рекурсию можно преобразовать в итеративность, и наоборот.

    Так и с типами вы уперлись. Вам уже говорили здесь, что есть реализации ООП, где даже простые типы являются объектами. А вы, просто, или невнимательно читаетет доводы оппонентов, или считаете, что они вас обманывают. Привожу пример:


    int myVar = 5;
    String st = myVar.ToString();





    № 807   18-08-2006 05:49 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 806« (Max Belugin)
    ___________________________
    Хороший ответ JOS и отличный пример. :)))
    Так что давайте мерять крутость языка, по количеству ключевых слов :)))


    № 806   18-08-2006 05:13 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 803« (Jack Of Shadows)
    ___________________________
    http://www.joegrossberg.com/archives/001704.html


    № 805   18-08-2006 04:20 Ответить на это сообщение Ответить на это сообщение с цитированием
    for hugi
    А если без юмора, то доказать мою простую "теорему" можно очень просто, почти как в геометрии.
    Итак, мы должны доказать, что:
    Понятие "тип данных" не равносильно понятию "тип объекта".
    Для этого достаточно доказать, что понятие "данные" не равносильно понятию "объект" - другими словами, что могут быть данные, которые не являются объектами (в смысле ООП, конечно!) и могут быть объекты, которые не состоят только из данных.
    Докажем это.
    1) Данные, которые состоят только из значений и не поддерживают механизмы наследования, полиморфизма, инкапсуляции и другие характерные признаки ООП - это объекты в смысле ООП или нет. Конечно, нет.
    2) Могут ли существовать объекты, которые кроме данных содержат еще и алгоритмы (методы)? Могут. Их можно построить в любом ОО-языке.
    Таким образом, мы показали, что не все данные являются объектами и не все компоненты объекта являются данными.
    Следовательно, понятие "данные" не тождественно понятию "объект".
    Из этого следует, что понятие "тип данных" не тождественно понятию "тип объекта". Что и требовалось доказать.


    № 804   18-08-2006 02:14 Ответить на это сообщение Ответить на это сообщение с цитированием
    >>>Во-вторых, Вы приводите аксиомы, а не доказательства.
    Хорошо!
    Формулирую Вашу "теорему"
    "Тип данных и тип объекта - это равнозначные понятия (говоря языком логики, понятия одного объема). Другими словами, все, что является данными, является объектом, и все, что является объектом, является данными".
    Можете это доказать? Именно доказать, а не, как я, аксиомами, да аксиомами :) Только не забывайте, что данные в программировании появились лет на 30 раньше, чем ООП.

    >>>Мне, например, вовсе не очевидно, что "простая переменная величина" --
    >>>это не объект.
    Если следовать этому Вашему "открытию", то ООП появилось вместе с первыми языками программирования типа Фортрана или Алгола. Переменные величины в этих языках уже были. Но программисты даже не подозревали, что имеют дело с экземплярами классов :)



    № 803   17-08-2006 17:50 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 802« (info21)
    ___________________________

    JOS еще для себя это откроет, законы природы не отменяются.
    ФЯ -- излишняя сложность по ср. с Обероном.

    Про простоту ООП вы своим студентам на примерчиках типа TAnimal, TDog, TCat будете рассказывать.
    А я излишней сложности навидался за годы работы с ООП.
    Дурацкие примерчики из учебника ООП не отражают всех тех идиосинкразий, с которыми приходится сталкиваться, решая большие нетривиальные задачи.
    Не зря сами основатели ООП, теперь либо осторожно предупреждают против использования ОСНОВНОГО механихма ООП наследования, либо вообще уже в открытую ругают его и предлагают заменить интерфейсами, либо композицией.
    Расскажите ка им про "простоту" ООП.
    Заодно сравните количество зарезервированных слов и сематнических понятий в императивных ОО языках и в функциональных.

    Для примера в сложнейшем функциональном языке хаскеле всего 21 зарезервированное слово.
    В java 50. А в обероне сколько ?


    <<<... | 822—813 | 812—803 | 802—793 | ...>>>
    Всего сообщений в теме: 5502; страниц: 551; текущая страница: 470


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

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

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

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

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

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