Что могли определить факторы, нарастят ли Clojure, Scala или Haskell обороты?

Другим удивительным аспектом является контекст. Факт, который функционирует или даже переменные, ведет себя по-другому в зависимости от того, ссылаются ли на них в списке или скаляре (или пусто), контекст был важной деталью для стажеров Perl.

я обычно настаиваю на "более высоком уровне", созданном в функциях (карта, grep, соединение встык, разделите). Из-за TMTOWTDI многие программисты только помнят более знакомые аспекты Perl (как циклы C-стиля, substr и индекс) и используют исключительно их.

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

33
задан 5 revs, 3 users 100% 1 September 2009 в 13:09
поделиться

8 ответов

В верхней части моей головы:

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

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


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

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

Мартин окончательно» получает это "о важности высококачественной поддержки инструментов Scala

20
ответ дан 27 November 2019 в 18:22
поделиться

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

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

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

10
ответ дан 27 November 2019 в 18:22
поделиться

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

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

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

В качестве второстепенного соображения,

3
ответ дан 27 November 2019 в 18:22
поделиться

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

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

Итак, вопрос, какое сообщество более дружелюбно к открытым исходным текстам (обучение, документация,

3
ответ дан 27 November 2019 в 18:22
поделиться

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

2
ответ дан 27 November 2019 в 18:22
поделиться

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

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

2
ответ дан 27 November 2019 в 18:22
поделиться

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

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

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

О, еще у нас есть The Industrial Haskell Group .

17
ответ дан 27 November 2019 в 18:22
поделиться

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

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

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

0
ответ дан 27 November 2019 в 18:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: