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

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

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


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

Архив

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


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

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

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

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

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

 
   
С Л С

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

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

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

Квинтана

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

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

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

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

 
  
АРХИВЫ

 
 

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

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

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

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

 Jack Of Shadows

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

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

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


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

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

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


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

  • <<<... | 1152—1143 | 1142—1133 | 1132—1123 | ...>>>
    Всего сообщений в теме: 5502; страниц: 551; текущая страница: 437


    № 1142   05-09-2006 04:24 Ответить на это сообщение Ответить на это сообщение с цитированием
    Geniepro,
    А почему  на F# рекурсивные вызовы, а на а С# -простой цикл? Надо уравнять.


      static int f2 (int x, int y, int z)
      {
        if (y+1 == x)  return z; else return f2(x,y+1,z+1);
      }


      static int f (int x, int y, int z)
      {
        if (x == 1)  return 0; else return f2(x,y,z);
      }

      static int dec(int n)
      {
        return f(n,0,0);
      }


    А теперь можно сравнивать  :-)



    № 1141   05-09-2006 04:22 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1139« (bb)
    ___________________________
    Кстати, если вы предполагаете, что если я проведу на ОДНОМ компьютере сравнение скоростей F# и C# и окажется, что C#-версия на пару процентов быстрее, потом перенесу екзешники на другой компьютер с другой минорной версией ОС и там окажется, что F# быстрее, то, смею вас заверить, вы ошибаетесь. Качественный результат не изменится. Могут лишь измениться абсолютные величины временных значений. Иначе был бы полный релятивизм и тесты проводить было бы незачем.


    № 1140   05-09-2006 04:11 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1139« (bb)
    ___________________________
    Уважаемый, по определению язык программирования есть набор правил, включающий описание/спецификацию синтаксиса, семантики и прагматики соответствующей абстракции. А вот система программирования (не один лишь компилятор) конкретного языка -- реализация данной абстракции.

    В свою очередь хочу вам сообщить, что особенности абстракции влекут за собой особенности реализации. И абстракция в случае языка программирования – это не отвлеченная математическая абстракция, – она изначально предполагает последующую реализацию.


    я (уж ghjcnbnt педанта) нигде не видел, чтобы в своих совместных с Вашим оппонентом тестах были зафиксированы условия его проведения, вплоть до конкретной сборки ОС (не только точности вплоть до минорной версии), ее конфигурации и идентичного (!) оборудования. Ну, если такие элементарные предпосылки кому-то не представляются очевидными, то спорить тут, действительно, трудно.

    Ну и конечно тесты, как я понимаю, не проводились по четко проработанной методике (и не один раз), не замерялись подобающим образом. А откуда вы знаете? Тесты лично мною проводились не один раз. Поэтому я и указывал тильду перед временными значениями.

    К поиску истины это, не в обиду Вам будет сказано, имеет отдаленное отношение. А какое отношение к истине имеет малосодержательное встревание в дискуссию в стиле «А чего это вы тут делаете? Туфтой занимаетесь?»


    № 1139   05-09-2006 03:51 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1138« (Артем)
    ___________________________

    Как надоели эти максималистские утверждения в подростковом стиле. "По определению"... Даже неохота спорить...

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

    Что касается самого комментария, то надо выражаться точнее (речь о том, кто сказал ту фразу, которую я процитировал). Один язык программирования не может быть быстрее другого. На этом продолжаю настаивать.

    Разные парадигмы программирования и разные языки-представители этих парадигм (включая и гремучие смеси) могут подразумевать определенные особенности/сложности реализации на конкретных операционных/аппаратных платформах, затратные по объему памяти и быстродействию.

    На такой параметр как скорость выполнения программы влияют собственно особенности языка как такового и качество реализации. Что же касается довольно глупой фразы по определению, то, например, скриптовый динамический язык «по определению» не может быть быстрее, чем какой-нибудь  C, если, конечно, автор последнего не полный идиот.

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

    Спор идет о вреде тестового шапкозакидательства. Если вы не читали предысторию, то, естественно, вам непонятно, о чем идет речь.

    Представьте себе, внимательно читал. Но если продолжить эту тему, то я (уж ghjcnbnt педанта) нигде не видел, чтобы в своих совместных с Вашим оппонентом тестах были зафиксированы условия его проведения, вплоть до конкретной сборки ОС (не только точности вплоть до минорной версии), ее конфигурации и идентичного (!) оборудования.

    Ну и конечно тесты, как я понимаю, не проводились по четко проработанной методике (и не один раз), не замерялись подобающим образом. В таком случае само подобное тестирование, IMHO, имеет минимальную ценность и требуется для того, чтобы обосновать/продавить свою позицию в глазах общественности. Либо уязвить оппонента.

    К поиску истины это, не в обиду Вам будет сказано, имеет отдаленное отношение.


    № 1138   05-09-2006 03:29 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1136« (bb)
    ___________________________
    На такой параметр как скорость выполнения программы влияют собственно особенности языка как такового и качество реализации. Что же касается довольно глупой фразы по определению, то, например, скриптовый динамический язык «по определению» не может быть быстрее, чем какой-нибудь  C, если, конечно, автор последнего не полный идиот.
    Что же касается пассажей относительно плавания в операционной системе, библиотеках и аппаратной платформы, то здесь они вообще неуместны. Быстродействие языков сравнивается на одинаковой аппаратной платформе. А в данном случае еще и на одинаковой ОС, в общей среде исполнения .Net и при предположительно одинаковом качестве реализации.


    № 1137   05-09-2006 03:10 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1136« (bb)
    ___________________________
    Непонятно, о чем вообще спор. Спор идет о вреде тестового шапкозакидательства. Если вы не читали предысторию, то, естественно, вам непонятно, о чем идет речь.

    Один ЯЗЫК не может быть быстрее другого, не может по определению. Быстрее (эффективнее по скорости выполнения) может быть РЕАЛИЗАЦИЯ языка. Как надоели эти максималистские утверждения в подростковом стиле. "По определению"... Даже неохота спорить...


    № 1136   05-09-2006 02:58 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1135« (Артем)
    ___________________________

    Просто это говорит о том, что первый тест вы провели тяп-ляп и с воплями радости помчались сообщать нам, что ФЯ быстрее ИЯ ! :-) Как вам такое?

    Непонятно, о чем вообще спор. Один ЯЗЫК не может быть быстрее другого, не может по определению. Быстрее (эффективнее по скорости выполнения) может быть РЕАЛИЗАЦИЯ языка.

    Реализация подразумевает не только пряморукую/криворукую реализацию транслятора (компилятора/интерпретатора), но еще исполняющей системы (run-time system) и базовых (стандартных) библиотек.

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


    № 1135   05-09-2006 02:16 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1131« (Geniepro)
    ___________________________
    У меня даже в функции main (!) скорость выполнения для 64-битного целого на С#~5.4, на F#~5.8
    Так что вашу фразу Ну хорошо, я немного приукрасил результаты из сообщения 1129 надо переделать в "Ну хорошо, я немного сфальсифицировал результаты" :)
    Впрочем, я далек от мысли, что вы специально это сделали. Просто это говорит о том, что первый тест вы провели тяп-ляп и с воплями радости помчались сообщать нам, что ФЯ быстрее ИЯ ! :-) Как вам такое?
    Это еще раз говорит нам о том, что к тестам надо относиться с подозрением. :)


    № 1134   04-09-2006 14:08 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1125« (hugi)
    ___________________________

    Понятно теперь, откуда Jack черпает лозунги:

    Функциональное программирование прекрасно, оно - радость созерцания. Как только кто-то поймет функциональное программирование, он немедленно перейдет к нему. Массы, которые застряли в устаревшем императивном и объектно-ориентированном программировании, делают это из слепого предубеждения. Они просто не понимают.

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


    № 1133   04-09-2006 11:18 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1123« (bb)
    ___________________________

    Ответ на »сообщение 1122« (Сергей Перовский)
    ___________________________

    Кстати, многие аргументы могут быть перенесены и в ветку по Оберонам.

    ... Упрощения а-ля Оберон рынку не выгодны. Давно пора бы это всем нам понять. ...

    А поняли: http://www.inr.ac.ru/~info21/texts/2006-06-Ershov/info21.pdf

    Только не рынку невыгодны, а ... впрочем, не буду повторяться.
    С этой точки зрения включение в шарп и проч. функц. средств -- следует этой логике.


    <<<... | 1152—1143 | 1142—1133 | 1132—1123 | ...>>>
    Всего сообщений в теме: 5502; страниц: 551; текущая страница: 437


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

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

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

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

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

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