Re[6]: Почему никто не использует функциональные языки
От: Gaperton http://gaperton.livejournal.com
Дата: 20.08.04 09:07
Оценка:
Здравствуйте, Larm, Вы писали:

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


_>>Т. е. что, Вы средства разработки для своих проектов выбираете исключительно исходя из количества вакансий? Ну-ну...


L>Просто найти грамотного специалиста по распространенной технологии гораздо проще, а любителей всякой экзотики типа ФЯ еще поискать надо. Да и малораспространены они, что негативно влияет на имидж языков — реальных проектов на них нифига не написано. Какой вменяемый менеджер поведется на горящие глаза кандидата, который ему расказывает про прелести ФЯ? На фразы, что это быстрее, эффективнее и прочая, прочая? Правильно, никакой. Факты реального успешного применения нужны. Их нет.


Правильнее (и честнее) сказать, что ты их не знаешь.
Ты их не знаешь, [а так как ты видимо думаешь, что знаешь все,] следовательно их нет .

Не самая выгодная позиция, уважаемый. С таким подходом можно больно фейсом об тейбл стукнуться, были бы желающие помочь. Сразу предупреждаю — по причине лени у меня такого желания нет. Тем более, что уже в этой ветке фактов приведено достаточно.
Re[5]: Почему никто не использует функциональные языки
От: Glоbus Украина  
Дата: 20.08.04 09:18
Оценка:
Здравствуйте, Павел Леонов, Вы писали:


ПЛ>Как срез вакансий отвечает на вопрос "почему"?


Я думаю на данном временном интервале связь следующая: по каким-то, не зависящим от нас с вами, товарищ, историческим причинам ФЯ на прижились, ну или опять же — "случайно" получилось, что в своей масса ИТ-индустрия соринтировалась на императивные языки. Теперь же, когда встает вопрос — чем пользоваться начинающие товарищи смотрят на то, чем пользуется киты буржуализма и видят что там фя нет. Единственный вопрос, который остается — почему сложилось так изначально что фя не прижились у владельцкев заводов газет пароходов. Очевидно есть какой-то изъян.
Удачи тебе, браток!
Re: Почему никто не использует функциональные языки
От: Цунцуяби Россия  
Дата: 20.08.04 09:20
Оценка: +1
Что-то Gapertona сильно бьют
в этой ветке

Вроде используют ФЯ :
SQL, например, чем не ФЯ. Специализированный малость.
Re[11]: ФЯ
От: WolfHound  
Дата: 20.08.04 09:43
Оценка:
Здравствуйте, Gaperton, Вы писали:

G> Ваш R# никто не использует не потому, что люди глупы, а по ряду серьезных причин.

Его ни кто не использует по тому что его еще не реализовали
... << RSDN@Home 1.1.4 rev. 142 >>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[6]: Почему никто не использует функциональные языки
От: AndreyFedotov Россия  
Дата: 20.08.04 09:50
Оценка: 4 (1)
Здравствуйте, Glоbus, Вы писали:

G>Я думаю на данном временном интервале связь следующая: по каким-то, не зависящим от нас с вами, товарищ, историческим причинам ФЯ на прижились, ну или опять же — "случайно" получилось, что в своей масса ИТ-индустрия соринтировалась на императивные языки. Теперь же, когда встает вопрос — чем пользоваться начинающие товарищи смотрят на то, чем пользуется киты буржуализма и видят что там фя нет. Единственный вопрос, который остается — почему сложилось так изначально что фя не прижились у владельцкев заводов газет пароходов. Очевидно есть какой-то изъян.

Скорее масса изянов. Например то, как реализуются простейшие операции вроде перебора параметров в списке. И один из самых очевидных — в императивном языке видно — что, как и в какой последовательности делается. А вот в функциональном языке — это совершенно не очевидно. Есть конечно применения — когда это плюс — но гораздо чаще это большой минус.
Re[10]: ФЯ
От: serg_mo  
Дата: 20.08.04 09:57
Оценка: +1
Здравствуйте, Larm, Вы писали:

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


L>Это похоже на завывания плюсовиков по поводу того, что в шарпе нельзя делать некоторые гадости, к которым они привыкли . Давайте отталкиваться от задачи, а не от конкретного решения, ладно? Просто те же задачи решаются другими средствами. Без всяких там lazy evaluations и прочих. Подход другой.


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

У нас же получается, что программист, однажды раз и навсегда выбрав язык, начинает применять его во всех своих проектах. Даже не пытаясь узнать, что, возможно, для данного конкретного проекта более эффективным является другой подход/язык/средство разработки.
... << RSDN@Home 1.1.3 stable >>
Re[6]: Почему никто не использует функциональные языки
От: AndreyFedotov Россия  
Дата: 20.08.04 10:08
Оценка:
Здравствуйте, Larm, Вы писали:

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


_>>Т. е. что, Вы средства разработки для своих проектов выбираете исключительно исходя из количества вакансий? Ну-ну...


L>Просто найти грамотного специалиста по распространенной технологии гораздо проще, а любителей всякой экзотики типа ФЯ еще поискать надо. Да и малораспространены они, что негативно влияет на имидж языков — реальных проектов на них нифига не написано. Какой вменяемый менеджер поведется на горящие глаза кандидата, который ему расказывает про прелести ФЯ? На фразы, что это быстрее, эффективнее и прочая, прочая? Правильно, никакой. Факты реального успешного применения нужны. Их нет.


Ты прав с практической точки зрения, если брать "типичный" проект, "типичного" менеджера и "типичного" кандидата. Но жизнь тем и прекрасна, что разнообразна. Есть места (и области программирования), где ФЯ применяются и весьма успешно даже у нас в стране. Другое дело, что мест, где применяют обычные языки — гораздо больше...
Re[11]: ФЯ
От: AndreyFedotov Россия  
Дата: 20.08.04 10:23
Оценка: +1
Здравствуйте, serg_mo, Вы писали:

_>У нас же получается, что программист, однажды раз и навсегда выбрав язык, начинает применять его во всех своих проектах. Даже не пытаясь узнать, что, возможно, для данного конкретного проекта более эффективным является другой подход/язык/средство разработки.


Верно. Только для полноты картины вспомни о затратах ресурсов на переключение контекста.
Re[7]: Почему никто не использует функциональные языки
От: Sinclair Россия https://github.com/evilguest/
Дата: 20.08.04 10:57
Оценка: 24 (3)
Здравствуйте, AndreyFedotov, Вы писали:
AF> Скорее масса изянов. Например то, как реализуются простейшие операции вроде перебора параметров в списке. И один из самых очевидных — в императивном языке видно — что, как и в какой последовательности делается. А вот в функциональном языке — это совершенно не очевидно. Есть конечно применения — когда это плюс — но гораздо чаще это большой минус.
А я так думаю, что в начале все было до ужаса императивно. Потом из переключения проводов на консоли переехали-таки к программам, хранимым в памяти.
Еще немного, и удалось научить машину парсить мнемоники команд.
Имея в запасе ассемблер, люди придумали процедурное программирование. Язык С был достаточно тонкой оберткой над все теми же инструкциями процессора.
Реализация ФЯ была с самого начала сопряжена с большими затратами. К моменту, когда они попытались попасть в прикладное программирование, сложилось как минимум поколение (а то и не одно) людей, уверенных, что язык общего назначения должен быть императивным. В итоге приживались только те технологии, которые не слишком нарушали эту догму. При этом, что характерно, в узких нишах ФЯ таки сумели прорваться — SQL применяется повсеместно. Как ни странно, оказалось, что императивная обработка данных не устраивает даже ярых противников ФЯ. Кроме того, тут речь идет не о мелких шажках типа порядка вычисления аргументов, а о глобальных оптимизациях. И вот тут-то отсутствие императивности начало рулить со страшной силой, не давая программисту навязать умному серверу свои убогие представления о наилучшем способе получения результата.
... << RSDN@Home 1.1.4 beta 1 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[8]: Почему никто не использует функциональные языки
От: AndreyFedotov Россия  
Дата: 20.08.04 11:05
Оценка: +1
Здравствуйте, Sinclair, Вы писали:

S>А я так думаю, что в начале все было до ужаса императивно. Потом из переключения проводов на консоли переехали-таки к программам, хранимым в памяти.

S>Еще немного, и удалось научить машину парсить мнемоники команд.
S>Имея в запасе ассемблер, люди придумали процедурное программирование. Язык С был достаточно тонкой оберткой над все теми же инструкциями процессора.
S>Реализация ФЯ была с самого начала сопряжена с большими затратами. К моменту, когда они попытались попасть в прикладное программирование, сложилось как минимум поколение (а то и не одно) людей, уверенных, что язык общего назначения должен быть императивным. В итоге приживались только те технологии, которые не слишком нарушали эту догму. При этом, что характерно, в узких нишах ФЯ таки сумели прорваться — SQL применяется повсеместно. Как ни странно, оказалось, что императивная обработка данных не устраивает даже ярых противников ФЯ. Кроме того, тут речь идет не о мелких шажках типа порядка вычисления аргументов, а о глобальных оптимизациях. И вот тут-то отсутствие императивности начало рулить со страшной силой, не давая программисту навязать умному серверу свои убогие представления о наилучшем способе получения результата.
Согласен — всё это безусловно так. Правда отсутствие императивности интересно при взаимодействии со внешеней системой. Например когда делается запрос к БД — совсем не интересно (как правило), что он там делает, что бы его выполнить. А вот при реализации оконного интерфейса — предсказуемость (императивность) необходима. Я это собственно к тому — что эти подходы объединять и дополнять ими друг-друга, а не противопоставлять.
Беда с ФЯ в том, что их апологеты часто пытаются противопоставлять их императивным языкам. В то же время факты показывают, что наиболее успешны или ФЯ с императивными элементами или императивные языки с функиональными элементами (типичный пример связка С++/C# с запросами SQL).
Re[8]: Почему никто не использует функциональные языки
От: Gaperton http://gaperton.livejournal.com
Дата: 20.08.04 11:18
Оценка:
Здравствуйте, AndreyFedotov, Вы писали:

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


G>>Вадлер готовил доклад на конференции по ФЯ. Там людям не надо ничего разжевывать, они и так знают, где софистика, а где нет.

AF> Тогда тем более смешно говорить людям с ТАКОЙ квалификацией, что используется не только C++ но и TCL и что бывают медленные языки, которые распространены больше, чем более быстрые...

Еще смешнее указывать ТАКОМУ специалисту, как Вадлер, о что говорить и о чем молчать, выдергивая его фразы из контекста.

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

G>>Для этого г-н Вадлер привел список литературы в конце. Скопировать сюда, как обычно? Вообще, он предполагает, что читатель немного в курсе последних событий в мире ФП. Это доклад для специалистов, а не рекламная статья. Вы же хотите все и сразу. Нивапрос. Для вас постарался г-н Ульф Вигер http://www.erlang.se/publications/Ulf_Wiger.pdf
AF> Спасибо за ссылки. Но сути дела это не меняет.
Если суть дела в том, что тебе интересно Вадлеру поуказывать, а не получить объяснения, то не меняет. Мне казалось, тебе интересны объяснения.

G>>Искал и смотрел. И рекомендую сделать это вам — в противном случае это вы приводили бы мне ссылки, а не наоборот А что до нейросетей, то эту тему мы уже плотно обсудили в "алгоритмах". Никто так и не привел вменяемого примера промышленного применения, с четким объяснением почему это выгодно, ни удовлетворительного математического обоснования. А AXD swith это где-то 12-17% рынка, если мне не изменяет память. Так что ровнять не надо.

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

И вдобавок, это оффтоп. В Алгоритмы.

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

AF>>> Угу. Ещё 30 лет назад в вузах многих учили основам нейроных сетей. А некоторых даже — как основному методу построения ИИ. Ну и где же засилие нейронных сетей?
G>>Не надо ровнять. Ничего общего с нейросетями.
AF> Это всего лишь Ваша точка зрения. А я как раз вижу очень много общего. Хотя бы то, что ФЯ, ИЯ и НС начали развиваться примерно в одно и тоже время — только вот ИЯ ушли очень далеко вперёд — а ФЯ и НС — применяются весьма ограниченно, хотя в некоторых областях и очень полезны.

Я вижу, это всего лишь моя точка зрения, а вот Вы... Ваша... Это конечно, да!
Навеяло, ничего личного. Вопрос из теста на шизофрению: что общего между наручными часами и многоэтаэным домом?

AF> Вы кажется меня не поняли. Так же как и с арбалетами. Да, ФЯ стали гораздо лучше по сравнению с 60-ми да и думаю по сравнению с 1998 (как современные арбалеты лучше, чем те что были в 14 веке). И я прекрасно знаю, что есть области, где они промышленно применялсь и в 1998. А вот чего не вижу — так это куда они распростарнились с этого времени. Или что бы они распространились значительно в этих областях (по сравнению с тем, что было в 1998 году). Или — что бы позволили достичь чего то нового (чего без них не было). А без этого — говорить о прогрессе в языках — ошибочно.


А мне кажется я прекрасно вас понял. Это вы себя не понимаете.
Говорить о прогрессе в языках можно только рассматривая этот прогресс с некоей точки зрения. Которая четко обозначена у Вадлера, а у вас плывет от письма к письму.

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


Мне кажется, вы не поняли Вадлера, в очередной раз. На "промышленность" технологии ее распространенность напрямую не влияет. Это качественные характеристики технологии и инструментальных средств, а вот они-то и изменились за последние 6 лет. Есть профайлеры, отладчики, есть раздельная компиляция, средства соборки дистрибутивов и развертывания. Есть поддержка, в том числе и коммерческая. Т. е. есть все необходимое для нормальной разработки. Это если в том смысле, как у Вадлера. Это всего лишь я так думаю, когда выбираю технологию для промышленного применения, а вы вольны думать что угодно.
Re[12]: ФЯ
От: Gaperton http://gaperton.livejournal.com
Дата: 20.08.04 11:26
Оценка:
Здравствуйте, WolfHound, Вы писали:

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


G>> Ваш R# никто не использует не потому, что люди глупы, а по ряду серьезных причин.

WH>Его ни кто не использует по тому что его еще не реализовали
Да, это самая серьезная причина из списка
А уже как на людей бросаются — "завывания плюсовиков", "единственный шанс для ФЯ", "качественной декларативности в них добиться не удается". Смешно, право слово.

А что будет, когда реализуют? Страшно подумать.
Re[13]: ФЯ
От: Павел Леонов Россия icq: 138726397
Дата: 20.08.04 11:54
Оценка:
Здравствуйте, Gaperton, Вы писали:

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


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


G>>> Ваш R# никто не использует не потому, что люди глупы, а по ряду серьезных причин.

WH>>Его ни кто не использует по тому что его еще не реализовали
G>Да, это самая серьезная причина из списка
G>А уже как на людей бросаются — "завывания плюсовиков", "единственный шанс для ФЯ", "качественной декларативности в них добиться не удается". Смешно, право слово.

G>А что будет, когда реализуют? Страшно подумать.


Предлагаю не поддаватся на провокации. Давайте жить дружно
Re[7]: Почему никто не использует функциональные языки
От: Gaperton http://gaperton.livejournal.com
Дата: 20.08.04 12:04
Оценка:
Здравствуйте, AndreyFedotov, Вы писали:

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


G>>Я думаю на данном временном интервале связь следующая: по каким-то, не зависящим от нас с вами, товарищ, историческим причинам ФЯ на прижились, ну или опять же — "случайно" получилось, что в своей масса ИТ-индустрия соринтировалась на императивные языки. Теперь же, когда встает вопрос — чем пользоваться начинающие товарищи смотрят на то, чем пользуется киты буржуализма и видят что там фя нет. Единственный вопрос, который остается — почему сложилось так изначально что фя не прижились у владельцкев заводов газет пароходов. Очевидно есть какой-то изъян.

AF> Скорее масса изянов. Например то, как реализуются простейшие операции вроде перебора параметров в списке.

Они, не поверишь, реализуются простейшим образом. В две строки.
transform( [ H | T ], F ) -> [ F( H ) | transform( T, F ) ];
transform( [], _ ) -> [].


Вот и все.

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


В strict языках (Erlang, OCaml) последовательность очевидна всегда. В lazy языках (Haskell, Clean) очевидна только тогда, когда этого хочет программист (т. е. когда это требуется). Нет с этим никаких проблем. Учите матчасть.
Re[8]: Почему никто не использует функциональные языки
От: hrg Россия  
Дата: 20.08.04 12:11
Оценка: +1 -2 :)
Gaperton -> "Re[7]: Почему никто не использует функциональные языки" :

G> Они, не поверишь, реализуются простейшим образом. В две строки.

G>
 G> transform( [ H | T ], F ) -> [ F( H ) | transform( T, F ) ];
 G> transform( [], _ ) -> [].
 G>


G> Вот и все.


(задумчиво) кто-то мне недавно про нечитаемость perl'a говорил

Yury Kopyl aka hrg | http://id.totem.ru | "бысто сп..ил и ушел — называется
нашел..."
Posted via RSDN NNTP Server 1.9 beta
Re[9]: Почему никто не использует функциональные языки
От: Курилка Россия http://kirya.narod.ru/
Дата: 20.08.04 12:18
Оценка: +2
Здравствуйте, hrg, Вы писали:

hrg>Gaperton -> "Re[7]: Почему никто не использует функциональные языки" :


G>> Они, не поверишь, реализуются простейшим образом. В две строки.

G>>
 G>> transform( [ H | T ], F ) -> [ F( H ) | transform( T, F ) ];
 G>> transform( [], _ ) -> [].
 G>>


G>> Вот и все.


hrg>(задумчиво) кто-то мне недавно про нечитаемость perl'a говорил


Вот как человек явно считающий перл нечитаемым скажу, что такая запись вполне читаема, если читатель имеет понятия о том, что такое функциональное программирование
Re[9]: Почему никто не использует функциональные языки
От: Gaperton http://gaperton.livejournal.com
Дата: 20.08.04 12:48
Оценка:
Здравствуйте, AndreyFedotov, Вы писали:

AF> Согласен — всё это безусловно так. Правда отсутствие императивности интересно при взаимодействии со внешеней системой. Например когда делается запрос к БД — совсем не интересно (как правило), что он там делает, что бы его выполнить. А вот при реализации оконного интерфейса — предсказуемость (императивность) необходима. Я это собственно к тому — что эти подходы объединять и дополнять ими друг-друга, а не противопоставлять.

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

Существует только два (относительно новых) чисто функциональных языка, которые в принципе способны обойтись без императивных расширений. Это Haskell (там применяются монады — спасибо, господин Вадлер!) и Clean (там применяется Uniqueness Typing). И эти языки совсем не страдают их отсутствия. При этом код с применением монад и uniqueness typing выглядит императивно, хоть и является по сути функциональным.

AF> Беда с ФЯ в том, что их апологеты часто пытаются противопоставлять их императивным языкам. В то же время факты показывают, что наиболее успешны или ФЯ с императивными элементами или императивные языки с функиональными элементами (типичный пример связка С++/C# с запросами SQL).

Так что не надо рисовать чорный образ апологета ФЯ, который раздувает пламя флейма и ненавидит все императивные проявления.
Re[13]: ФЯ
От: VladD2 Российская Империя www.nemerle.org
Дата: 20.08.04 13:01
Оценка: 1 (1) -3
Здравствуйте, Gaperton, Вы писали:

G>Да, это самая серьезная причина из списка

G>А уже как на людей бросаются — "завывания плюсовиков", "единственный шанс для ФЯ", "качественной декларативности в них добиться не удается". Смешно, право слово.

Смешно слушать твои фанатствующие крики временами перехдящие в открытое хамство
Автор: Gaperton
Дата: 20.08.04
. Прекрасно ведь понимашь, что в современном виде ФЯ просто не пригодны для мэйнстрима.

G>А что будет, когда реализуют? Страшно подумать.


А ты не думай. А то хамство сразу прет и зо всех щелей.
... << RSDN@Home 1.1.4 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[12]: ФЯ
От: serg_mo  
Дата: 20.08.04 14:27
Оценка:
Здравствуйте, AndreyFedotov, Вы писали:

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


AF> Верно. Только для полноты картины вспомни о затратах ресурсов на переключение контекста.


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

А затраты ресурсов чаще всего не такие уж и большие, надо сказать. Сложно только в первый раз
... << RSDN@Home 1.1.3 stable >>
Re: Почему никто не использует функциональные языки
От: ON  
Дата: 20.08.04 14:37
Оценка: 12 (1) -4
Если эти языки такие могучие, что ж их фанаты не в состоянии самим себе IDE написать?
Теоретики, понимаешь, короли мысли. В падлу себе сопли утереть?

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

Еще, зачем я должен переменные таскать из функции в функции, когда можно их объявить глобальными. На мой взгляд императивные языки это и есть доведенные до ума функциональные.
Posted via RSDN NNTP Server 1.9 beta
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.