Здравствуйте, Larm, Вы писали:
L>Здравствуйте, serg_mo, Вы писали:
_>>Т. е. что, Вы средства разработки для своих проектов выбираете исключительно исходя из количества вакансий? Ну-ну...
L>Просто найти грамотного специалиста по распространенной технологии гораздо проще, а любителей всякой экзотики типа ФЯ еще поискать надо. Да и малораспространены они, что негативно влияет на имидж языков — реальных проектов на них нифига не написано. Какой вменяемый менеджер поведется на горящие глаза кандидата, который ему расказывает про прелести ФЯ? На фразы, что это быстрее, эффективнее и прочая, прочая? Правильно, никакой. Факты реального успешного применения нужны. Их нет.
Правильнее (и честнее) сказать, что ты их не знаешь.
Ты их не знаешь, [а так как ты видимо думаешь, что знаешь все,] следовательно их нет .
Не самая выгодная позиция, уважаемый. С таким подходом можно больно фейсом об тейбл стукнуться, были бы желающие помочь. Сразу предупреждаю — по причине лени у меня такого желания нет. Тем более, что уже в этой ветке фактов приведено достаточно.
Re[5]: Почему никто не использует функциональные языки
Я думаю на данном временном интервале связь следующая: по каким-то, не зависящим от нас с вами, товарищ, историческим причинам ФЯ на прижились, ну или опять же — "случайно" получилось, что в своей масса ИТ-индустрия соринтировалась на императивные языки. Теперь же, когда встает вопрос — чем пользоваться начинающие товарищи смотрят на то, чем пользуется киты буржуализма и видят что там фя нет. Единственный вопрос, который остается — почему сложилось так изначально что фя не прижились у владельцкев заводов газет пароходов. Очевидно есть какой-то изъян.
Удачи тебе, браток!
Re: Почему никто не использует функциональные языки
Здравствуйте, Gaperton, Вы писали:
G> Ваш R# никто не использует не потому, что люди глупы, а по ряду серьезных причин.
Его ни кто не использует по тому что его еще не реализовали
... << RSDN@Home 1.1.4 rev. 142 >>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[6]: Почему никто не использует функциональные языки
Здравствуйте, Glоbus, Вы писали:
G>Я думаю на данном временном интервале связь следующая: по каким-то, не зависящим от нас с вами, товарищ, историческим причинам ФЯ на прижились, ну или опять же — "случайно" получилось, что в своей масса ИТ-индустрия соринтировалась на императивные языки. Теперь же, когда встает вопрос — чем пользоваться начинающие товарищи смотрят на то, чем пользуется киты буржуализма и видят что там фя нет. Единственный вопрос, который остается — почему сложилось так изначально что фя не прижились у владельцкев заводов газет пароходов. Очевидно есть какой-то изъян.
Скорее масса изянов. Например то, как реализуются простейшие операции вроде перебора параметров в списке. И один из самых очевидных — в императивном языке видно — что, как и в какой последовательности делается. А вот в функциональном языке — это совершенно не очевидно. Есть конечно применения — когда это плюс — но гораздо чаще это большой минус.
Здравствуйте, Larm, Вы писали:
L>Здравствуйте, Gaperton, Вы писали:
L>Это похоже на завывания плюсовиков по поводу того, что в шарпе нельзя делать некоторые гадости, к которым они привыкли . Давайте отталкиваться от задачи, а не от конкретного решения, ладно? Просто те же задачи решаются другими средствами. Без всяких там lazy evaluations и прочих. Подход другой.
На самом деле, любую задачу можно решить разными средствами, разными подходами и т. д.
Вопрос в том, какой подход/средство является наиболее эффективным (для конкретной задачи).
У нас же получается, что программист, однажды раз и навсегда выбрав язык, начинает применять его во всех своих проектах. Даже не пытаясь узнать, что, возможно, для данного конкретного проекта более эффективным является другой подход/язык/средство разработки.
... << RSDN@Home 1.1.3 stable >>
Re[6]: Почему никто не использует функциональные языки
Здравствуйте, Larm, Вы писали:
L>Здравствуйте, serg_mo, Вы писали:
_>>Т. е. что, Вы средства разработки для своих проектов выбираете исключительно исходя из количества вакансий? Ну-ну...
L>Просто найти грамотного специалиста по распространенной технологии гораздо проще, а любителей всякой экзотики типа ФЯ еще поискать надо. Да и малораспространены они, что негативно влияет на имидж языков — реальных проектов на них нифига не написано. Какой вменяемый менеджер поведется на горящие глаза кандидата, который ему расказывает про прелести ФЯ? На фразы, что это быстрее, эффективнее и прочая, прочая? Правильно, никакой. Факты реального успешного применения нужны. Их нет.
Ты прав с практической точки зрения, если брать "типичный" проект, "типичного" менеджера и "типичного" кандидата. Но жизнь тем и прекрасна, что разнообразна. Есть места (и области программирования), где ФЯ применяются и весьма успешно даже у нас в стране. Другое дело, что мест, где применяют обычные языки — гораздо больше...
Здравствуйте, serg_mo, Вы писали:
_>У нас же получается, что программист, однажды раз и навсегда выбрав язык, начинает применять его во всех своих проектах. Даже не пытаясь узнать, что, возможно, для данного конкретного проекта более эффективным является другой подход/язык/средство разработки.
Верно. Только для полноты картины вспомни о затратах ресурсов на переключение контекста.
Re[7]: Почему никто не использует функциональные языки
Здравствуйте, AndreyFedotov, Вы писали: AF> Скорее масса изянов. Например то, как реализуются простейшие операции вроде перебора параметров в списке. И один из самых очевидных — в императивном языке видно — что, как и в какой последовательности делается. А вот в функциональном языке — это совершенно не очевидно. Есть конечно применения — когда это плюс — но гораздо чаще это большой минус.
А я так думаю, что в начале все было до ужаса императивно. Потом из переключения проводов на консоли переехали-таки к программам, хранимым в памяти.
Еще немного, и удалось научить машину парсить мнемоники команд.
Имея в запасе ассемблер, люди придумали процедурное программирование. Язык С был достаточно тонкой оберткой над все теми же инструкциями процессора.
Реализация ФЯ была с самого начала сопряжена с большими затратами. К моменту, когда они попытались попасть в прикладное программирование, сложилось как минимум поколение (а то и не одно) людей, уверенных, что язык общего назначения должен быть императивным. В итоге приживались только те технологии, которые не слишком нарушали эту догму. При этом, что характерно, в узких нишах ФЯ таки сумели прорваться — SQL применяется повсеместно. Как ни странно, оказалось, что императивная обработка данных не устраивает даже ярых противников ФЯ. Кроме того, тут речь идет не о мелких шажках типа порядка вычисления аргументов, а о глобальных оптимизациях. И вот тут-то отсутствие императивности начало рулить со страшной силой, не давая программисту навязать умному серверу свои убогие представления о наилучшем способе получения результата.
... << RSDN@Home 1.1.4 beta 1 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[8]: Почему никто не использует функциональные языки
Здравствуйте, Sinclair, Вы писали:
S>А я так думаю, что в начале все было до ужаса императивно. Потом из переключения проводов на консоли переехали-таки к программам, хранимым в памяти. S>Еще немного, и удалось научить машину парсить мнемоники команд. S>Имея в запасе ассемблер, люди придумали процедурное программирование. Язык С был достаточно тонкой оберткой над все теми же инструкциями процессора. S>Реализация ФЯ была с самого начала сопряжена с большими затратами. К моменту, когда они попытались попасть в прикладное программирование, сложилось как минимум поколение (а то и не одно) людей, уверенных, что язык общего назначения должен быть императивным. В итоге приживались только те технологии, которые не слишком нарушали эту догму. При этом, что характерно, в узких нишах ФЯ таки сумели прорваться — SQL применяется повсеместно. Как ни странно, оказалось, что императивная обработка данных не устраивает даже ярых противников ФЯ. Кроме того, тут речь идет не о мелких шажках типа порядка вычисления аргументов, а о глобальных оптимизациях. И вот тут-то отсутствие императивности начало рулить со страшной силой, не давая программисту навязать умному серверу свои убогие представления о наилучшем способе получения результата.
Согласен — всё это безусловно так. Правда отсутствие императивности интересно при взаимодействии со внешеней системой. Например когда делается запрос к БД — совсем не интересно (как правило), что он там делает, что бы его выполнить. А вот при реализации оконного интерфейса — предсказуемость (императивность) необходима. Я это собственно к тому — что эти подходы объединять и дополнять ими друг-друга, а не противопоставлять.
Беда с ФЯ в том, что их апологеты часто пытаются противопоставлять их императивным языкам. В то же время факты показывают, что наиболее успешны или ФЯ с императивными элементами или императивные языки с функиональными элементами (типичный пример связка С++/C# с запросами SQL).
Re[8]: Почему никто не использует функциональные языки
Здравствуйте, 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 лет. Есть профайлеры, отладчики, есть раздельная компиляция, средства соборки дистрибутивов и развертывания. Есть поддержка, в том числе и коммерческая. Т. е. есть все необходимое для нормальной разработки. Это если в том смысле, как у Вадлера. Это всего лишь я так думаю, когда выбираю технологию для промышленного применения, а вы вольны думать что угодно.
Здравствуйте, WolfHound, Вы писали:
WH>Здравствуйте, Gaperton, Вы писали:
G>> Ваш R# никто не использует не потому, что люди глупы, а по ряду серьезных причин. WH>Его ни кто не использует по тому что его еще не реализовали
Да, это самая серьезная причина из списка
А уже как на людей бросаются — "завывания плюсовиков", "единственный шанс для ФЯ", "качественной декларативности в них добиться не удается". Смешно, право слово.
Здравствуйте, Gaperton, Вы писали:
G>Здравствуйте, WolfHound, Вы писали:
WH>>Здравствуйте, Gaperton, Вы писали:
G>>> Ваш R# никто не использует не потому, что люди глупы, а по ряду серьезных причин. WH>>Его ни кто не использует по тому что его еще не реализовали G>Да, это самая серьезная причина из списка G>А уже как на людей бросаются — "завывания плюсовиков", "единственный шанс для ФЯ", "качественной декларативности в них добиться не удается". Смешно, право слово.
G>А что будет, когда реализуют? Страшно подумать.
Предлагаю не поддаватся на провокации. Давайте жить дружно
Re[7]: Почему никто не использует функциональные языки
Здравствуйте, 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, Вы писали:
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]: Почему никто не использует функциональные языки
Здравствуйте, AndreyFedotov, Вы писали:
AF> Согласен — всё это безусловно так. Правда отсутствие императивности интересно при взаимодействии со внешеней системой. Например когда делается запрос к БД — совсем не интересно (как правило), что он там делает, что бы его выполнить. А вот при реализации оконного интерфейса — предсказуемость (императивность) необходима. Я это собственно к тому — что эти подходы объединять и дополнять ими друг-друга, а не противопоставлять.
Ты опоздал со своим предложением лет на 40. Со времени появления лиспа, который допускает побочные эффекты, все ФЯ всегда содержали императивные возможности. Иначе они не смогли бы выполнять ввод-вывод и взаимодействовать с внешним миром.
Существует только два (относительно новых) чисто функциональных языка, которые в принципе способны обойтись без императивных расширений. Это Haskell (там применяются монады — спасибо, господин Вадлер!) и Clean (там применяется Uniqueness Typing). И эти языки совсем не страдают их отсутствия. При этом код с применением монад и uniqueness typing выглядит императивно, хоть и является по сути функциональным.
AF> Беда с ФЯ в том, что их апологеты часто пытаются противопоставлять их императивным языкам. В то же время факты показывают, что наиболее успешны или ФЯ с императивными элементами или императивные языки с функиональными элементами (типичный пример связка С++/C# с запросами SQL).
Так что не надо рисовать чорный образ апологета ФЯ, который раздувает пламя флейма и ненавидит все императивные проявления.
Здравствуйте, Gaperton, Вы писали:
G>Да, это самая серьезная причина из списка G>А уже как на людей бросаются — "завывания плюсовиков", "единственный шанс для ФЯ", "качественной декларативности в них добиться не удается". Смешно, право слово.
Смешно слушать твои фанатствующие крики временами перехдящие в открытое хамство
Здравствуйте, AndreyFedotov, Вы писали:
AF>Здравствуйте, serg_mo, Вы писали:
AF> Верно. Только для полноты картины вспомни о затратах ресурсов на переключение контекста.
Ну, вообще-то самосовершенствование в любом аспекте (и не только в профессиональной области) требует усилий. Тем не менее, это же не повод почивать на лаврах, начав писать на С++ в институте и до гробовой доски, не замечая ничего вокруг.
А затраты ресурсов чаще всего не такие уж и большие, надо сказать. Сложно только в первый раз
... << RSDN@Home 1.1.3 stable >>
Re: Почему никто не использует функциональные языки
Если эти языки такие могучие, что ж их фанаты не в состоянии самим себе IDE написать?
Теоретики, понимаешь, короли мысли. В падлу себе сопли утереть?
Как хотите, а мне написание ФЯ упорно напоминает программирование на ассемблере. Все так же компактно. Так же сидя перед отдыхающим компьютером нужно свои мозги насиловать.
Еще, зачем я должен переменные таскать из функции в функции, когда можно их объявить глобальными. На мой взгляд императивные языки это и есть доведенные до ума функциональные.