Какие факторы могут определить, наберут ли силу Clojure, Scala или Haskell? - PullRequest
34 голосов
/ 01 сентября 2009

Учитывая, что невозможно заглянуть в будущее, какие факторы, связанные с Clojure, Scala или Haskell, вероятно, определят, захватит ли один из них?

Существуют ли культурные или экономические проблемы, которые могут дать одному из этих языков преимущество перед другими?

Или ни один из этих языков, вероятно, не наберет обороты из-за своей концептуальной сложности?

Ответы [ 9 ]

20 голосов
/ 01 сентября 2009

На моей голове:

  • хорошая поддержка IDE (с рефакторингом)
  • достаточно стабильные характеристики
  • четкая политика о обратной совместимости (с точки зрения источников, двоичных файлов и поведения)
  • фреймворки и инструменты вокруг языка (такие как статический анализ кода, покрытие кода, ...)

Например, Scala все еще развивается и движется «слишком быстро», чтобы «в значительной степени» использоваться, хотя некоторые крупные проекты уже приняли его.


Редактировать: ноябрь 2009

См. Рефакторинг для Scala DSL и LiftOff. Резюме 2009 г. презентация, слайды 10 и 11:

Мартин определенно «понимает», насколько важна поддержка инструментов Scala высокого качества.

17 голосов
/ 01 сентября 2009

В мире Хаскелла я вижу основные вещи, которые нужно продолжать продвигать как:

Кроме того, трудно сказать. Несколько случайных мыслей: Haskell существует уже 20 лет, имеет очень большую базу пользователей и много коммерческой поддержки. Clojure крошечный по сравнению. Scala и Clojure получают «бесплатные очки», работая на .NET или JVM. Это имеет значение? Какое значение имеет время выполнения? GHC имеет очень быструю настраиваемую параллельную среду выполнения, потому что это не JVM, но людям нравится использовать JVM. То же самое для .NET. Имеет ли значение зрелость / стабильность?

И вдобавок ко всему, кто делает лучший охват?

Да, и у нас есть Промышленная группа Haskell .

10 голосов
/ 01 сентября 2009

Я думаю, что для проникновения в Большую лигу (то есть C, C #, C ++, Java) им нужно широкое признание со стороны нескольких крупных компаний , которые занимаются собственной разработкой, но сами по себе не являются программистами . Я думаю о крупных банках, страховых компаниях, сервис-компаниях, управленческих консультациях и т. Д.

Однако в наши дни существует большое препятствие для этого принятия; а именно поддержка , рынок и стабильность . Без поддержки таких крупных компаний, как Sun, IBM или Microsoft, будет очень трудно убедить такие компании, что любой новый язык - это безопасная ставка .

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

3 голосов
/ 01 сентября 2009

Некоторые из этих языков могут легко получить признание в первую очередь в некоммерческой среде с открытым исходным кодом. Более или менее то, что случилось с Perl, Python, Ruby (и некоторыми другими языками).

Простота развертывания программного обеспечения (думаю, apt-get) и свобода программиста способствуют языковому разнообразию в мире открытого исходного кода. Как только часть программного обеспечения становится достаточно важной, язык становится бессмертным с точки зрения поддержки. Раз он бессмертен, это безопасная ставка для всех. Маленькие разработчики будут первыми, и если они получат некоторые преимущества от использования языка, за ними последуют крупные компании.

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

3 голосов
/ 01 сентября 2009

ОК, я сделаю дикое предположение. Я думаю, что для успеха необходим фактор «может ли он выполнять работу Java?».

Реальная вещь, которую делает Java - это статическая типизация. Хотя это раздражает для небольших программ, это позволяет создавать большие стабильные системы. Это позволяет рефакторинг с уверенностью.

Подумайте об этом: каждый язык имеет своего рода программу максимального размера, которую он поддерживает. Чтобы преодолеть этот размер, требуется дизайн и реализация все выше среднего.

В качестве вторичного соображения Java довольно быстр и имеет довольно полную библиотеку.

Итак, я предполагаю, что это критерии, и у Скалы есть шанс.

Единственный минус - сложность запуска дешевых веб-хостов с общим сервером с JVM.

2 голосов
/ 02 сентября 2009

Одним из культурных факторов является то, насколько язык похож на существующие популярные языки. Например, эволюция C -> C ++ -> Java -> C #.

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

2 голосов
/ 01 сентября 2009

Поддержка крупной компанией по разработке программного обеспечения. Посмотрите, что потребовалось Java и C #, чтобы получить, где они находятся. Это то, что понадобится и другим, чтобы попасть туда.

0 голосов
/ 22 декабря 2010

Хаскелл или Руби сметут всех в мире. У Ruby больше шансов на успех, поскольку Haskell сложен и труден для изучения.

Ruby 2.x станет отцом Scala и Clojure. Он будет иметь новую версию с высокой скоростью, удаленным GIL и встроенными модулями для параллельной обработки, функционального программирования, макросов.

Если подумать дальше, в ruby ​​будет создано больше библиотек для различных задач. Это будет сделано после того, как версия 2.X будет поставляться со всеми вышеупомянутыми feechurs.

Я верю Мацу и Антонио !!!!!

C ++, Java, .NET, Python, Scala будут видны в музеях. XXXXX
C, Perl и PHP будут по-прежнему жить для небольших приложений / задач.
MySQL, Oracle, SQLServer также можно увидеть в разделе «db» музея. XXXXX
SQlite, PostgreSQL будет все еще живым снаружи.

Приветствия
Ура человек

0 голосов
/ 09 мая 2010

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

Что касается Scala и Clojure ... У Scala исторически более приемлемый синтаксис. Это излишество. Некоторые могут утверждать, что Clojure имеет макросистему, но макросы явно эквивалентны clojures, поэтому это не является реальным преимуществом.

В любом случае, я считаю, что статически типизированные языки не подходят для всех областей, а именно для веб-разработки. И, что любопытно, в настоящее время существует тенденция делать все на основе Интернета. Я не думаю, что Руби была шумиха: она очень быстро созревает.

...