Каково текущее состояние инструментов для Scala?
За последний год я слышал все больше шумихи по поводу языка Scala. Я знаю, что есть несколько существующих проектов, которые планируют интегрировать поддержку Scala с IDE; однако не всегда ясно, насколько хороша интеграция.
Поддерживают ли они в настоящее время Intellisense так же, как Eclipse и Netbeans для языка Java? Они также поддерживают мгновенную проверку?
6 ответов
Лично я не могу говорить о стабильности плагинов IntelliJ или NetBeans (хотя я слышал хорошие вещи), но Scala IDE для Eclipse совсем недавно выпустила новую версию с Scala 2.7.4. Архитектурно, этот выпуск сильно отличается от предыдущих тем, что использует Equinox Aspect, официально поддерживаемый механизм расширения JDT (и других расширений кросс-плагинов). Если раньше плагину Scala приходилось буквально взламывать внутренности JDT с помощью частных API и рефлексии, чтобы заставить систему вести себя должным образом, то теперь он мог просто объявить свои точки расширения и позволить системе делать все остальное. Трудно даже описать, насколько стабильнее это делает вещи. Я не говорю, что это все еще солнце и розы, но если вы пытались и отвергли плагин в прошлом (как я это сделал), пришло время взглянуть на него по-другому.
Что касается того, как это складывается по функциям, SDT не имеет никакой поддержки рефакторинга (у IntelliJ есть некоторые базовые вещи, такие как "Переименовать"), а также редактор не делает некоторые вещи, такие как "Mark Occurrence". Тем не менее, он имеет значительно лучший Outline, чем NetBeans, лучшую поддержку компилятора, чем IDEA, и очень хорошую семантическую подсветку. Все три плагина поддерживают контентный ассистент (или, как называет Microsoft, "intellisense"), но пока ни один из них не является особенно надежным в этой области. Scala IDE для Eclipse - единственная, которая поддерживает инкрементную компиляцию (инструменты Java от Alla Eclipse).
Мой совет: магазин вокруг. Попробуйте все три и посмотрите, какой из них работает лучше для вас. Из того, что я слышал, Scala IDE для Eclipse перепрыгнул конкуренцию своим последним выпуском, но другие продемонстрировали такую стабильную стабильность и устойчивое продвижение, что вы не можете их еще просто подсчитать.
В настоящее время все три основных IDE находятся примерно на одном уровне поддержки.
- IntelliJ - плагин не работает вообще, но в остальном он довольно хорош. Базовая платформа является вялой (по крайней мере, в Linux), начиная с версии 8.
- Eclipse - плагин получает большую поддержку и находится в стадии активной разработки.
- NetBeans - IMHO, плагин работает немного лучше, чем Eclipse, но невозможность запуска произвольных файлов является серьезным недостатком.
Все вышеперечисленное страдает от невозможности разбора AST во всех контекстах. Например, их легко перепутать, смешивая черты с неявными определениями. Никакой IDE нельзя доверять, когда она сообщает о синтаксической ошибке. Вернитесь к компилятору, чтобы быть уверенным.
Я очень счастлив, используя IntelliJ IDEA 8.1 и его плагин Scala, и могу рекомендовать его. У него даже есть план действий, на который вы можете повлиять, проголосовав за ваши любимые недостающие функции:) У меня, к сожалению, нет опыта поддержки Scala других IDE.
Вот похожий вопрос: Какая среда лучше всего подходит для разработки Scala?
В моем очень коротком опыте работы с Scala IDE для Eclipse и плагином Scala для Netbeans мне показалось, что плагин Netbeans был более надежным, чем Eclipse.
В Scala IDE для Eclipse у меня были проблемы с запуском объекта Scala типа Hello World, и иногда подсветка синтаксиса начинала срабатывать. Затем я опробовал плагин Netbeans, который оказался более функциональным, чем Eclipse.
Я не использовал ни один из плагинов Scala IDE достаточно глубоко, поэтому не могу сказать из большого опыта, но только из моего первоначального впечатления плагин Netbeans казался немного более стабильным, чем Eclipse. один.
Я использую плагин Eclipse Scala. Это довольно хорошо, но не на том же уровне, что и инструментарий Java.
AS для IntelliJ, без понятия. Но между Eclipse и Netbeans я должен сказать Netbeans, особенно если вы не желаете торговать maven за sbt и хотите IDE, которая не мешает maven.
Поддержка NetBeans Maven слишком хороша.
Scala-редактор Netbeans, похоже, тоже неплохо работает. Я забочусь не об интегрированном комплекте разработки Scala в NetBeans, ни о плагине компилятора, ни о каких-либо подобных помощниках. От netbeans я ожидаю только трех вещей: (a) Не мешайте maven и позвольте maven запускать мою сборку (b) Дайте мне достойный редактор (c) Позвольте мне перейти от моих файлов.scala к исходному коду библиотеки, на которые ссылаются мои maven-зависимости.
И я считаю, что Netebeans может неплохо справиться со всеми тремя, даже если иногда это кажется слишком медленным.
Я могу сказать, что (1) вы не столкнетесь с какими-либо проблемами компиляции, так как задача до maven. Плагин компилятора maven слишком медленный. Но компиляция scala vs java всегда такая, болезненная. Тем не менее, если вы попробовали GWT, компиляция java в javascript будет даже более болезненной.
(2) Netbeans безошибочно выясняет исходный код ваших maven-зависимостей, и вы можете углубиться в самые неясные операторы sacala, такие как CSS mappers of lift.
Что касается затмения, интеграция Eclipse Maven всегда была неприятной. Интеграция NetBeans Maven может стать очень плохой, если у вас большой проект со слишком большим количеством зависимостей и модулей. Тогда проверка внешних изменений, выполняемая netbeans, просто ужасно медленная. Это обратная сторона NetBeans.
Однако, если вы и поклонник SBT... ну, может быть, тогда ответ может быть что-то еще.
Но для меня, так как maven стал тем, чем он является сегодня, я никогда не хочу возвращаться снова к тем вариантам "проект веб-приложения", "проект библиотеки" и т. Д., Как в мастере, которые есть у вас при создании нового проекта в IDE. Я просто хочу "проект Maven", и, пожалуйста, выясните, что мой выходной артефакт, читая pom.