Каково текущее состояние инструментов для Scala? - PullRequest
3 голосов
/ 28 апреля 2009

За последний год я слышал все больше шумихи по поводу языка Скала. Я знаю, что есть несколько существующих проектов, которые планируют интегрировать поддержку Scala с IDE; однако не всегда ясно, насколько хороша интеграция.

Поддерживают ли они в настоящее время Intellisense, а также Eclipse и Netbeans для языка Java? Они также поддерживают мгновенную проверку?

Ответы [ 6 ]

5 голосов
/ 28 апреля 2009

Я не могу лично говорить о стабильности плагинов 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 перепрыгнул конкуренцию своим последним выпуском, но другие продемонстрировали такую ​​стабильную стабильность и постоянное продвижение, что вы не можете их еще просто подсчитать.

3 голосов
/ 05 мая 2009

Я очень счастлив, используя IntelliJ IDEA 8.1 и его плагин Scala , и могу рекомендовать его. У него даже есть план , на который вы можете повлиять, проголосовав за ваши любимые отсутствующие функции :) У меня нет опыта поддержки Scala других IDE, к сожалению.

3 голосов
/ 28 апреля 2009

В настоящее время все три основных IDE имеют примерно одинаковый уровень поддержки.

  • IntelliJ - плагин совсем не работает, но в остальном он достаточно хорош. Базовая платформа является вялой (по крайней мере, в Linux), начиная с v8.
  • Eclipse - плагин получает большую поддержку и находится в стадии активной разработки.
  • NetBeans - IMHO, плагин работает немного лучше, чем Eclipse, но неспособность запускать произвольные файлы является серьезным недостатком.

Все вышеперечисленное страдает от невозможности разбора AST во всех контекстах. Например, их легко перепутать, смешивая черты с неявными определениями. Никакой IDE нельзя доверять, когда она сообщает о синтаксической ошибке. Вернитесь к компилятору, чтобы быть уверенным.

3 голосов
/ 28 апреля 2009

Вот похожий вопрос: Какая среда лучше всего подходит для разработки Scala?

В моем очень коротком опыте работы с Scala IDE для Eclipse и Плагином Scala для Netbeans мне показалось, что плагин Netbeans был немного более надежным, чем Eclipse .

В Scala IDE для Eclipse у меня были проблемы с запуском объекта Scala типа Hello World, и иногда подсветка синтаксиса начинала срабатывать. Затем я опробовал плагин Netbeans, который оказался более функциональным, чем Eclipse.

Я не использовал ни один из плагинов Scala IDE достаточно глубоко, поэтому я не могу сказать из большого опыта, но только из моего первоначального впечатления плагин Netbeans казался немного более стабильным чем «Затмение».

0 голосов
/ 15 февраля 2015

КАК для intelliJ, понятия не имею. Но между Eclipse и Netbeans я должен сказать Netbeans, особенно если вы не желаете торговать maven за sbt и хотите IDE, которая не мешает maven.

Поддержка NetBeans maven слишком хороша.

Кажется, что редактор Scala Netbeans работает довольно хорошо. Я забочусь не о встроенном комплекте разработки Scala в NetBeans, ни о плагине компилятора, ни о каких-либо подобных помощниках. От NetBeans я ожидаю только три вещи: (а) Не мешай мавену и дай мавену запустить мою сборку (б) Дайте мне достойного редактора (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.

0 голосов
/ 28 апреля 2009

Я использую плагин Eclipse Scala. Это довольно хорошо, но не на том же уровне, что и инструменты Java.

...