Почему никто не использует функциональные языки
От: Gaperton http://gaperton.livejournal.com
Дата: 18.08.04 12:51
Оценка: 114 (11)
Эта тема несколько раз поднималась на форуме, но ни до чего серьезного не договорились. Вот, нашел перевод статьи господина Вадлера на эту тему. Хорошо дядька пишет, правильно.

Почему никто не использует функциональные языки


16.10.04 22:23: Перенесено модератором из 'Философия программирования' — AndrewVK
Re: Почему никто не использует функциональные языки
От: AndreyFedotov Россия  
Дата: 18.08.04 17:30
Оценка:
Здравствуйте, Gaperton, Вы писали:

G>Эта тема несколько раз поднималась на форуме, но ни до чего серьезного не договорились. Вот, нашел перевод статьи господина Вадлера на эту тему. Хорошо дядька пишет, правильно.


G>Почему никто не использует функциональные языки


В статье много интересных идей... Но! Это типичная рекламная статья от евангелиста данной технологии. Послушать аплогогетов нейронных сетей или ИИ — так совершенно непонятно, почему до сих пор по улицам не ходят андроиды, а мы все не в матрице... Тут применяются обычные рекламные трюки — декларируемые, потенциальные возможности выдаются за действительные, и делается вид — будто ещё чуть-чуть и функционаьные языки сравнятся с императивными, при этом очень существенные негативные факторы практически игнорируются (такие — как необходимость средств разработки и обучения — а это десятки миллиардов $). Обещается небо в алмазах, но как обычно забывают указать — как этого достичь.
В общем сам факт того, что статья написана 6 лет назад в 1998 году, а с тех пор воз и ныне там, если не хуже — показательно и свидетельсвтует само за себя...
Re[2]: Почему никто не использует функциональные языки
От: Gaperton http://gaperton.livejournal.com
Дата: 18.08.04 19:18
Оценка: 4 (1) +1 :)
Здравствуйте, AndreyFedotov, Вы писали:

AF>Здравствуйте, Gaperton, Вы писали:


G>>Эта тема несколько раз поднималась на форуме, но ни до чего серьезного не договорились. Вот, нашел перевод статьи господина Вадлера на эту тему. Хорошо дядька пишет, правильно.


G>>Почему никто не использует функциональные языки


AF> В статье много интересных идей... Но! Это типичная рекламная статья от евангелиста данной технологии. Послушать аплогогетов нейронных сетей или ИИ — так совершенно непонятно, почему до сих пор по улицам не ходят андроиды, а мы все не в матрице... Тут применяются обычные рекламные трюки — декларируемые, потенциальные возможности выдаются за действительные, и делается вид — будто ещё чуть-чуть и функционаьные языки сравнятся с императивными, при этом очень существенные негативные факторы практически игнорируются (такие — как необходимость средств разработки и обучения — а это десятки миллиардов $). Обещается небо в алмазах, но как обычно забывают указать — как этого достичь.

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

Этот длинный список причин, по которым никто не использует функциональные языки, может выглядеть уныло, но я предпочитаю смотреть на светлую сторону. Люди не отвергают функциональные языки из-за глупости, скорее они отвергают их по целому ряду серьезных причин. Глупость непробиваема — другими проблемами мы можем заняться.


AF> В общем сам факт того, что статья написана 6 лет назад в 1998 году, а с тех пор воз и ныне там, если не хуже — показательно и свидетельсвтует само за себя...

Если не хуже, говоришь? Откуда такие опасения? Откуда ты знаешь, где воз был и где он сейчас? У тебя есть статистика по количеству применений ФЯ по годам за последние 6 лет? Или ты просто смотришь, стоит-ли соответствующий SDK на твоем компе и у соседа, который на днях его удалил?

Наивно думать, что ситуация может измениться так стремительно — сегодня "никто", завтра — "все".

P.S.: Небольшой комментарий к теме "делается вид — будто ещё чуть-чуть и функционаьные языки сравнятся с императивными".

Фрагменты моей переписки с Eric Newhuis из FutureSource (мои вопросы — его ответы):

> Btw, recently noticed that you're looking for an Erlang developer.
> You using Erlang for feed parsers there in FutureSource, right?
Yes we're using Erlang for some feed parsing and also for other things as
well. Most of the legacy code is C++, however, and so there is still a
majority of parsing in C++.

But Erlang looks better to us every day.

> Interesting, how your management get convinced to use Erlang?
I am management. It takes a while. Start out with small project. Look
for the failures with C++. Solve them with Erlang.


Вот так. Вы все еще кипятите? А мы уже рубим!
Re[3]: Почему никто не использует функциональные языки
От: WFrag США  
Дата: 19.08.04 02:47
Оценка:
Здравствуйте, Gaperton, Вы писали:

G>Вот так. Вы все еще кипятите? А мы уже рубим!


Не посоветуешь ли, с чего стоит начать ознакомление с функциональными языками, какой язык стоит посмотреть в первую очередь?
Re[3]: Почему никто не использует функциональные языки
От: Цунцуяби Россия  
Дата: 19.08.04 03:19
Оценка:
G>Вот так. Вы все еще кипятите? А мы уже рубим!

Dear Gaperton.

Дай порубить ! ( Где,что,почем ( i love halyavah ) )

Цунцуяби
Re[3]: Почему никто не использует функциональные языки
От: AndreyFedotov Россия  
Дата: 19.08.04 04:55
Оценка: 9 (3) +2
Здравствуйте, Gaperton, Вы писали:

AF>> В статье много интересных идей... Но! Это типичная рекламная статья от евангелиста данной технологии. Послушать аплогогетов нейронных сетей или ИИ — так совершенно непонятно, почему до сих пор по улицам не ходят андроиды, а мы все не в матрице... Тут применяются обычные рекламные трюки — декларируемые, потенциальные возможности выдаются за действительные, и делается вид — будто ещё чуть-чуть и функционаьные языки сравнятся с императивными, при этом очень существенные негативные факторы практически игнорируются (такие — как необходимость средств разработки и обучения — а это десятки миллиардов $). Обещается небо в алмазах, но как обычно забывают указать — как этого достичь.

G>Кажется, ты прочел какую-то другую статью. Ничего из перечисленного там нет.
G>

G>Этот длинный список причин, по которым никто не использует функциональные языки, может выглядеть уныло, но я предпочитаю смотреть на светлую сторону. Люди не отвергают функциональные языки из-за глупости, скорее они отвергают их по целому ряду серьезных причин. Глупость непробиваема — другими проблемами мы можем заняться.

Намёк понятен Чего и Вам желаю... Я прочёл именно эту статью — и прочёл очень внимательно, так как сам интересуюсь функциональными языками. В этой статье хорошо описаны причины того, почему функциональные языки не распространены. Беда в том, что акценты ставятся совершенно иначе, чем их расставил бы человек не заинтересованный. Как обычно и бывает в рекламе.
Все описанные "причины" — показаны мелкими, незначительными и легко преодолимыми. Вот пример:

Задача обучения не является трудноразрешимой. В Software AG нашли, что они могут обучать программистов использованию Natural Expert на однонедельном курсе, который включал ленивые вычисления, полиморфные типы и функции высшего порядка. Как правило, студенты раздражались, когда компилятор неоднократно отвергал программы из за ошибок типизации, но были приятно удивлены, когда их программы наконец проходили контроль типов и работали правильно с первой попытки [8].

Из этого абзаца следует, что типичному функциональному языку (а именно в таком качестве, по тексту приводится Natural Expert) можно научить за неделю. Вы действительно считаете, что за неделю можно сделать готового разрзаботчика, который сможет эффективно выполнять реальную работу на каком либо языке? Однако этот факт спокойно умалчивается.
Кроме того, вот здесь говорится следующее:

Более важно то, что как показывает опыт, хотя эффективность помогает конкурировать с С, она вовсе не требуется для успеха. Tcl/Tk, Perl, и Visual Basic заняли видное положение с интерпретирующими реализациями. Java стал чрезвычайно популярным, имея эффективность гораздо ниже С. В функциональном мире Erlang достиг первых успехов как интерпретируемый язык.

Далее софистика на тему применимости языков и их эффективности. Но почему то в статье нет нигде упоминания очевидного факта — что у каждого из приведённых языков — своя область применения. Иногда она пересекается с областью применения других языков — иногда нет. Там где области применения пересекаются — у каждого языка обычно есть свои сильные стороны (как и слабые). Часто формы рисуют и на C++ и на VB — на последнем это проще, зато первый позволяет создавать монолитное приложение с обработкой GUI и высокопроизводительными вычилсениями в одном флаконе. Но крайне редко C++ или VB применяют там, где применяется Perl или TCL.
А иногда появляются новые языки, которые начинают вытеснять существующие из их областей применения (как это происходит с C#).
То есть язык имеет смысл рассматривать вместе с областью, где его можно эффективно использовать. Вот этого как раз и не делается. При этом упоминается применения функциональных языков в достаточно специфичной области — в телекоммуникациях. (Кстати ещё вопрос — какая часть системы там написана с их использованием).

AF>> В общем сам факт того, что статья написана 6 лет назад в 1998 году, а с тех пор воз и ныне там, если не хуже — показательно и свидетельсвтует само за себя...

G>Если не хуже, говоришь? Откуда такие опасения? Откуда ты знаешь, где воз был и где он сейчас? У тебя есть статистика по количеству применений ФЯ по годам за последние 6 лет? Или ты просто смотришь, стоит-ли соответствующий SDK на твоем компе и у соседа, который на днях его удалил?
А ты стало быть знаешь? Или это только у меня с соседом эти языки ещё не установлены?

G>Наивно думать, что ситуация может измениться так стремительно — сегодня "никто", завтра — "все".

Не знал, что Вы так наивны. Вот именно об этом и речь. Прогресс в функциональных языках есть — но он пока на том уровне, какой соответствует научным исследованиям, а не промышленному применению.

G>P.S.: Небольшой комментарий к теме "делается вид — будто ещё чуть-чуть и функционаьные языки сравнятся с императивными".


G>Фрагменты моей переписки с Eric Newhuis из FutureSource (мои вопросы — его ответы):

G>

>> Btw, recently noticed that you're looking for an Erlang developer.
>> You using Erlang for feed parsers there in FutureSource, right?
G>Yes we're using Erlang for some feed parsing and also for other things as
G>well. Most of the legacy code is C++, however, and so there is still a
G>majority of parsing in C++.

G>But Erlang looks better to us every day.

>> Interesting, how your management get convinced to use Erlang?
G>I am management. It takes a while. Start out with small project. Look
G>for the failures with C++. Solve them with Erlang.


Этот фрагмент ничего не доказывает. Кто то использует язык там где он эффективен. И что это доказывает?

Раньше мы писали Web-сайты на C++ и половина проектов проваливалась. Теперь нам кто то показал HTML и мы с восторгом пишем на нём...

Значит ли это что HTML лучше чем C++ для написания расчётов?

G>Вот так. Вы все еще кипятите? А мы уже рубим!

А мы вообще то давно стиральной машинкой пользуемся.

PS. Я за новые (или старые) функциональные языки. Но я против того, что бы делать из них очередную "панацею". Я за то, что бы дополнить ими традиционные языки, а не пытаться их заменить.
Re: Почему никто не использует функциональные языки
От: Glоbus Украина  
Дата: 19.08.04 08:17
Оценка:
Здравствуйте, Gaperton, Вы писали:

А нельзя ли темному человеку раскинуть, че такое функциональые языки, потому что ранее похоже я заблуждался относительно этого термина. Желательно поподробнее и с примерами.
Удачи тебе, браток!
Re[4]: Почему никто не использует функциональные языки
От: Gaperton http://gaperton.livejournal.com
Дата: 19.08.04 10:26
Оценка:
Здравствуйте, AndreyFedotov, Вы писали:

AF> Намёк понятен Чего и Вам желаю... Я прочёл именно эту статью — и прочёл очень внимательно, так как сам интересуюсь функциональными языками. В этой статье хорошо описаны причины того, почему функциональные языки не распространены. Беда в том, что акценты ставятся совершенно иначе, чем их расставил бы человек не заинтересованный. Как обычно и бывает в рекламе.

AF> Все описанные "причины" — показаны мелкими, незначительными и легко преодолимыми. Вот пример:
AF>

AF> Задача обучения не является трудноразрешимой. В Software AG нашли, что они могут обучать программистов использованию Natural Expert на однонедельном курсе, который включал ленивые вычисления, полиморфные типы и функции высшего порядка. Как правило, студенты раздражались, когда компилятор неоднократно отвергал программы из за ошибок типизации, но были приятно удивлены, когда их программы наконец проходили контроль типов и работали правильно с первой попытки [8].

AF> Из этого абзаца следует, что типичному функциональному языку (а именно в таком качестве, по тексту приводится Natural Expert) можно научить за неделю. Вы действительно считаете, что за неделю можно сделать готового разрзаботчика, который сможет эффективно выполнять реальную работу на каком либо языке? Однако этот факт спокойно умалчивается.

Нет конечно, я так не считаю. За неделю можно обучить языку, а не умелому применению этого языка, которое вырабатывается только практикой. Думаете, доктор Вадлер этого не знает? С другой стороны, вы способны за месяц научить кого-нибудь правильному применению С++? Haskell и Elrang будут попроще в изучении. Особенно Erlang, — практика применения языка показывает, что уже через неделю человек (незнакомый с ФЯ) может выполнять полезную работу (под присмотром, естественно), а через месяц способен эффективно выполнять работу в одиночку.

AF> Кроме того, вот здесь говорится следующее:

AF>

AF>Более важно то, что как показывает опыт, хотя эффективность помогает конкурировать с С, она вовсе не требуется для успеха. Tcl/Tk, Perl, и Visual Basic заняли видное положение с интерпретирующими реализациями. Java стал чрезвычайно популярным, имея эффективность гораздо ниже С. В функциональном мире Erlang достиг первых успехов как интерпретируемый язык.

AF> Далее софистика на тему применимости языков и их эффективности.
Поаккуратнее, плз. Не надо Вадлера голословно обвинять в софистике. У вас с ним немного разные весовые категории.

AF> Но почему то в статье нет нигде упоминания очевидного факта — что у каждого из приведённых языков — своя область применения. Иногда она пересекается с областью применения других языков — иногда нет. Там где области применения пересекаются — у каждого языка обычно есть свои сильные стороны (как и слабые). Часто формы рисуют и на C++ и на VB — на последнем это проще, зато первый позволяет создавать монолитное приложение с обработкой GUI и высокопроизводительными вычилсениями в одном флаконе. Но крайне редко C++ или VB применяют там, где применяется Perl или TCL.

AF> А иногда появляются новые языки, которые начинают вытеснять существующие из их областей применения (как это происходит с C#).
AF> То есть язык имеет смысл рассматривать вместе с областью, где его можно эффективно использовать. Вот этого как раз и не делается. При этом упоминается применения функциональных языков в достаточно специфичной области — в телекоммуникациях. (Кстати ещё вопрос — какая часть системы там написана с их использованием).
Очевидные факты на то и очевидны, чтобы их не разжевывать в каждой статье. Тем не менее...

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

...там этот факт освещен.

AF>>> В общем сам факт того, что статья написана 6 лет назад в 1998 году, а с тех пор воз и ныне там, если не хуже — показательно и свидетельсвтует само за себя...

G>>Если не хуже, говоришь? Откуда такие опасения? Откуда ты знаешь, где воз был и где он сейчас? У тебя есть статистика по количеству применений ФЯ по годам за последние 6 лет? Или ты просто смотришь, стоит-ли соответствующий SDK на твоем компе и у соседа, который на днях его удалил?
AF> А ты стало быть знаешь? Или это только у меня с соседом эти языки ещё не установлены?
Я не знаю, поэтому и не фантазирую на тему положения воза, и тем более не делаю из этого никаких выводов.

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

G>>Наивно думать, что ситуация может измениться так стремительно — сегодня "никто", завтра — "все".

AF> Не знал, что Вы так наивны.
Но-но, я попрошу!
AF> Вот именно об этом и речь. Прогресс в функциональных языках есть — но он пока на том уровне, какой соответствует научным исследованиям, а не промышленному применению.
Вот это — неправда. Факты — упрямая штука. За эти 6 лет достигнут заметный прогресс именно в области промышленного применения ФЯ. Erlang — зрелая промышленная платформа. Есть куда расти, да. Но уже. Clean тоже весьма неплох с этой точки зрения — там есть все необходимое. И по скорости выполнения программ он рвет Яву. У них есть IDE. Убогий пока, но есть.

AF> Этот фрагмент ничего не доказывает. Кто то использует язык там где он эффективен. И что это доказывает?

Очевидно, он доказывает не то, что бы вы хотели. По моему, я ясно выразился:
G>P.S.: Небольшой комментарий к теме "делается вид — будто ещё чуть-чуть и функционаьные языки сравнятся с императивными".

Yes we're using Erlang for some feed parsing and also for other things as well. Most of the legacy code is C++, however, and so there is still a majority of parsing in C++. But Erlang looks better to us every day... Look for the failures with C++. Solve them with Erlang.


AF>

AF>Раньше мы писали Web-сайты на C++ и половина проектов проваливалась. Теперь нам кто то показал HTML и мы с восторгом пишем на нём...

AF> Значит ли это что HTML лучше чем C++ для написания расчётов?
Не надо мне приписывать такой чепухи. Что за привычка считать собеседника идиотом? Где я такое говорил. Цитату.

G>>Вот так. Вы все еще кипятите? А мы уже рубим!

AF> А мы вообще то давно стиральной машинкой пользуемся.
Хе-хе! Тогда мы идем к вам!!!

AF>PS. Я за новые (или старые) функциональные языки. Но я против того, что бы делать из них очередную "панацею". Я за то, что бы дополнить ими традиционные языки, а не пытаться их заменить.

Отличный лозунг. А я по вашему, за что? За то чтобы сделать из них панацею, и все традиционные языки заменить функциональными? Попробуйте доказать этот бред цитатами из моих писем.
Re[4]: Почему никто не использует функциональные языки
От: Gaperton http://gaperton.livejournal.com
Дата: 19.08.04 10:59
Оценка:
Здравствуйте, WFrag, Вы писали:

WF>Здравствуйте, Gaperton, Вы писали:


G>>Вот так. Вы все еще кипятите? А мы уже рубим!


WF>Не посоветуешь ли, с чего стоит начать ознакомление с функциональными языками, какой язык стоит посмотреть в первую очередь?


Haskell. Поймешь его — поймешь все функциональные языки.
www.haskell.org
Re[5]: Почему никто не использует функциональные языки
От: Павел Леонов Россия icq: 138726397
Дата: 19.08.04 11:02
Оценка:
Здравствуйте, Gaperton, Вы писали:

G>Здравствуйте, WFrag, Вы писали:


WF>>Здравствуйте, Gaperton, Вы писали:


G>>>Вот так. Вы все еще кипятите? А мы уже рубим!


WF>>Не посоветуешь ли, с чего стоит начать ознакомление с функциональными языками, какой язык стоит посмотреть в первую очередь?


G>Haskell. Поймешь его — поймешь все функциональные языки.

G>www.haskell.org

А нет ли у Вас такого же, но только с .RU?
Re[4]: Почему никто не использует функциональные языки
От: Gaperton http://gaperton.livejournal.com
Дата: 19.08.04 11:03
Оценка:
Здравствуйте, Цунцуяби, Вы писали:

G>>Вот так. Вы все еще кипятите? А мы уже рубим!


Ц>Dear Gaperton.


Ц>Дай порубить ! ( Где,что,почем ( i love halyavah ) )

www.erlang.org
Полная халява. Начни с FAQ, чтобы понять, что это и подойдет ли для твоих задач. Язык довольно специален, например, десктопные приложения на нем писать глупо, ИМХО. Хотя это технически возможно, да и не все со мной согласны .
Re: Почему никто не использует функциональные языки
От: Павел Леонов Россия icq: 138726397
Дата: 19.08.04 11:04
Оценка:
Здравствуйте, Gaperton, Вы писали:

G>Эта тема несколько раз поднималась на форуме, но ни до чего серьезного не договорились. Вот, нашел перевод статьи господина Вадлера на эту тему. Хорошо дядька пишет, правильно.


G>Почему никто не использует функциональные языки


Кстати я читал, МС собирается задействовать Haskell в DirectX.
Re[5]: OCaml
От: INTP_mihoshi Россия  
Дата: 19.08.04 11:12
Оценка:
Здравствуйте, Gaperton, Вы писали:

WF>>Не посоветуешь ли, с чего стоит начать ознакомление с функциональными языками, какой язык стоит посмотреть в первую очередь?


G>Haskell. Поймешь его — поймешь все функциональные языки.

G>www.haskell.org

Haskell имху слишком уж функционален Но действительно, это самый "классический" ФЯ.
А для понимания практических возможностей ФЯ лучше посмотреть OCaml. Он удачно сочетает и функциональные, и императивные элементы. Вот на нем, в отличие от Haskell, уже можно писать практически что угодно.

Не советую начинать изучение с Erlang и Clean, т.к. они более заточены под определенные практические задачи и вследствии этого перегружены несвойственными ФЯ "фичами". Erlang, например, ближе к скриптовым языкам.
Re[2]: Почему никто не использует функциональные языки
От: Курилка Россия http://kirya.narod.ru/
Дата: 19.08.04 11:13
Оценка:
Здравствуйте, Павел Леонов, Вы писали:

ПЛ>Здравствуйте, Gaperton, Вы писали:


G>>Эта тема несколько раз поднималась на форуме, но ни до чего серьезного не договорились. Вот, нашел перевод статьи господина Вадлера на эту тему. Хорошо дядька пишет, правильно.


G>>Почему никто не использует функциональные языки


ПЛ>Кстати я читал, МС собирается задействовать Haskell в DirectX.


Можно линк, если он, конечно, есть
Re[5]: Почему никто не использует функциональные языки
От: AndreyFedotov Россия  
Дата: 19.08.04 11:31
Оценка:
Здравствуйте, Gaperton, Вы писали:

G>Нет конечно, я так не считаю. За неделю можно обучить языку, а не умелому применению этого языка, которое вырабатывается только практикой. Думаете, доктор Вадлер этого не знает? С другой стороны, вы способны за месяц научить кого-нибудь правильному применению С++? Haskell и Elrang будут попроще в изучении. Особенно Erlang, — практика применения языка показывает, что уже через неделю человек (незнакомый с ФЯ) может выполнять полезную работу (под присмотром, естественно), а через месяц способен эффективно выполнять работу в одиночку.

Это верно. Но в статье это приподносится так, как будто подготовка готового специалиста займёт неделю, когда это совсем не так. Ведь там же рассматривается проблема обучения для использования функциональных языков в реальных проектах. Посморти на это глазами менеджера, у которого нет твоего опыта проектирования и программирования.
А в общем то согласен — очень многие языки проще чем C++ и в обучении и в использовании.

AF>> Кроме того, вот здесь говорится следующее:

AF>>

AF>>Более важно то, что как показывает опыт, хотя эффективность помогает конкурировать с С, она вовсе не требуется для успеха. Tcl/Tk, Perl, и Visual Basic заняли видное положение с интерпретирующими реализациями. Java стал чрезвычайно популярным, имея эффективность гораздо ниже С. В функциональном мире Erlang достиг первых успехов как интерпретируемый язык.

AF>> Далее софистика на тему применимости языков и их эффективности.
G>Поаккуратнее, плз. Не надо Вадлера голословно обвинять в софистике. У вас с ним немного разные весовые категории.
При чём здесь весовые категории? По сути можете что-либо сказать или только про весовые категории?
Кроме игры словами в абзаце, из которого приведена цитата, более ничего нет. Это называется софистика.

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

G>Очевидные факты на то и очевидны, чтобы их не разжевывать в каждой статье. Тем не менее...
G>

G>Некоторые исследователи надеются, что высокоуровневая сущность функциональных языков неотразима сама по себе, но опыт до настоящего времени показывает, что эта надежда неуместна. Вместо этого, опыт показывает, что пользователи потянутся к языку, если он позволит им удобно делать что-то, что иначе трудно достижимо. Подобно другим новым технологиям, функциональные языки должны искать свои убийственные применения.

G>...там этот факт освещен.
Ну это рассуждения в общем и целом и ни о чём конкретно. Причём обясняются самоочевидные факты. И так понятно, что если бы какой то язык, метод или технология — были бы в 100 раз эффективнее, чем то, чем вы пользуетесь сейчас, то вы бы бросив всё постарались как можно быстрее перейти на них. Это самоочевидно и большого ума не требует. А вот что требует большого ума — так это показать — где, что и как следует применить, что бы это оказалось в N раз эффективнее, чем то, что применяется там сейчас. Вот это действительно не тривиально.
Вот если бы он показал — как применяются функцональные языки в том же телекоме — и обяснил — почему они там оказываются гораздо эффективнее — вот это было бы гораздо интереснее.

G>Я не знаю, поэтому и не фантазирую на тему положения воза, и тем более не делаю из этого никаких выводов.

Зато есть интернет и поисковики — поищите, посмотрите. Нейронные сети и те применяются гораздо шире...

G>Но если Вы настаиваете... Во многих европейских вузах ФЯ сейчас применяются в процессе обучения, в некоторых — как первый язык. Подождите, когда эти выпускники пойдут работать, и займут руководящие позиции. Будет как с UNIX. Динамика, на мой взгляд, положительная, хотя и слабая. Но это все косвенные признаки, статистики у меня нет.

Угу. Ещё 30 лет назад в вузах многих учили основам нейроных сетей. А некоторых даже — как основному методу построения ИИ. Ну и где же засилие нейронных сетей?

AF>> Вот именно об этом и речь. Прогресс в функциональных языках есть — но он пока на том уровне, какой соответствует научным исследованиям, а не промышленному применению.

G>Вот это — неправда. Факты — упрямая штука. За эти 6 лет достигнут заметный прогресс именно в области промышленного применения ФЯ. Erlang — зрелая промышленная платформа. Есть куда расти, да. Но уже. Clean тоже весьма неплох с этой точки зрения — там есть все необходимое. И по скорости выполнения программ он рвет Яву. У них есть IDE. Убогий пока, но есть.
Вот именно! Факты упрямая вещь! Прогресс всегда определяется в сравнении. Например какую долю в том же телекоме стали занимать функциональные языки — большую или меньшую?
Я как то наткнулся на статью, где приводился забавный факт: Оказывается, что сейчас арбалетов у нас (Европа, США, Россия) больше, чем их было в 13-14 веках, когда они были основным оружием. Но значит ли это, что арбалеты стали более распространены?
Re[6]: OCaml
От: Gaperton http://gaperton.livejournal.com
Дата: 19.08.04 11:55
Оценка: +1
Здравствуйте, INTP_mihoshi, Вы писали:

INT>Здравствуйте, Gaperton, Вы писали:


WF>>>Не посоветуешь ли, с чего стоит начать ознакомление с функциональными языками, какой язык стоит посмотреть в первую очередь?


G>>Haskell. Поймешь его — поймешь все функциональные языки.

G>>www.haskell.org

INT>Haskell имху слишком уж функционален Но действительно, это самый "классический" ФЯ.

INT>А для понимания практических возможностей ФЯ лучше посмотреть OCaml. Он удачно сочетает и функциональные, и императивные элементы. Вот на нем, в отличие от Haskell, уже можно писать практически что угодно.
Это так, но! ИМХО, для целей изучения ФЯ наличие императивных возможностей в языке (как в OCaml) не очень хорошо, так как человека ничего не заставит писать в функциональном стиле. Здесь ведь надо, чтобы "торкнуло". А в OCaml он всегда сможет обойтись императивным стилем.

Второй момент OCaml, что делает его не очень хорошим учебным языком, — там нет ленивых вычислений. А это один из самых мощных механизмов ФЯ, его надо знать обязательно.

Так что высока вероятность, что ознакомившись с OCaml, человек так и не поймет в чем же прелесть ФЯ. Язык как язык.

Я бы советовал такую последовательность. Haskell -> OCaml, Erlang, Clean (на выбор или все). После хаскеля у вас уйдет максимум по 2 дня на каждый из этих языков, и вы будете в состоянии оценить их прелести.

Одно из важнейших достоинств Хаскеля — наличие великолепного Gentle Introduction to Haskell. Таким введением мог бы гордится любой язык.

INT>Не советую начинать изучение с Erlang и Clean, т.к. они более заточены под определенные практические задачи и вследствии этого перегружены несвойственными ФЯ "фичами". Erlang, например, ближе к скриптовым языкам.


Тоже не советую, но по другим причинам. По Clean просто-напросто нет нормальной документации. Учить его не зная Haskell — мазохизм. Clean очень похож на Хаскель, самое серьезное отличие — наличие Uniqueness Typing (это серьезно упрощает ввод-вывод — не надо знать что такое Монады).

Erlang так же как OCaml язык без ленивых вычислений, в добавок там нет "карринга", и нет системы типов (Хиндли/Милнера/Майкрофта) благодаря динамической типизации (хотя благодаря этому он на порядок проще Haskell; если сдадут нервы — смотрите его).
Re[3]: Почему никто не использует функциональные языки
От: Glоbus Украина  
Дата: 19.08.04 11:57
Оценка: 1 (1) -1
Здравствуйте, Gaperton, Вы писали:

G>Вот так. Вы все еще кипятите? А мы уже рубим!


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

C++ Erlang
Sun 166 0
Oracle 150 0
MS 715 0

Я думаю если взять ibm и так далее то тенденция будет примерно такая же — начиная от какого-нить эриксона и заканчивая боингом
О каких ваще возах и о том где они может быть речь — возов нету. Киты капитализма пользуют традиционные императивные языки. Очевидно что за ними будущее. Все остальное — поделки (пардон за резкость изложения ) .
Удачи тебе, браток!
Re[3]: Почему никто не использует функциональные языки
От: Павел Леонов Россия icq: 138726397
Дата: 19.08.04 12:11
Оценка:
Здравствуйте, Курилка, Вы писали:

К>Здравствуйте, Павел Леонов, Вы писали:


ПЛ>>Здравствуйте, Gaperton, Вы писали:


G>>>Эта тема несколько раз поднималась на форуме, но ни до чего серьезного не договорились. Вот, нашел перевод статьи господина Вадлера на эту тему. Хорошо дядька пишет, правильно.


G>>>Почему никто не использует функциональные языки


ПЛ>>Кстати я читал, МС собирается задействовать Haskell в DirectX.


К>Можно линк, если он, конечно, есть


Здесь есть упоминание, линк на сайт МС похоже устарел, надо копать.
Re[4]: Почему никто не использует функциональные языки
От: Павел Леонов Россия icq: 138726397
Дата: 19.08.04 12:23
Оценка:
Здравствуйте, Glоbus, Вы писали:

G>Здравствуйте, Gaperton, Вы писали:


G>>Вот так. Вы все еще кипятите? А мы уже рубим!


G>Не знаю честно говоря че вы там рубите...но вот статистика ясно говорит почсему никто не использует функциональные языки. Пробежался тут для интересу по сайтилам с работой и вот некоторый срез вакансий по ключевым словам


Как срез вакансий отвечает на вопрос "почему"?
Re[4]: ФЯ
От: INTP_mihoshi Россия  
Дата: 19.08.04 12:26
Оценка: 1 (1) +3
Здравствуйте, Glоbus, Вы писали:

G>О каких ваще возах и о том где они может быть речь — возов нету. Киты капитализма пользуют традиционные императивные языки. Очевидно что за ними будущее. Все остальное — поделки (пардон за резкость изложения ) .


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

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