Пусть на меня не обижаются приверженцы этих языков, но действительно интересно понять, отчего же, если OCaml, Haskell, SML и пр. насколько хорошие языки, позволяют писать мало кода и получать высокую скорость работы, они все еще не мейнстрим?
Есть у меня подозрение, что универсальность этих языков э... несколько ограничена. Но насколько?
Вирт считал скорость самокомпиляции одним из важнейших критериев оценки качества компилятора. А вот я думаю, а почему бы не взять в качестве критерия оценки универсальности языков программирования наличие IDE, написанных на этом языке? Ведь написание даже текстового редактора -- это уже не простая задача (не зря же GoF использует текстовый процессор для иллюстрации основных паттернов). А уж IDE, в которой текстовый редактор, это только небольшая часть, еще более сложный продукт.
На самом деле, не сложно привести примеры IDE для C++ созданных на C++.
Равно как и IDE для Java на Java.
Как и IDE для Smalltalk на Smalltalk.
Даже на скриптовых языках (вроде Ruby и Python) пишутся IDE (хоть и используются в них C/C++ компоненты вроде Scintilla, FOX, wxWidgets или Qt).
А вот что извесно про IDE для OCaml на самом OCaml? (Cameleon, последняя стабильная версия которого, судя по сайту, вышла в октябре 2003-го).
А для Haskell?
А для SML и других языков ML-группы?
Я знаю про наличие плагинов для Emacs-ов, Vim-ов, Eclipse-ов, jEdit-ов и даже Visual Studio. Только плагины, имхо, это далеко не полноценная реализация IDE.
На самом деле даже я расцениваю этот вопрос не как самый серьезный (изрядная доля шутки в нем есть), но все же...
... << RSDN@Home 1.1.4 stable rev. 510>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, eao197, Вы писали:
E>Пусть на меня не обижаются приверженцы этих языков, но действительно интересно понять, отчего же, если OCaml, Haskell, SML и пр. насколько хорошие языки, позволяют писать мало кода и получать высокую скорость работы, они все еще не мейнстрим?
Что на рынок пропихивается — тем и пользуются. "Мало кода", "скорость" — это все мимо рынка. Даже синтаксис жавы был позаимствован у c/c++ чтоб жаба выглядело не сильно иначе и лучше продавалась.
Здравствуйте, aik, Вы писали:
E>>Пусть на меня не обижаются приверженцы этих языков, но действительно интересно понять, отчего же, если OCaml, Haskell, SML и пр. насколько хорошие языки, позволяют писать мало кода и получать высокую скорость работы, они все еще не мейнстрим?
aik>Что на рынок пропихивается — тем и пользуются. "Мало кода", "скорость" — это все мимо рынка. Даже синтаксис жавы был позаимствован у c/c++ чтоб жаба выглядело не сильно иначе и лучше продавалась.
Рынок в данном случае -- это отмазка. Для Python, Perl и Ruby не было никакой коммерческой поддержки. Тем не менее, они популярны. И IDE для них пишутся, часто силами одиночек-энтузиастов.
... << RSDN@Home 1.1.4 stable rev. 510>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, eao197, Вы писали:
E>>>Пусть на меня не обижаются приверженцы этих языков, но действительно интересно понять, отчего же, если OCaml, Haskell, SML и пр. насколько хорошие языки, позволяют писать мало кода и получать высокую скорость работы, они все еще не мейнстрим? aik>>Что на рынок пропихивается — тем и пользуются. "Мало кода", "скорость" — это все мимо рынка. Даже синтаксис жавы был позаимствован у c/c++ чтоб жаба выглядело не сильно иначе и лучше продавалась. E>Рынок в данном случае -- это отмазка. Для Python, Perl и Ruby не было никакой коммерческой поддержки. Тем не менее, они популярны. И IDE для них пишутся, часто силами одиночек-энтузиастов.
Эти мрачные языки могут только мечтать о популярности Java или VisualBasic. Даже на JavaScript больше лабают.
Разве что Perl тут некоторое исключение, он вовремя появился и занял рынок быстрых парсеров. И то в ASP его не шибко любят и с ростом количества серверов его популярность будет падать.
Здравствуйте, eao197, Вы писали:
aik>>Даже синтаксис жавы был позаимствован у c/c++ чтоб жаба выглядело не сильно иначе и лучше продавалась.
E>Разве Java продавалась?
А C++ продавался? А C# продаётся?
Я думаю, в этом контексте речь идёт об использовании Java девелоперами, что влечёт за собой покупку софта для серверов (ну и по мелочи — средства разработки и т.д.).
Здравствуйте, eao197, Вы писали:
aik>>Даже синтаксис жавы был позаимствован у c/c++ чтоб жаба выглядело не сильно иначе и лучше продавалась. E>Разве Java продавалась?
Конкретно Java компилятор и SDK — нет. А софт, тренинги всякие — еще как.
Здравствуйте, eao197, Вы писали:
E>Навеяно увлеченными рассказами про функциональные языки программирования в темах
E>Пусть на меня не обижаются приверженцы этих языков, но действительно интересно понять, отчего же, если OCaml, Haskell, SML и пр. насколько хорошие языки, позволяют писать мало кода и получать высокую скорость работы, они все еще не мейнстрим?
E>Есть у меня подозрение, что универсальность этих языков э... несколько ограничена. Но насколько?
Вам не кажется, что лучше один раз увидеть, чем 100 раз услышать?
Не проще ли выучить пару таких языков и написать что-нибудь, чтобы попробовать "на зуб"?
Это не агитация, а просто предложение наилучшего способа найти ответ на этот вопрос, который когда-то меня мучил точно так же как вас.
А вот что точно никогда не даст правильного ответа — это голосование какой вкус у устриц среди тех, кто устриц не пробовал.
E>Вирт считал скорость самокомпиляции одним из важнейших критериев оценки качества компилятора. А вот я думаю, а почему бы не взять в качестве критерия оценки универсальности языков программирования наличие IDE, написанных на этом языке? ;) Ведь написание даже текстового редактора -- это уже не простая задача (не зря же GoF использует текстовый процессор для иллюстрации основных паттернов). E>А уж IDE, в которой текстовый редактор, это только небольшая часть, еще более сложный продукт.
Напоминает заседание какого-нибудь вселенского собора 397 года с выяснением стоит ли осуждать монофизитство.
Проголосовали и решили осудить.
Вообще, можно по-другому подходить к вопросу, оценивать языки по тому признаку — нужен ли им IDE.
Тоже неплохо получится.
Молотком можно забить гвоздь, Топором можно забить гвоздь. Пассатижами — тоже. Даже лампочкой можно забить гвоздь!
Но транзистором гвоздь забить нельзя. Поэтому транзистор не универсален.
Здравствуйте, Дарней, Вы писали:
Д>Здравствуйте, _vovin, Вы писали:
_>>Каждая имплементация сразу идет с IDE. Идеологически иначе невозможно, пропадет то самое sea of live objects.
Д>ну вот например ObjectStudio Д>тянет за собой MFC-шные библиотеки, и если посмотреть спаем, то по стилям окон видно, что они написаны на MFC Д> :xz:
VisualWorks
Smalltalk/X
Squeak
Еще вроде Visual Age, но тут не уверен — пару раз видел только.
Но конечно называть то, что идет со смоллтолком IDE — это слишком.
Ну то есть в случае с ним сочетание "Integrated Development Environment" лишено всякого смысла.
Кстати еще забавно указание его в теме про "функциональные" языки. в смоллтолке же лямбда на лямбде сидит и лямбдой погоняет.
он больше функциональный, чем ОО-язык.
Здравствуйте, reductor, Вы писали:
R>Вам не кажется, что лучше один раз увидеть, чем 100 раз услышать? R>Не проще ли выучить пару таких языков и написать что-нибудь, чтобы попробовать "на зуб"?
Нет, не проще. Есть масса вещей, которые хотелось бы знать или уметь. Но выучить их не представляется возможным в силу ограниченного ресурса времени и, прошу, прощения, мозгов. И если у меня есть выбор между изучением Scheme (OCaml, SML, Haskell) или доработкой собственных проектов, то я выберу доработку. Потому что вижу, что это мне даст сейчас и как это может отразиться на мне завтра. Я могу потратить месяц на изучение Scheme и понять, что у меня нет проектов, в которых я могу применять Scheme, либо я могу потратить тот же месяц на доработку, к примеру, RuCodeGen
Фокус в том, чтобы за повседневностью не проморгать появление нового перспективного направления в программировании. И когда внезапно возникает шумиха вокруг очередной серебрянной пули, то становится интересно узнать, какая проба на этой пуле поставлена. Например, простым вопросом: а можно ли на функциональных языках делать IDE?
А что? Вопрос, как вопрос. IDE -- это сложная задача. Раз на конкретном языке ее можно решать, значит язык заслуживает внимания для того, чтобы быть использованным в сравнимых по сложности задачах.
R>А вот что точно никогда не даст правильного ответа — это голосование какой вкус у устриц среди тех, кто устриц не пробовал.
Я не ставлю вопрос о вкусе устриц. Скорее я ставлю вопрос о том, имеет ли смысл вообще заниматься потреблением устриц. Вполне возможно, что полезнее для здоровья и безопаснее для кошелька будет вообще не связываться с этим процессом.
R>Вообще, можно по-другому подходить к вопросу, оценивать языки по тому признаку — нужен ли им IDE. R>Тоже неплохо получится.
Это уже другой вопрос.
IDE -- это пример задачи, которую можно решить с помощью языка программирования. Универсальные языки (т.е. те, которые могут применяться для широкого спектра задач) с этой задачей справляются.
А если язык не универсальный, то совершенно нет уверенности в надобности его изучения. Вот выучу я латынь или суахили. И что? Я же не лингвист, не врач, не организатор туристических туров в Африку. Вот так же и с функциональными языками. Ну может быть они хорошие, может быть очень хорошие. И что? Петь им диферамбы, но работать на C++/Java/C#/Python/Perl/Ruby? Пытаться делать на них проекты, для которых хорошо подходят мейнстримовые технологии? Или же лучше относиться к ним, как к фундаментальной науке: она нужна, она двигает прогресс, но ее занимаются где-то там и результаты до нас доходят спустя время и в очень адаптированном к среднему потребителю виде. И учиться следует не столько тому, как работают монады в Haskell-е или lambda в Scheme, а тому, во что это превращается в обычных универсальных языках. Например, как использовать блоки кода в Ruby, lambda в Python, функторы в C++ или делегаты в C#.
... << RSDN@Home 1.1.4 stable rev. 510>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, aik, Вы писали:
aik>Эти мрачные языки могут только мечтать о популярности Java или VisualBasic.
aik>Даже на JavaScript больше лабают.
Откуда дровишки?
aik>Разве что Perl тут некоторое исключение, он вовремя появился и занял рынок быстрых парсеров. И то в ASP его не шибко любят и с ростом количества серверов его популярность будет падать.
Есть такая платформа HP NonStop (в девичестве Tandem), супер-пупер надежная, супер дорогая и пр., для серьезного бизнеса (банки, биржи, телекоммуникации, AOL и пр.). Посмотри на список софта, который туда спортировали: http://www.itug.org/member/ituglib/user/search.cfm (достаточно просто нажать "I Agree, Begin Search" чтобы получит полный список).
Как не странно, там есть Perl, Python, Ruby и Tcl. Казалось бы, зачем серьезным дядькам из HP заниматься портированием на серьезную платформу для серьезного бизнеса такие мрачные, не популярные, и никому не нужные языки?
... << RSDN@Home 1.1.4 stable rev. 510>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.