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

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

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


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

Архив

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


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

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

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

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

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

 
   
С Л С

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

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

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

Квинтана

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

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

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

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

 
  
АРХИВЫ

 
 

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

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

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

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

 Jack Of Shadows

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

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

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


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

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

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


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

  • <<<... | 1072—1063 | 1062—1053 | 1052—1043 | ...>>>
    Всего сообщений в теме: 5502; страниц: 551; текущая страница: 445


    № 1062   31-08-2006 05:23 Ответить на это сообщение Ответить на это сообщение с цитированием
    Сразу извинюсь за то, что поднимаю старую дискуссию, но я не смог тогда привести аргументы в пользу своей точки зрения по причине отсутствия литературы, поэтому хочу сделать это сейчас.
    Артем, не так давно Вы критически отнеслись к возможности работы с большими числами, представляя их в N-ичной системе счисления. Так вот, я нашёл книгу, в которой приводится этот алгоритм. Это уже упомянутая мной книга С. Коутинхо "Введение в теорию чисел. Криптосистема RSA". Вот, что он пишет:
    Обозначим через b наибольшую степень числа 10, представимую
    в виде целого числа с простой точностью [под целым числом с
    простой точностью подразумевается максимальное число,
    представимое в данном языке с помощью целочисленного типа
    данных, например, int или long, однако в примечаниях
    редакции уточняется, что квадрат b должен принадлежать
    интервалу, определённому этим типом] в этом языке. Тогда b
    будет основанием системы счисления, в которой мы будем
    записывать числа с многократной точностью. Для любого
    целого числа n > 0 существует единственный набор целых
    чисел а0, а1, ..., ak между 0 и b—1 такой, что
    n = ak * b^k + а2 * b^2 + a1 * b + а0.
    Позиционное представление числа n по основанию b — это
    запись
    n = (ak...a1a0)b
    Целые числа а0, ... ,аk представляют собой «цифры»
    представления числа n по основанию b. В компьютере числу n
    отвечает список, каждый элемент которого содержит цифру
    представления числа n по основанию b.
    <...>
    Сложение чисел в системе счисления с основанием b можно вы-
    выполнять точно так же, как и сложение в десятичной системе.
    Нужно позаботиться только о переносе в следующий разряд.

    Нужно ли говорить, что операции с таким представлением больших чисел будут значительно быстрее, чем с представлением последних как строк?!
    Я нашёл эту книгу (да не покарают меня модераторы! :)) здесь: http://slil.ru/22632714/416174724/KoutinhoRSA.djvu. Если хотите, можете ознакомиться получше, книжка очень интересная, и написана чрезвычайно увлекательно.
     hugi


    № 1061   30-08-2006 09:05 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1060« (Geniepro)
    ___________________________
    Вот и Прологу и Лиспу мы уже кости сто раз перемывали и эти реализации называли :)

    P# , по большому счету, не совсем то, что нужно.


    № 1060   30-08-2006 08:01 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1059« (Jack Of Shadows)
    ___________________________

    Ну, правда, для особо специфических частей все-равно придется использовать Prolog. :)

    Для .NET тоже есть Пролог - P# http://www.dcs.ed.ac.uk/home/jjc/psharp/
    Правда, последняя версия 1.1.3 аж 2003 года...

    Лиспы для .NET тоже есть: L#, dotLisp, dotScheme...


    № 1059   30-08-2006 02:01 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1058« (Артем)
    ___________________________
    Пока ничего не думаю.
    И сишарп и java еще только заявляют о том что функциональные возможности появятся.
    В java минимум через 2 года (заявлено в 7 версии, 6 еще даже не вышла)
    А сишарп 3 видимо превращается в долгострой.
    К тому времени когда они выйдут, я уже наверное 2-3 года как на lispworks работать буду.
    Да и F# вон на месте не стоит.
    Так что введение функциональных возможностей в java и сишарп теряют свою актуальность (для меня) из за неспешности MS и Sun и появления ФЯ на dotnet (F#) с доступом ко всему богатству библиотек.

    Чего гадать о том что через 2-3 года только появится.



    № 1058   30-08-2006 01:39 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1057« (Jack Of Shadows)
    ___________________________
    Так что у те кто работает на dotnet (а среди дельфистов таких все больше и больше) кажись появляется возможность использовать ФЯ и при этом не потерять ни IDE ни визуальные компоненты, ни ASP Совершенно верно. И самым удобным на данный момент кандидатом являетя F#. Я сам тоже подумываю, чтобы специфические части .net-приложений писать на нем, а остальные на C#. Ну, правда, для особо специфических частей все-равно придется использовать Prolog. :)

    Вагиф, извините за назойливость, но что вы, все-таки, думаете о Java и C#3.0 в смысле функциональных возможностей?


    № 1057   30-08-2006 01:25 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1056« (Артем)
    ___________________________
    Да, я был неправ по поводу команды F#. Она тоже весьма представительна.

    Да и Apress как видно из этой заметки http://blogs.msdn.com/dsyme/archive/2006/02/18/534863.aspx похоже весьма заинтересована в выпуске книги по F#

    Так что у те кто работает на dotnet (а среди дельфистов таких все больше и больше) кажись появляется возможность использовать ФЯ и при этом не потерять ни IDE ни визуальные компоненты, ни ASP

    Новых проектов на dotnet у меня  в ближайшее время не предвидится.
    Но F# буду иметь в виду.



    № 1056   30-08-2006 01:13 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1053« (Jack Of Shadows)
    ___________________________
    По F# нет ни одной книги. Есть книги по OCAML. Да и коммьюнити сайты, в принципе, предоставляют неплохие материалы. И книги, вроде, конкретно по F# тоже собираются выпускать.

    Во вторых на F# пока вообще ничего не написано. Он нигде не используется. <- ? -> A few of the projects using F#:
    JunGL
    Abstract IL
    A Security Analysis for Libraries
    Verified interoperable implementations of security protocols
    A verifier for Singularity
    Chinese Ches


    У F# нет вообще ничего кроме туманно очерченного желания сделать "что то типа ocaml"
    Соответственно, каждая версия сопровождается добавлением очень сильных изменений.
    Не изменений, а дополнений. Согласитесь, это несколько разные вещи.

    Из сообщения №1051:
    Это гораздо сильнее поддержка чем того же F# над которым работает один единственный человек Don Syme. <- ? -> http://research.microsoft.com/fsharp/community.aspx


    № 1055   29-08-2006 16:37 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1054« (Geniepro)
    ___________________________
    Интерес чисто академический.
    Кому нужна еще одна java ? Уже есть три -  Sun, IBM, и BEA. Есть еще и opensource какие то реализации.

    А вот по поводу использования ФЯ сегодня, совсем не обязательно ждать язык в упаковке от MS.
    Ocaml - вполне практичный язык. Куча современных библиотек, мощнейший компилятор, выдающий код быстрее сишного.
    Много книг. Например вот эта: http://caml.inria.fr/pub/docs/oreilly-book/ Developing Applications With OCAML

    Есть свой web farmework http://www.ocsigen.org/index

    Далее Erlang - тоже очень практичный ФЯ. С книгами, библиотеками, широким использованием в промышленном программировании (Ericsson)
    Web server YAWS написанный на erlang http://yaws.hyber.org/ оставляет далеко позади такие промышленные стандарты как Apache и IIS в плане производительности.
    Посмотрите на сравнительные тесты - впечатляют.

    Про лисп упоминать не буду. Уже приводил и книги и библиотеки.

    Короче ФЯ можно использовать сегодня для повседневной работы. Как минимум в web разработке.


    № 1054   29-08-2006 16:23 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1053« (Jack Of Shadows)
    ___________________________

    Интересный проект: http://www.cis.upenn.edu/~stse/javac/

    Fjavac: a functional Java compiler

    Fjavac is a Java 5 compiler implemented in the functional language OCaml. Currently the compiler can parse and pretty-print all JDK 1.5 files (including generics and wildcards). Basic type checking and bytecode compilation are implemented, but supports for generics (type inference and capture conversion) are still underway.

    Цель проекта - создание полной формальной спецификации Java с использованием ФЯ Ocaml/F#.


    № 1053   29-08-2006 15:56 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 1052« (Артем)
    ___________________________
    Но, согласитесь, F# уже можно использовать в промышленном программировании. И лицензия, в принципе, позволяет.

    Define промышленное программирование.

    Во первых язык нельзя использовать в промышленном программировании (массы быстрообучаемых программистов) без литературы. По F# нет ни одной книги. По хаскелю уже изданы несколько.

    Во вторых на F# пока вообще ничего не написано. Он нигде не используется.
    На хаскеле уже написаны и используются несколько программ. Например весьма популярый CVS darcs

    В третьих никакой язык не получит широкого распространения, пока не устоится какой то базовый костяк.
    У хаскеля такой костяк есть - стандарт haskell 98

    У F# нет вообще ничего кроме туманно очерченного желания сделать "что то типа ocaml"
    Соответственно, каждая версия сопровождается добавлением очень сильных изменений.
    Например в последней - значимые отступы и active patterns.
    В таких условиях даже книгу написать невозможно. Приходится ждать, пока язык не устоится.

    В четвертых лицензия GHC позволяет использовать его безо всяких ограничений и требований.

    Что касается того почему MS так боится афишировать свою связь с хаскелем, то мы можем только гадать.
    Ответа я не знаю.


    <<<... | 1072—1063 | 1062—1053 | 1052—1043 | ...>>>
    Всего сообщений в теме: 5502; страниц: 551; текущая страница: 445


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

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

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

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

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

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