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

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

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


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

Архив

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


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

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

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

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

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

 
   
С Л С

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

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

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

Квинтана

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

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

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

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

 
  
АРХИВЫ

 
 

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

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

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

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

 Jack Of Shadows

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

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

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


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

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

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


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

  • <<<... | 4242—4233 | 4232—4223 | 4222—4213 | ...>>>
    Всего сообщений в теме: 5502; страниц: 551; текущая страница: 128


    № 4232   07-04-2008 12:48 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 4231« (panda)
    ___________________________

    http://msdn2.microsoft.com/en-us/magazine/cc163340.aspx

    Спасибо за ссылку!
    Но сейчас Jack Of Shadows будет плеваться :) Скажет, что это костыли. Что состояние никуда не исчезло. И что поэтому Unfortunately, the library does not help to correctly synchronize parallel code that uses shared memory. It is still the programmer's responsibility to ensure that certain code can be safely executed in parallel...

    А я, как матёрый провокатор, буду опять держать нейтралитет :)


    № 4231   07-04-2008 11:29 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 4230« (Денис Зайцев)
    ___________________________

    http://msdn2.microsoft.com/en-us/magazine/cc163340.aspx


    № 4230   07-04-2008 10:06 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 4223« (Jack Of Shadows)
    ___________________________

    Вот бизнес и приходит к необходимости замены труднодоступной техники распараллеливания программ на гораздо более легкую, в которой большую часть работы выполняет машина. Таким образом армия малограмотных дельфи/вб/java/c# и прочих программистов могли бы писать распараллеленные программы, и при этом их найти или заменить было бы также легко как и раньше.
    Спопобов этого достичь два. Либо внедрять функциональные возможности в мейнстрим языки (этим путем идет например МС внедряя в с# все больше и больше функциональных возможностей) либо на общей платформе (дотент или java) помимо мейнстрим языков уже полноценно поддерживать и ФЯ (F# на dotnet или там scala на java)


    Jack, похоже, это противоречит Вашим же тезисам:
    1) Из мейнстрим-языков никогда не будет убрано (и даже изолировано) состояние. Иначе их уже по-другому следует называть. Даже если каким-то образом умудрятся изолировать, "армия малограмотных программистов" уже не сможет воспользоваться этими языками. А коль скоро состояние не изолировано - нет конфетки автоматического распараллеливания :)
    2) F# и т.п. - опять же нашей "армии..." не по зубам.

    Или Вы уже изменили своё мнение и порог вхождения для чистых ФЯ можно значительно понизить?
    Возьмётесь написать книжку "Хаскель для домохозяек"? :)


    № 4229   07-04-2008 09:37 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 4228« (Как слышно? Прием!)
    ___________________________

    Когда-то в Ливерморской лаборатории использовали чистый ФЯ SISAL (я о нём тут много раз упоминал), хороший был язык, но увы, по каким-то причинам его забросили, хотя исходники самого компилятора (под *никсы) открыты...

    Этот компилятор использовался как раз с такими вот кластерами, причём он переводил программу с SISAL'а на стандартный Си.
    Так вот, программы, сгенерированные этим компилятором, распараллеливались гораздо лучше (работали в три-четыре раза быстрее), чем вручную написанные и оптимизированные на языках Си или Фортран...
    Делайте выводы: отказ от побочных эффектов помогает в оптимизациях и распараллеливаниях...

    Хотя, конечно, многое зависит от конкретных задач, архитектур, людей, и тд. и тп...


    № 4228   07-04-2008 06:49 Ответить на это сообщение Ответить на это сообщение с цитированием
    Вопрос, собственно:
    Вы считаете, что распараллеливание программ без ФЯ -
    это сплошное и бесперспективное рукоделие?


    № 4227   07-04-2008 06:47 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 4223« (Jack Of Shadows)
    ___________________________
    >>> Сколько вы знаете народу который занят на этом поприще ?
    Одного.
    Мы с ним иногда в бане моемся - однокашник.
    Доктор ф.м.н
    Работает в институте АН.
    Говорит - ничего сложного.
    А тут подвернулся клиент с двумя десятками двухядерных
    приличных компов и сетка у него 100 Мб.
    Задачи с хорошей оплатой со сложными и объемными вычислениями есть.

    Или я слищком самонадеян?


    № 4226   07-04-2008 03:34 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 4218« (Jack Of Shadows)
    ___________________________

    А как же без практики ? Если на работе не пользуетесь, то где тогда ?

    Да вот так... Ограничиваюсь игрушечными проектами, на которых пробую те или иные интересные лично мне возможности Лиспа. Потому и считаю себя  hobbyist'ом с 8-летним стажем :-).



    № 4225   06-04-2008 20:44 Ответить на это сообщение Ответить на это сообщение с цитированием
    http://www.well-typed.com/
    Уже появляются коммерческие консультационные фирмы, предоставляющие профессиональные услуги, связанные с разработкой и ведением программ на хаскеле.
    Первая ласточка проникновения хаскеля на рынок.



    № 4224   06-04-2008 15:02 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 4221« (Jack Of Shadows)
    ___________________________
    >>> Первый предвестник перемен в этой области был Playstation 3, в котором вместо специализированных графических чипов используются 7 ядер общего назначения (пусть и не таких как x86)
    Насколько я читал об этих процессорах, там достаточно отличающаяся система команд от x86. Так, например, можно явно загрузить данные в кэш процессора и хранить их там сколько потребуется. А это в свою очередь означает, что ни какой такой вытесняющей многозадачности как сейчас, да и вообще много что по другому...
    Соответственно встает вопрос о совместимости ПО - Железо?... Как они в таком случае поступят?...


    № 4223   06-04-2008 14:20 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 4222« (Как слышно? Приём!)
    ___________________________
    Не только кластерное программирование но и любая сервеная программа расчитана на много процессорную машину. И мы пользуемся такими программаи уже больше 50 лет.
    То есть речь конечно не идет о том что раньше мол параллельные и распределенны программы не писали а вот щас начнут.
    Просто раньше необходимость писать такие программы была маргинальная, нишевая. И несмотря на невообразимую сложность написания распараллеленных программ по сравнению с обычными, тем не менее задач, требующих распараллеливание было настолько мало, что индустрии хавтало и тех нескольих тысяч программистов, которых она могла найти для подобной работы.
    Специаллисты подобного рода стоят дорого, но рабботу им дают соответствующую: пиасть ОС, серверные программы (веб сервер, сервер базы данных, мейл сервер)
    Сколько вы знаете народу который занят на этом поприще ? Вот то то.
    Однако с приходом многопроцессорных систем в обычные писюки, положение кардинально меняется.
    Две конкуррирующие программы, одна написанная обычным программистом по старнике, другая, использующая всю мошь всех ядер, будут разительно отличаться по скорости работы. И чем больше ядер тем сильнее они будут отличаться. Таким образом у бизнеса внезапно появляется спрос на распараллеленные программы как козырь в конкурентной борьбе.
    Спроас появился, а предложения нет. Программистов, способных осилить распараллеливание на одной машине традиционными техниками (я даже не говорю о распределении по кластеру) ничтожно мало. И они все уже заняты, все на нехилой зарплате. Ну что вы предлагаете, воровать что ли их друг у друга ?

    Вот бизнес и приходит к необходимости замены труднодоступной техники распараллеливания программ на гораздо более легкую, в которой большую часть работы выполняет машина. Таким образом армия малограмотных дельфи/вб/java/c# и прочих программистов могли бы писать распараллеленные программы, и при этом их найти или заменить было бы также легко как и раньше.
    Спопобов этого достичь два. Либо внедрять функциональные возможности в мейнстрим языки (этим путем идет например МС внедряя в с# все больше и больше функциональных возможностей) либо на общей платформе (дотент или java) помимо мейнстрим языков уже полноценно поддерживать и ФЯ (F# на dotnet или там scala на java)


    Я это не только из любопытства - подумываю всерьёз занятся кластерными расчётами.

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


    <<<... | 4242—4233 | 4232—4223 | 4222—4213 | ...>>>
    Всего сообщений в теме: 5502; страниц: 551; текущая страница: 128


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

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

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

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

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

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