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