Я пытаюсь выяснить популярность scala и сколько пользователей SO фактически используют его на рабочем месте?
Scala, java будущего (?)
Ответ 1
Я уже год использую Scala на работе (финансовая технология) и не хотел бы вообще возвращаться к Java! При первоначальном рассмотрении миграции меня больше всего волновало следующее:
- Поддержка инструментов (что такое IDE?)
- Взаимодействие с существующими библиотеками Java и технологиями сборки (
ant
, Spring, внутренне написанные вещи) - Talent Pool (где я могу найти хороших разработчиков Scala?)
- Время перехода (как долго я пишу хорошую Scala?)
Я обнаружил, что плагин IDEA Scala (для бесплатной версии v9 Community Edition) превосходен: не так хорош, как поддержка Java-инструментов, но, безусловно, достаточно хорош для наших нужд. Он имеет базовый рефакторинг и отладку и отличную подсветку синтаксиса. Мой опыт работы с Eclipse был крайне разочаровывающим: я понял, что Scala 2.8 ожидает значительных улучшений, но я видел недавнее Eclipse по ночам, и это было, честно говоря, ужасно.
Функциональная совместимость с Java является первоклассной - у меня не было никаких проблем, и я все еще интенсивно использую Spring и нашу специальную (основанную на муравьях) систему сборки. Пул разработчиков - это всего лишь соображение для крупной компании со средней текучестью кадров; До сих пор это не было проблемой для нас, и респонденты все равно проявили интерес к использованию Scala.
Возможно, самая большая проблема - это время перехода. Я обнаружил, что для того, чтобы написать что-то разумное, нужно 2 недели, 3 месяца, чтобы начать действительно "понимать", и 6 месяцев - 1 год, чтобы начать использовать функциональные и DSL-стороны Scala. Итак, каковы действительно большие выгоды для меня?
- Вывод типа и co- и встроенная противоположность (код более читабелен и интуитивно понятен - генерики просто работают, в отличие от Java, где это может быть чрезвычайно болезненно)
- Стиль функционального программирования и замыкания (код более читабелен и быстрее пишется)
- Библиотека параллелизма актеров (значительно упрощает параллельное программирование)
Итак, сделаем вывод:
- Scala хороша? Да - это фантастика
- Готово ли оно для реального корпоративного использования? Да, сейчас его используют несколько компаний, в том числе Twitter, Sony и EDF.
- Стоит ли выиграть стоимость усыновления? Да, конечно
Ответ 2
Никто не имеет хрустального шара, и кто-то может придумать что-то лучшее (или что-то хуже с электростанцией за ним) в любое время.
Было много статей, подкастов и т.д. Здесь, на SO, я предлагаю вам прочитать: https://stackoverflow.com/questions/33744/is-scala-the-next-big-thing
Лично я думаю, что Scala является многообещающим, но может не привлекать толпу. Многое использование Java на сегодняшний день вращается вокруг J2EE, и я не вижу, чтобы эти люди делали переход. Для пользователей, не являющихся Java, более известные языки, такие как Python, могут предоставлять все функциональные возможности, которые им нужны, даже за счет использования JVM.
Ответ 3
Я только начал работать с Scala, и я начинаю больше интересоваться финансовой ареной.
Теперь я получаю больше людей/коллег, проявляющих интерес к этому. Многие люди просили меня оставить их в курсе моих успехов. Я не видел такого же уровня интереса к Groovy (или другим языкам JVM, которые выставляют сам Java).
Так что это определенно язык Java de jour, и я думаю, что он имеет больше импульсов, чем что-либо до него на арене Java. Однако, как это происходит, кто-то догадывается, однако!
Ответ 4
Я программировал на Java много лет, а Haskell и OCaml в течение последних двух лет. Несколько месяцев назад я начал разработку личного проекта в Scala, и это замечательно. Система реального типа и все поддерживающие Java библиотеки.
Простота смешивания Java и Scala означает, что язык определенно имеет будущее. Затраты на усыновление для существующего Java-проекта очень низки.
Ответ 5
Я слышал о Scala несколько месяцев назад и был очень рад видеть "лучшую Java, чем Java" для JVM. Scala исправляет ряд проблем Java с раздражающим шаблоном кода, добавляет некоторое функциональное программирование и поддержку параллельного программирования. Он обладает хорошей (хотя и не идеальной) совместимостью с Java-библиотеками, поэтому весь этот код мгновенно доступен. Также возможно смешать Scala с Java и, возможно, с другими языками JVM в одном проекте.
Я попытался изучить Lift (веб-фреймворк) и обнаружил, что я недостаточно умен, чтобы справиться с этим. Синтаксис Scala очень короткий и загадочный в некоторых местах (где Java многословен) и требует некоторого привыкания. Я написал несколько небольших проектов, и они отлично работали; но более крупные проекты не были забавными с полу-адекватной поддержкой плагинов Eclipse, доступных в то время.
Лично я отказался от Scala и перешел на Clojure, который предлагает многие из тех же преимуществ и больше (извините, что был субъективным здесь) "весело" для программирования.
Мой личный вывод: Scala имеет множество функций, забитых в него, что повышает кривую обучения. Это похоже на сложность С++ с синтаксисом Java и конструкциями FP Ruby. Я думаю, что будет трудно убедить отрасль в том, что Scala имеет значительные преимущества перед Java, что достаточно, чтобы оправдать затраты на повторное обучение и переподготовку.
Ответ 6
Не уверен, что эта информация помогает, но я создаю онлайн-игровой сервер для успешной и созданной игровой компании, используя Scala и Project Darkstar.
Наш дизайн предназначен для масштабирования от полумиллиона до десяти миллионов пользователей (спасибо, Amazon EC2!), а Scala дает мне дополнительную уверенность в моем коде по пяти причинам: 1. Я усваиваю больше вещей во время компиляции. 2. Легко сделать большую часть моих игровых данных неизменной. 3. Код более высокого уровня означает, что я с меньшей вероятностью получаю тривиальную ошибку реализации. 4. Более короткий, простой код облегчает мне просмотр и поиск ошибок. Неявные преобразования - большая часть этого. 5. Чем счастливее я пишу код (и Scala обычно делает меня счастливым), тем лучше я делаю.
Scala не является панацеей, и у него появилось много бородавок (а именно, отсутствие какой-либо большой поддержки инструмента), но это, безусловно, самый продуктивный язык, который я мог бы использовать для этой цели.
Моя единственная жалоба заключается в том, что я хотел бы, чтобы она могла скомпилироваться с C или тяжелоассемблером, поскольку ограничения JVM часто раздражают меня (стирание типов, отсутствие типов стека и массивов объектов по значению).
Я не думаю, что Scala настолько популярен, что 2,8-конверсия сильно позади и создала раскол в сообществе, а поддержка инструмента просто отсутствует. Но если вы ковбойский кодер, который не боится теории алгебраического типа и отсутствия автозаполнения, трудно ошибиться.
Если вы решите использовать его, сделайте себе огромную услугу и купите книгу Odersky. Некоторое время я пробовал код Scala без него, и было почти невозможно сделать что-либо "scala" (не консенсус по этому поводу).
Ответ 7
Я слышал о Scala в недавнем соглашении (JavaEdge2009), и все, казалось, вполне убедились, что Scala - отличный язык. Основная идея конференции заключалась в том, что будущее Java - это не просто новый язык программирования JVM, а языки программирования. ЯВЛЯЕТСЯ будущим Java. Поскольку JDK 7 будет поддерживать динамические языки, в которых пророки говорят, что через несколько лет вы будете развиваться на своем родном языке (DSL-Domain Specific Language)
С практической стороны я загрузил плагин Scala Eclipse и был разочарован. Тот факт, что автоматический импорт еще не работает, нарисовал для меня линию с интересного языка на практический язык. Хотя это может показаться немного застенчивым, требуя, поскольку в древние времена для ручного добавления импорта слишком много для меня.