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

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


person Łukasz Lew    schedule 10.04.2010    source источник
comment
IDEA получает лучшие обзоры, но у меня чертовски много времени, пытаясь заставить ее вообще работать: stackoverflow.com/questions/2668153/   -  person Alex R    schedule 20.04.2010
comment
Тот же вопрос от января 2010 г.   -  person Łukasz Lew    schedule 23.04.2010
comment
Eclipse Scala IDE теперь поддерживается решениями Odersky Scala Solutions, поэтому Eclipse становится все более и более подходящим для моих ожиданий.! Я предпочитаю Eclipse.!   -  person kajo    schedule 30.10.2011


Ответы (17)


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

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

person Sean    schedule 11.04.2010
comment
Вы можете вспомнить, чего хотели, а чего не получили? - person Łukasz Lew; 11.04.2010
comment
@ Łukasz - В Netbeans казалось, что он не может обрабатывать сценарии scala, только классы. Полный код Eclipse и подсветка синтаксиса были немного нестабильными. Допустимые операторы scala помечались как ошибочные. Опять же, возможно, поскольку я не очень хорошо знаком с Netbeans или Eclipse, я что-то неправильно сконфигурировал. - person Sean; 12.04.2010
comment
В настоящее время я бы рекомендовал комбинацию последней версии IDEA 9.0.2 и одной из ночных сборок плагина Scala, которую можно загрузить отсюда: confluence.jetbrains.net/display/SCA/, например, сборка № 1289) - person sroebuck; 06.05.2010

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

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

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

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

person Alexander Temerev    schedule 11.04.2010

Подключаемый модуль JetBrains IDEA Scala одинаково хорошо справляется с 2.7 и 2.8.

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

person Randall Schulz    schedule 11.04.2010

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

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

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

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

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

person Ichthyo    schedule 10.09.2010

я использую как eclipse, так и IDEA

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


    Edit1: IDEA поддерживает определение типа, такое как eclipse, но вы должны определить значение в своих функциях, например: 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. eclipse имеет некоторые проблемы с завершением кода (когда вы используете переменную в следующей строке и хотите, чтобы свойство этой переменной eclipse показывало неправильные предложения кода)
  3. в IDEA разрушение приложения scala на 5 секунд медленнее, чем eclipse (есть какое-то решение для времени работы bust IDEA, но у них есть побочные эффекты, есть некоторые проблемы), по идее, существует хорошо известная проблема со скоростью двойного щелчка, которая проявляется во многих случаях, например открытие файла или выбор строки в источнике ... вы можете увеличить время ожидания двойного щелчка, создав (или отредактировав) /home/.Xresources и добавив эту строку: *.multiClickTime: 400

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

person Community    schedule 25.01.2011

Мой опыт ясно указывает на 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, классов case и признаков (> 19 kLOC, включая комментарии). Моя платформа - 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.

person Horst Dehmer    schedule 14.12.2010
comment
Я думаю, это что-то близкое к тому списку, который вы просите: refactoring.com/catalog /index.html - person johncip; 14.05.2011

Отсутствие ответа: Нет.

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

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

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

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

person Raphael    schedule 25.01.2011
comment
Есть плагин для SBT и IDEA, на самом деле их два. Я сделал модифицированную версию, которая вставляет ошибки в документы, вы можете увидеть код здесь: github.com / null77 / idea-sbt-plugin - person nullspace; 15.03.2011

Я думаю, что пока что лучшим вариантом является 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 в представлении проводника пакетов со встроенной структурой, представлением структуры, быстрой схемой, открытым типом, иерархией открытого типа.
  • Инкрементальная компиляция, запуск приложения со встроенным отладчиком, гиперссылка от трассировки стека на исходный код Scala, интерактивная консоль.
  • Поддержка плагинов Eclipse и разработки OSGi, включая гиперссылки на исходный код Scala из plugin.xml и файлов манифеста.

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

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

person Carlos Quintanilla    schedule 24.05.2012

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

person rs_atl    schedule 24.05.2012

Я не рекомендую Scala IDE / Eclipse. В нем не так много функций, которые доступны даже для Eclipse с Java. И есть баги.

person Berlin Brown    schedule 19.05.2010

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

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

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

person Ivan    schedule 04.09.2010
comment
Для № 2, я думаю, это может сработать: щелкните правой кнопкой мыши любой файл .scala в редакторе и выберите сбросить парсер scala, затем перейдите к любому другому файлу .scala, щелкните в любом месте окна и вернитесь в исходное окно. Это должно быть исправлено. - person Jus12; 14.12.2010

На данный момент я бы порекомендовал плагин IDEA.

Плагин Scala для NetBeans тоже неплох. Однако он еще не поддерживает NetBeans 6.9, новейшую версию, и вам по-прежнему нужно загружать его вручную, а не устанавливать непосредственно из диспетчера подключаемых модулей внутри NetBeans.

Однако он лучше интегрируется с проектами Maven, чем плагин IDEA (на мой взгляд, это верно для NB и IDEA в целом).

person wolverian    schedule 18.06.2010

Отчасти это зависит от вашего стиля работы, так как у всех вариантов есть свои сильные и слабые стороны.

Если вам нужен рефакторинг для смешанных проектов java / scala, тогда IntelliJ - ваш единственный вариант.

Если вы хотите выполнить какую-либо работу над компилятором или надстройкой компилятора, то Eclipse имеет то преимущество, что вы можете запускать рабочую область времени выполнения с настраиваемой сборкой компилятора, включая точки останова. Он также значительно улучшился в версии 2.8 Scala.

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

person Kevin Wright    schedule 15.09.2010

Я еще не пробовал плагин scala netbeans, но обнаружил, что плагин Intellij IDEA в любом случае намного лучше scala ide, чем плагин Scala eclipse, который оооочень медленный, что сводит меня с ума. Хотя приложения Swing плохо работают с моим тайловым оконным менеджером.

person Isaiah    schedule 08.12.2010

попробуйте IDEAX, последнюю версию Intellij IDEA (версия 10) от сообщества, в нем улучшен плагин scala, который имеет более быструю компиляцию и выполнение кода, а также поддержку Maven3 и SBT, с помощью которой мы можем разрабатывать приложения Lift.

person prassee    schedule 10.12.2010

Версия сообщества IntelliJ IDEA + подключаемый модуль Scala + подключаемый модуль SBT

person Ashkan Kh. Nazary    schedule 14.02.2011

Для последних версий (2021 г.) вопрос, какой ide занимает большую часть домашней страницы https://scala-lang.org/

person i000174    schedule 15.02.2021
comment
Домашние страницы меняются. Ссылки устаревают. Чтобы этот ответ оставался актуальным и полезным, вам следует скопировать часть соответствующего текста ссылки в текст ответа. - person jwvh; 15.02.2021