State of Scala IDE on Eclipse

Even thought Scala is now among the trendy programming languages, it still misses a lot before it is considered as one of the major players.

Most Scala programmers are they who are not satisfied with Java, so it’s natural that most of them were before programming with Java. One of the things Java programmers miss from Scala is a robust and functional IDE. Since I’m a big fans of Eclipse, this means Scala IDE for Eclipse. While surely the improvements have introduced to the plugin, there are many things left out.

So what are still missing? This is my list based on several months experience with Scala IDE. If some missing features are missing (duh…), just comment and I’ll try to update the post.

  • No refactoring. I miss refactoring a lot. I still remember the day I find refactoring features on RefactorIT for JBuilder. It’s like the day you saw sun for the first time. And not long after that, I found Eclipse with its build-in refactoring features. Call me lazy programmer, but programmer should be lazy, isn’t it?
  • The content assist takes (almost) forever. Yesterday I found myself restarting Eclipse about five times just because I’m programming with Scala. And I’ve increase the timeout of content assist ten folds.
  • Content Assist doesn’t show (not nearly) all posibilities. When it works, it doesn’t even show nearly all possibilities I want to have. On some cases, it even can’t show a pretty simple completion for a field. As small example: if I write ‘va’, I hope I can get ‘var’ and ‘val’ as the first entries of the completion suggestion.
  • Limited formatting options. Eclipse’s Java Formatter is the best configurable formatter I’ve ever saw. This Scala formatter doesn’t even come near it.
  • No suggestion, not even correction suggestion. I often use Ctrl+1 in Java editor to assign the statement to a variable. Not possible. If you got errors, you got no correction suggestion.
  • No integration to scala documentation. Weird, but the Scala editor can show Javadoc but no Scala documentation is accessible.
  • No auto import. I ended up importing the whole package everytime I need a class.

But yes, I still put a lot of hope woth Scala IDE. It shouldn’t take a lot of time, because the code is in Scala and Scala means productivity, right?

2 thoughts on “State of Scala IDE on Eclipse”

  1. > I still put a lot of hope with Scala IDE.

    The project has recently started getting developer time from Martin Odersky’s new Scala Solutions company, so hopefully things will improve faster.

    > No refactoring.

    That’s not quite true. There are some refactorings available — certainly nowhere near as polished as those for Java, but good enough to be useful: extract method, inline, rename (mostly useful only for local variables right now) and organise imports.

    > Limited formatting options. Eclipse’s Java Formatter is the best
    > configurable formatter I’ve ever saw. This Scala formatter doesn’t even
    > come near it.

    That’s certainly true. I’m the author of Scalariform — the Scala formatter library used by Eclipse. It’s both a maturity thing and a philosophy thing.

    The philosophy is a bit different to that of the Eclipse Java formatter in that the intention is not to support a huge number of fine-grained options. So, for example, Eclipse lets you configure a space before commas in an explicit constructor call, but no spaces before commas in an object allocation argument. I don’t think many users really want/need that level of granularity.

    The intention is to support specific, larger-grained styles that people ask for, so if you want Scala IDE to format your code in a particular way not currently supported, please do log a request at Github (http://github.com/mdr/scalariform), and I’ll see what I can do.

  2. Hi Matt, thank you for the clarification.

    Regarding the Scala formatter, I find that flexibility is really nice to have. People have different opinion about beautiful code.

    Since Scala has so many syntactic-sugar, this flexibility becomes more important. Not all people will use all syntactic sugar. With flexibility, we can adjust the formatter for our own code style.

Leave a Reply

Your email address will not be published. Required fields are marked *