Какая IDE для Scala 2.8? - PullRequest
       65

Какая IDE для Scala 2.8?

40 голосов
/ 11 апреля 2010

Этот является тем же вопросом для старой версии Scala, но говорят, что плагин Eclipse был значительно улучшен. Это лучший IDE сейчас? Чем отличается Scala IDE сегодня?

Ответы [ 16 ]

26 голосов
/ 11 апреля 2010

Я был довольно успешен с IDEA 9. Я кратко попробовал и Netbeans, и Eclipse и не смог получить то, что хотел. Полный код Eclipse не вел себя так, как мне бы хотелось, и я не мог найти способ заставить Netbeans обрабатывать скрипты Scala; Было бы просто жаловаться, что файл не был классом.

Чтобы было ясно, я уже несколько лет использую IDEA для Java, так что имейте это в виду:)

13 голосов
/ 12 апреля 2010

На данный момент плагин Scala в IntelliJ IDEA является лучшим. Хорошо справляется со Scala 2.8. IntelliJ IDEA Community Edition теперь является бесплатным и открытым исходным кодом (и работает со Scala), поэтому я не вижу причин, по которым он не используется.

Плагин все еще несколько глючит (многие "ложные отрицания", то есть код без красных подчеркиваний могут не скомпилироваться успешно, но почти без "ложных срабатываний"), но вполне пригодные к использованию Лучше всего то, что вы можете использовать отличный отладчик IDEA со Scala (не без каких-либо проблем, но на самом деле он работает!).

FSC (быстрый компилятор Scala) также поддерживается в последних сборках. Огромная экономия времени.

Команда разработчиков плагинов довольно отзывчива. Некоторые из них работают непосредственно в JetBrains и обладают глубокими знаниями о платформе IDEA, поэтому разработка идет быстро.

8 голосов
/ 11 апреля 2010

Модуль JetBrains IDEA Scala одинаково хорошо справляется с 2.7 и 2.8.

Я не могу сравнивать, потому что я использовал только IDEA.

6 голосов
/ 11 сентября 2010

Использование Eclipse Helios с dev-версией нового плагина Scala (2.8), так как пока нет официального релиза.То, что - это бета, определенно - но я не могу подтвердить часто высказываемое мнение, что этот плагин просто ужасен; -)

Я бы сказал, что опыт уже нормальный.И действительно лучше, чем текущее состояние плагина Groovy.OTOH, опыт работы с простой Java гораздо более плавный (время от времени кажется летающим), и текущий CDT, который я бы оценил в некоторой степени между ними.

Инкрементная компиляция и выделение ошибок работают для меня довольно хорошо;адаптировать реализацию DSL к форме, просто непрерывно переписывая код до тех пор, пока не исчезнут маркеры ошибок - без необходимости тестового запуска программы - это просто весело и просто еще раз показывает, что FP / статическая типизация рушится!

Проблемы, возникающие время от времени: - имплициты и вложенные типы в других единицах компиляции (особенно во вложенных / суперпакетах) не обнаруживаются время от времени, когда существуют другие ошибки;они будут обнаружены после полной сборки - в версии, которую я использую сейчас (с конца августа 2010 г.), похоже, произошла утечка памяти, что потребовало перезапустить рабочую среду после нескольких часов работы - будьте осторожны при использованииAspectJ, чтобы убедиться, что вы получаете версию плагина Scala, основанную на версии JDT, которая также работает с AJDT

PS: я использую сборки maven во всех моих проектах и ​​генерирую проекты eclipse сeclipse-maven-plugin, а затем импортировать их как простые плоские проекты затмения.Я просто настоятельно рекомендую всем держаться подальше от плагина M2-eclipse (для maven) в его текущем состоянии (2010), это делает вашу рабочую среду мучительно медленной, содержит ошибки и имеет много почти непредсказуемого поведения, потому что постоянно пытается сделатьзакулисные магические вещи (и, кроме того, поддержка aspectj не работает с этой весны)

5 голосов
/ 25 января 2011

я использую и Eclipse, и IDEA

  1. Eclipse поддерживает обнаружение типа лучше, чем идея (это очень необходимая вещь, если вы хотите программу в функциональном стиле, которым вы можете быть известно из типа выражений и переменных.)


    Edit1 : IDEA поддерживает определение типа, например, затмение, но у вас есть определить значение в ваших функциях например: def testTs[A](a:List[String],b:List[A]) = for{ ai <- a bi <- b } yield (ai,bi) } должен быть преобразован в def testTs[A](a:List[String],b:List[A]):List[(String,A)]={ val result = for{ ai <- a bi <- b } yield (ai,bi) }, также вместо того, чтобы навести указатель мыши на переменные, вы должны нажать ctrl + q, когда ваша мышь наводит указатель на эту переменную

  2. Затмения имеют некоторые проблемы в коде завершение (когда вы используете переменную в следующей строке, и вы хотите получить свойство этой переменной затмения показывать неправильные подсказки кода)
  3. в IDEA, разрушающей приложение scala на 5 секунд медленнее, чем затмение (есть некоторое решение для времени запуска бюста IDEA, но у них есть побочный эффект, есть некоторые проблемы) в идеале существует хорошо известная проблема со скоростью двойного щелчка, которая проявляется во многих случаях, например, при открытии файла или выборе строки в источнике ... вы можете увеличить время ожидания двойного щелчка, создав (или отредактировав) /home/.Xresources и добавить эту строку: *.multiClickTime: 400

Edit1: летом я предпочитаю использовать IDEA, а не затмение

4 голосов
/ 25 мая 2012

Я думаю, что пока лучший вариант - это ScalaIDE для Eclipse. Вы можете зайти на веб-сайт ScalaIDE и осмотреться, чтобы убедиться в этом. http://scala -ide.org /

Сильные стороны, которые я вижу по этому поводу:

  • документация,
  • учебные пособия,
  • постоянные выпуски,
  • поддержка от Typesafe.

Ниже приведено краткое описание основных функций:

Scala IDE обеспечивает поддержку разработки приложений Scala на платформе Eclipse. Его основная цель - поддержка языка Scala и интеграция с инструментами Eclipse Java. Он предоставляет многие функции, которые пользователи Eclipse ожидают, в том числе:

  • Поддержка смешанных проектов Scala / Java и любой комбинации зависимостей проекта Scala / Java. Управляемые типом операции прозрачны для файлов и проектов Scala и Java, что позволяет выполнять прямые ссылки из Scala на Java и наоборот.
  • Редактор Scala с подсветкой синтаксиса, предполагаемым типом, гиперссылкой на определения, завершением кода, маркерами ошибок и предупреждений, отступом, сопоставлением скобок.
  • Навигация по проекту и исходному коду, включая поддержку Scala в представлении Package Explorer со встроенным контуром, контурным представлением, быстрым контуром, открытым типом, открытой иерархией типов.
  • Инкрементная компиляция, запуск приложений со встроенным отладчиком, гиперссылка из трассировки стека на исходный код Scala, интерактивная консоль.
  • Поддержка плагинов Eclipse и разработки OSGi, включая гиперссылку на исходный код Scala из plugin.xml и файлов манифеста.

ОБНОВЛЕНИЕ: функции и преимущества, упомянутые в этом ответе, относятся к Scala версии 2.9 и 2.10, поскольку оно уже прекращено. смотрите здесь:

"Релиз 2.0.1 доступен только для Scala 2.9, если вы хотите использовать Scala IDE с Scala 2.8, пожалуйста, установите релиз 2.0.0 (поддержка Scala 2.8 была прекращена после 2.0 .0 версия)"

4 голосов
/ 26 января 2011

Без ответа: нет.

Исходя из того, что говорит большинство, IDEA, вероятно, является лучшей Scala IDE на сегодняшний день. И это (читай: плагин Scala) - отстой. Он плохо обрабатывает fsc, вывод типа является беспорядком, многие ошибки не отображаются, ряд ошибок не помечен как ошибки, он медленный (когда проверки включены), тестовый прогон молча глотает прерывание (! = провал) тесты, ...

Итак, я переключился на простой текстовый редактор с подсветкой синтаксиса на одной и максимизированной оболочкой с SBT (простой инструмент сборки) на другом экране. Потрясающие! SBT отзывчив (вы можете позволить изменениям файла вызывать перекомпиляцию уязвимого кода и даже повторный запуск тестов), очень гладко управляет зависимостями и имеет полезный вывод (особенно для тестов; использование ScalaTest) SBT значительно увеличил мою производительность по сравнению с IDEA.

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

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

3 голосов
/ 25 мая 2012

Официально одобрено и поддерживается (со стороны Typesafe) для Scala 2.9 Eclipse. Текущая версия намного превосходит предыдущие версии и включает в себя REPL с учетом контекста, полнофункциональный отладчик и даже возможность отладки операторов REPL. Я думаю, что этот вопрос нуждается в обновлении и ответы на него снова.

3 голосов
/ 14 декабря 2010

Мой опыт ясно указывает на IntelliJ IDEA:

Около шести месяцев назад, когда я начал серьезный проект Scala (многомодульный), мне пришлось отказаться от Eclipse как моей любимой Java IDE и перейти на IntelliJ (9.0.x). Eclipse Scala IDE был способом глючить и часто в какой-то момент переставал отвечать даже на самые простые проекты. Для CI (Hudson) и сборки командной строки я зависел от Maven (с плагином Scala). Зависимости Maven (включая Scala-библиотеки) хорошо подобраны IntelliJ.

Несколько дней назад я обновил IDEA X (CE) с текущим плагином (ночная сборка), и работа стала еще более плавной. Хотя fsc по-прежнему завершается через некоторое время, когда неактивен.

Из того, что я вижу, я хотел бы добавить, что, по-видимому, на стороне IntelliJ проявляется гораздо большая активность, чтобы реагировать на ошибки и постоянно улучшать плагин. Поправьте меня, когда я ошибаюсь, но разработка Eclipse Scala IDE кажется почти застопорилась. Официального релиза Helios пока нет!

NB. Просто для того, чтобы предоставить некоторый контекст (на самом деле не хвастовство): вышеупомянутый проект состоит из примерно 25 модулей Scala (POM), 5 модулей Java, 325 файлов Scala с общим количеством около 360 классов Scala, классов дел и признаков. (> 19 КЛОК, включая комментарии). Моя платформа - OS X 10.6, Scala 2.8.1, Java 1.6.

ОБНОВЛЕНИЕ: После необходимости довольно обширного рефакторинга (в основном класса перемещения, переименования пакета) я обнаружил, что в последнем плагине IDEA 10.0.1 0.4.413 (и, возможно, в более старых версиях тоже) возникают некоторые проблемы с правильным решением , Я не хочу объяснять специфику, но я (почти всегда) заканчивал тем, что вручную исправлял неразрешенные ссылки или иным образом испорченный код. Вы можете взглянуть на http://youtrack.jetbrains.net, чтобы получить представление.

Для всех, кто действительно рассматривает возможность серьезной разработки со Scala, я настоятельно рекомендую оценить рассматриваемые IDE за рамками основ. Когда вы занимаетесь гибким подходом, который, по моему выбору, требует безболезненной поддержки рефакторинга без сюрпризов (особенно в многомодульных проектах), на данный момент все довольно сложно.

Было бы неплохо, если бы кто-то придумал независимый от IDE список рефакторингов, подобный спецификации (и желаемых результатов), который можно использовать для проверки поддержки рефакторинга в IDE.

2 голосов
/ 05 сентября 2010

Я использую последние версии NetBeans и больше ничего не пробовал. Я встречал как минимум 2 заметных ошибки в NetBeans при кодировании в Scala:

Один: NB иногда не может запустить программу, зависающую при сканировании пути к классам.
Решение: создайте новый проект, скопируйте туда свой код и продолжайте.
Комментарий: Этой ошибке более 10 лет .

Два: Иногда NB не видит членов определенных пространств имен или классов и жалуется, когда вы их используете.
Решение: просто проигнорируйте и продолжайте - компилятор не находит ошибок и программа работает.

...