Scala, Java [закрытого] будущего (?)

Я пытаюсь выяснить популярность scala и сколько, ТАКИМ ОБРАЗОМ, пользователи на самом деле используют его на рабочем месте?

28
задан 2 revs, 2 users 83% 5 January 2010 в 09:43
поделиться

7 ответов

Я использую Scala уже год на работе (финансовая технология) и вообще не хотел бы возвращаться на Java! Больше всего меня беспокоило то, что изначально при рассмотрении миграции было:

  • Tool Support (на что похожа IDE?)
  • Interop с существующими библиотеками Java и технологиями сборки (ant, Spring, внутренне написанное)
  • Talent Pool (где я могу найти хороших разработчиков Scala? )
  • Переходное время (как долго я буду писать хороший Scala?)

Я нашел, что плагин Scala от IDEA (на данный момент бесплатная v9 Community Edition) отличный: не так хорош, как поддержка инструментов Java, но определенно достаточно хорош для наших нужд. В нем есть базовый рефакторинг и отладка, а также отличный синтаксис. Мой опыт работы с Eclipse был крайне разочаровывающим: Я понял, что для Scala 2.8 ожидаются большие улучшения, но я видел недавнее Затмение ночью, и это было, честно говоря, ужасно.

Интероперабельность с Java первоклассная - у меня не было никаких проблем, и я до сих пор активно использую Spring и нашу сделанную на заказ (на основе муравьев) билд-систему. Пул разработчиков - это всего лишь соображение для крупной компании с умеренной до высокой текучестью кадров; до сих пор это не было проблемой для нас, и интервьюируемые все равно выразили заинтересованность в использовании Scala.

Возможно, самая большая проблема - это время перехода. Я обнаружил, что это 2 недели, чтобы написать что-нибудь разумное, 3 месяца, чтобы начать действительно "получить это" и 6 месяцев-1 год, чтобы начать использовать функциональную и DSL-стороны Scala. Итак, каковы же на самом деле большие преимущества для меня?

  1. Встроенный типовой вывод и со- и контр-вариант (код более читабельный и интуитивно понятный - дженерики просто работают, в отличие от Java, где это может быть крайне болезненно)
  2. Стиль функционального программирования и его закрытие (код более читабельный и быстрее писать)
  3. Библиотека параллельного программирования акторов (значительно упрощает параллельное программирование)

Итак, в заключение:

  • Скала хороша? Да - это фантастика
  • Готова ли она к реальному использованию enterprise? Да - сейчас его используют многие компании, в том числе Twitter, Sony и EDF
  • Стоит ли выручка от его использования? Да - абсолютно
49
ответ дан 28 November 2019 в 02:48
поделиться

Я только начал работать со Скалой и начинаю видеть больше интереса к финансовой сфере.

Теперь я получаю больше людей/коллег, проявляющих к этому интерес. Многие люди просили меня держать их в курсе моих успехов. Я не видел такого же уровня интереса к Groovy (или другим языкам JVM после Java)

Так что это определенно Java язык de travel, и я думаю, что он имеет больший импульс, чем что-либо до этого на Java арене. Однако, как это продвигается вперед, все догадываются!

4
ответ дан 28 November 2019 в 02:48
поделиться

Я программирую на Java уже много лет, а Haskell и OCaml - последние два года. Несколько месяцев назад я начал разрабатывать персональный проект на Scala, и это замечательно. Настоящая система типов и все библиотеки, поддерживающие Java.

Простота смешивания Java и Scala означает, что у языка определённо есть будущее. Стоимость внедрения существующего Java-проекта очень низкая

.
3
ответ дан 28 November 2019 в 02:48
поделиться

Я слышал о Скале несколько месяцев назад, и был очень рад увидеть "Java лучше, чем Java" для JVM. Scala исправляет ряд проблем Java с раздражающим кодом шаблона, добавляет функциональное программирование и поддержку параллельного программирования. Он имеет хорошую (хотя и не идеальную) совместимость с библиотеками Java, так что весь этот код мгновенно доступен. Также возможно смешивать Scala с Java и, возможно, другими языками JVM в том же проекте.

Я попытался выучить Lift (Web framework) и обнаружил, что не достаточно умен, чтобы справиться с этим. Синтаксис Scala очень лаконичен и загадочен в некоторых местах (где Java - словесный язык) и к нему надо привыкать. Я написал несколько маленьких проектов, и они работали хорошо; но большие проекты не были веселыми с полу-адекватной поддержкой плагинов Eclipse, доступных в то время.

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


Мое личное заключение: В Scala заложено много функций, что увеличивает кривую обучения. Это похоже на сложность Си++ с синтаксисом Java и FP конструкций Ruby. Я думаю, что будет трудно убедить индустрию, что Scala имеет значительные преимущества перед Java, достаточно для того, чтобы оправдать затраты на переоснащение и переобучение.

.
2
ответ дан 28 November 2019 в 02:48
поделиться

Не уверен, поможет ли эта информация, но я создаю игровой онлайн-сервер для успешной и признанной игровой компании, используя Scala и Project Darkstar.

Наш дизайн рассчитан на полмиллиона - десять миллионов пользователей (спасибо, Amazon EC2!), и Scala дает мне дополнительное доверие к моему коду по пяти причинам: 1. Я ловлю больше вещей во время компиляции. 2. Легко сделать большую часть моих игровых данных неизменной. 3. Код более высокого уровня означает, что у меня меньше шансов получить тривиальную ошибку реализации. 4. Более короткий и простой код облегчает мне просмотр и поиск ошибок. Неявные преобразования - большая часть этого. 5. Чем счастливее я пишу код (а Scala в целом делает меня счастливее), тем лучше я делаю свою работу.

Scala - это не панацея, и в ней много бородавок (а именно, отсутствие какой-либо отличной поддержки инструментов). Но это, безусловно, самый продуктивный язык, который я мог бы использовать для этой цели.

Моя единственная жалоба в том, что я хотел бы, чтобы он мог компилироваться вплоть до C или сильно макрособирать, так как ограничения JVM часто меня раздражают (стирание типов, отсутствие типов стека и би-значения массивов объектов).

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

Если вы все-таки решили им воспользоваться, сделайте себе огромное одолжение и купите книгу Одерского. Какое-то время я пытался кодировать на Scala без нее, и сделать что-либо "скала-путь" было практически невозможно (не то, чтобы в этом был консенсус)

.
2
ответ дан 28 November 2019 в 02:48
поделиться

Я слышал о Скала на одной из недавних конвенций (JavaEdge2009), и все, казалось, были вполне убеждены, что Скала - отличный язык. Основной темой конференции было то, что будущее Java - это не просто новый язык программирования JVM, а скорее языки программирования ARE будущего Java. Поскольку в JDK 7 будет встроена поддержка динамических языков, пророки говорят, что через несколько лет вы будете развиваться на собственном языке (DSL - Domain Specific Language)

С практической точки зрения, я скачал плагин Scala Eclipse и был разочарован. Тот факт, что автоматический импорт еще не работает, нарисовал для меня черту из интересного языка в практический. Хотя это может звучать немного нытье, быть необходимым, как в древние времена, чтобы вручную добавлять импорт слишком много для меня.

1
ответ дан 28 November 2019 в 02:48
поделиться

Ни у кого нет хрустального шара, и кто-нибудь может придумать что-нибудь получше (или что-то похуже, за которым стоит электростанция) в любое время.

Было много статей, подкастов и т. Д. Здесь, на SO, я предлагаю вам прочитать: https://stackoverflow.com/questions/33744/is-scala-the-next-big-thing

Лично я думаю, что Scala многообещающая, но может не когда-либо привлекать толпу. Большая часть производственного использования Java сегодня вращается вокруг J2EE, и я не вижу, чтобы эти люди сделали переход. Для пользователей, не использующих Java, более устоявшиеся языки, такие как Python, могут предоставлять все необходимые им функциональные возможности даже за счет отказа от использования JVM.

6
ответ дан 28 November 2019 в 02:48
поделиться
Другие вопросы по тегам:

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