Я был потрясен поводком J2EE в прошлом году и хотел сделать что-то новое после 12 лет работы Java на корпоративном предприятии, создавая очень большую систему для некоторых крупнейших мировых компаний.
В прошлом я пробовал Ruby on Rails. После создания нескольких примеров приложений мне не понравилось ощущение этого или тот факт, что мне пришлось бы написать тонну модульных тестов, чтобы охватить вещи, которые обычно выполняются компилятором.
Groovy на Grails был моим следующим портом захода. Я должен сказать, что мне это нравится, но он страдает от тех же проблем динамической типизации, что и ROR. Не поймите меня неправильно, я не опускаю Grails, потому что это превосходный фреймворк, и я все равно буду его использовать. У каждого свое место ИМО.
Затем я запрыгнул на Scala и теперь создал гибридное приложение на основе Scala и Spring MVC. Поначалу работать со Scala сложно, но это становится проще и продуктивнее, чем больше времени вы вкладываете в него. Я достиг переломного момента, когда теперь хочу потратить время и на Лифт.
Комбинация книг "Программирование в Scala" и книг Дэвида Поллака "Beginning Scala" хороша для изучения языка, последний с меньшей академической склонностью.
Скала все еще молода, и ей есть куда идти. Я думаю, что у него светлое будущее, и я вижу, что импульс уже набирает обороты. Недавно один из создателей языка Groovy сказал в своем блоге, что никогда не потрудился бы проектировать Groovy, если бы Scala существовал в то время.
Я думаю, что дальнейшая работа по улучшению интеграции / упаковки Java API даст Scala импульс, необходимый для завоевания большего числа подписчиков. Базовая интеграция уже есть, но я думаю, что ее можно немного улучшить.
Да. Поддержка IDE есть, но в настоящее время она является базовой. Мощной рефакторинговой поддержки Intellij пока нет, и я очень по ней скучаю. Поддержка компилятора + IDE с набором других плагинов еще не закончена. Иногда я получаю очень странные внутренние ошибки компилятора, вызванные тем, как Scala работает с расширением JDO для механизма приложений Goggle. Однако это мелочи, которые можно легко исправить. Ранняя адаптация новых технологий и языков всегда сопровождается небольшой болью. Но эта боль может принести большое удовольствие в будущем.
Если я посмотрю на возможности Scala по сравнению с ранней Java, то есть впереди. Когда я перешел с C ++ на Java, JVM еще не была готова в отношении масштабируемости. Раньше было много странных сбоев и прожогов дампов ядра JVM в разных ОС. Все это теперь исправлено в Java, и JVM отлично работает. Scals работает в JVM, поэтому он получил огромное преимущество в интеграции с родной платформой. Это стоит на плечах гигантов!
После многих лет создания и поддержки корпоративных приложений я голосую за язык, в котором компилятор может отлавливать большинство нефункциональных ошибок до того, как будут созданы даже модульные тесты. Мне нравится проверка типов в сочетании с мощью функционального программирования. Мне нравится тот факт, что я делаю OO ++.
Я думаю, что сообщество разработчиков решит, будет ли Scala будущим или нет. Недостаток принятия Scala сейчас был бы, если бы он не набирал обороты и адаптацию. Было бы очень трудно поддерживать кодовую базу Scala, когда вокруг очень мало разработчиков Scala. Тем не менее, я наблюдал, как Java пришла от скунса на предприятие, чтобы заменить C ++, и все это было разработано сообществом разработчиков снизу вверх. Время покажет для Scala, но в настоящее время у меня есть мой голос.