views:

1072

answers:

5

Over the past year, I've heard an increasing amount of hype regarding the Scala language. I know that there are several existing projects that have plans to integrate Scala support with IDEs; however, it isn't always clear how good the integration really is.

Do they currently support Intellisense as well as Eclipse and Netbeans do for the Java language? Do they support instant verification as well?

+2  A: 

Here's a similar question: Which is the best IDE for Scala development?

In my very short experience with the Scala IDE for Eclipse and the Scala Plugin for Netbeans, it seemed like the Netbeans plug-in was a little more solid than the Eclipse one.

With the Scala IDE for Eclipse I was having problems with running a Hello World-type Scala object, and sometimes the syntax highlighting would start acting up. Then, I tried out the Netbeans plug-in, and it seemed to be more functional than the Eclipse one.

I haven't used either Scala IDE plug-in much in-depth, so I can't speak out of a lot of experience, but just from my initial impression, the Netbeans plug-in seemed a little bit more stable than the Eclipse one.

coobird
Yeah, I saw the other question, but it was basically just people voting for one or the other. I was more interested in detailed real-world (or practice) experiences with them. Thanks for your feedback! :) It sounds like the Netbeans project is more mature, and moving at a little faster pace as well.
jsight
+5  A: 

I can't personally speak to the stability of the IntelliJ or NetBeans plugins (though I have heard good things), but the Scala IDE for Eclipse just recently made a new release with Scala 2.7.4. Architecturally, this release is quite different from the previous ones in that it uses Equinox Aspects, the officially supported mechanism for extending JDT (and other cross-plugin extensions). Whereas before the Scala plugin had to literally hack into the JDT internals using private APIs and reflection to trick the system into behaving properly, now it is able to simply declare its extension points and let the system do the rest. It's hard to even describe how much more stable this makes things. I'm not saying that it's all sunshine and roses yet, but if you've tried and rejected the plugin in the past (as I had), it's time to give it another look.

As for how it stacks up feature-wise, SDT doesn't have any refactoring support (IntelliJ has some basic stuff like "Rename"), nor does the editor do some things like "Mark Occurrences". However, it has a significantly better Outline than NetBeans, better compiler support than IDEA, and very good semantic highlighting. All three plugins support content assist (or "intellisense", as Microsoft calls it), but none of them are particularly reliable in this area just yet. The Scala IDE for Eclipse is the only one to support incremental compilation (alla Eclipse's Java tooling).

My advice: shop around. Try all three and see which one works the best for you. From what I've been hearing, the Scala IDE for Eclipse has leap-frogged the competition with its latest release, but the others have shown such consistent stability and steady advancement that you can't count them out just yet.

Daniel Spiewak
And sadly, I don't think the Eclipse plugin even has the good ol' "build executable jar" feature it has for Java. The fact that the Netbeans plugin has it is the winner for me.
Rayne
I never build JARs within Eclipse, even on Java projects. It's not a matter of not trusting the IDE...actually, yes it is. My opinion: if your project is serious enough to merit a JAR, it's serious enough to merit a proper build system. It takes four short lines to create a Buildr build script to handle all of your Scala build needs (including JARing), so why not get it out of the way?
Daniel Spiewak
If I'm just writing a simple project, and want to distribute it so people can easily use it without me having to write shell scripts and such, it's nice having a "build" button to click.
Rayne
+2  A: 

Currently, all three main IDEs are at roughly the same level of support.

  • IntelliJ - the plugin has fits of not working at all, but is otherwise quite good. The underlying platform is sluggish (at least in linux) since v8.
  • Eclipse - the plugin is receiving a lot of support and is under very active development.
  • NetBeans - IMHO, the plugin works a little better than the Eclipse one, but not being able to run arbitrary files is a major downer.

All of the above suffer from being unable to parse the AST in all contexts. It is quite easy to confuse them by mixing in traits with implicit defs, for example. No IDE can be trusted when it advises of a syntax error. Fall back to the compiler to be certain.

Synesso
A: 

I'm using the Eclipse Scala plugin. Its pretty good but not at the same level as the Java tooling.

Eishay Smith
+2  A: 

I'm quite happy using IntelliJ IDEA 8.1 and its Scala plugin and can recommend it. It even has a roadmap that you can influence by voting your favorite missing features :) I don't have experience with the Scala support of the other IDE's, unfortunately.

Kaitsu