Какие инструменты вы, люди, используете для работы со Scala? Для фазы обучения я использовал Scala REPL, взломал код с TextMate и скомпилировал его с помощью scalac
CLI. Но по мере роста проектов требуются все более сложные инструменты.
Мне известны плагины Scala для Elipse, IntelliJ и Netbeans, и я попробовал их все. Лучший из них - IMHO IntelliJ, но все еще далек от совершенства.
Основная проблема, с которой я столкнулся, - это отсутствие автозаполнения. Как не очень продвинутый Scala-кодер, я до сих пор не знаю всего стандартного API и вынужден регулярно переключаться между Scaladoc и IDE. Это похоже на «убийственную производительность». Но все они не могут автоматически заполнить аргументы метода. (Я слышал, что аргументы метода не включены в скомпилированный scala-код, но как насчет того, чтобы присоединить источник для автоматического завершения?)
Другая очень раздражающая проблема - это процесс сборки. Я использую Maven для создания своих проектов Scala и управления их зависимостями. Но, тем не менее, я должен сделать полную перестройку, чтобы проверить мои изменения. Возможно, меня избаловала инкрементная перестройка Eclipses, доступная в мире Java, но мне кажется, что это большая проблема.
Мне очень нравится Scala, и я чувствую гораздо более продуктивным при кодировании, но отсутствие сложных инструментов позволяет мне чувствовать себя менее продуктивным. И оба, похоже, сами себя компенсируют.
Итак, какой у меня вопрос? Я сомневаюсь, что каждый программист Scala использует добрые vim
или emacs
вместе с scalac
для выполнения своей работы. Так какие инструменты вы используете? Какие рабочие процессы вы разработали для ускорения разработки на языке Scala?
Редактировать
Уточнение с помощью автозаполнения аргументов метода.
val myList = "foo" :: "all your base" :: Nil
myList.partition(_.length > 3)
В приведенном выше коде IntelliJ не предоставил мне информацию, которая требуется для раздела, чтобы я передал функцию () => Boolean
. На самом деле IntelliJ не проверяет это противоречие. Я могу передать String
, и IntelliJ не покажет мою ошибку, пока я не выполню компиляцию.