Какие факторы могут определить, будет ли Clojure, Scala или Haskell получить тягу?

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

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

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

Ответ 1

Наверху:

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

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


Изменить: ноябрь 2009

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

Мартин окончательно "узнает" о важности поддержки высокого качества Scala

Ответ 2

Из мира Хаскелла я вижу, что главное продолжать продолжать:

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

И, помимо всего прочего, кто делает лучший аутрич?

О, и у нас The Industrial Haskell Group.

Ответ 3

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

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

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

Ответ 4

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

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

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

Ответ 5

Хорошо, я буду угадывать. Я думаю, что фактор, необходимый для успеха, - "может ли он работать на Java?".

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

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

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

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

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

Ответ 6

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

Ответ 7

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

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

Ответ 8

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

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

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

Ответ 9

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

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

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

Я считаю, что Мац и Антонио!!!!!

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

Cheers,
Ur man