Skip to content
Print

Screencast: Introduction to the Scala Developer Tools

21
Apr
2008

Virtually everyone who has visited the Scala project page has seen the info page for the Scala plugin for Eclipse.  There are a few screenshots, an update site and very little instruction on how to proceed from there.  Those of you who have actually installed this plugin can vouch for how terribly it works as well as the remarkable lack of usefulness in its functionality.  It’s basically a very crude syntax highlighting editor for Scala embedded into Eclipse.  It has the ability to run programs and compile them within the IDE, but that’s about all.  Worse than that, it seems to make everything else about Eclipse less stable; somehow crashing random, unrelated plugins (such as DLTK).  Needless to say, it’s often a race to see how fast we can remove the Scala Eclipse plugin from our systems.

What is far less widely known is that there is a second Eclipse plugin which offers support for Scala development.  Basically, the guys at LAMP decided that it wasn’t worth trying to build out the original plugin any further.  Instead, they started from scratch and created a whole new implementation.  The result is entitled the “Scala Developer Tools” (or SDT, if you’re into short and phonetically confusing acronyms).  Basically, this plugin is a very unstable, very experimental attempt to build a first-class IDE for Scala on top of Eclipse.  Obviously, they still have a ways to go:

image

In case you were wondering, no that isn’t my default editor font.  To say the least, the plugin suffers from an annoying plethora of UI-related bugs.  Behavior is inconsistent, and often times changing a value doesn’t seem to be permanent (it took me several tries to get the syntax highlighting to stop shifting before my very eyes).  To make matters worse, it seems that installing the plugin in the first place is a bit like playing a game of hopscotch using un-anchored floats in the middle of a pool.  The update site has a nasty habit of throwing a 404 about 50% of the time.  You know what they say: if at first you don’t succeed…

The good news is that once you get the plugin installed, the preferences beaten into submission, and the UI bugs safely ignored, things become quite nice indeed.  The new editor is vastly improved over the old one, and it’s easy to see tremendous potential in the project.  Things are actually getting to a point where I would consider using the plugin rather than my current jEdit setup.

Of course, it’s hard to get a good idea of how a tool works until you see it in action.  That’s why I took the time to put together a small screencast which illustrates some of the highlights of the new editor.  I made no attempt to hide the bugs which cropped up during my testing, so this should give you a fair approximation of the current state of the plugin and whether it’s worth trying for your own projects.  The screencast has been produced at a reasonably high resolution (1024×732) in both Flash and downloadable AVI format.  Enjoy!

screencast-front

 

Comments

  1. Great, thanks for providing the screen cast!
    Note that the plugin is still being developed: “It’s still a little rough round the edges (2008Q1) but is getting more stable as time goes on.” So I think it will improve quickly.

    Michael Monday, April 21, 2008 at 5:13 am
  2. Thanks much for the info. I’ve seen comments about the “new Eclipse plugin” but with no links, information, timelines, or anything. I wasn’t even sure if the one on the main web site was the old one or new one. This helps clarify a lot.

    Tom Monday, April 21, 2008 at 8:45 am
  3. Nice to have this writeup, Daniel. Note that the NetBeans Scala plugin (http://wiki.netbeans.org/Scala) is coming along, slowly but surely–I’m testing it with the very latest daily NB downloads, though I hope it will be stable for NB 6.1. The author, Caoyuan Deng, also won one of the grants to develop his plugin for NB, and that has an August deadline; so I’m hoping for something good.

    Also, some people at IntelliJ continue to work on a plugin (under the ASL; the repository is open so you can keep an eye on progress), but there’s not updated release and it appears that it will be targeted at IDEA 8, if it does get released.

    Regards
    Patrick

    Patrick Wright Monday, April 21, 2008 at 11:17 am
  4. It’s a shame that IDE companies / organizations don’t realize how significant this process really is. NetBeans is devoting a lot of resources to Ruby, and JetBrains is spending time on Groovy, but I think that Scala may be more important to the future of development than either of these languages. Whichever IDE manages to produce a real environment for Scala first will control the genre for years. Just look at what NetBeans Ruby has done for the Ruby IDE world. There are now alternative IDEs with similar capabilities, but everyone is using NetBeans now because it was the first free Ruby IDE to really merit the name.

    Daniel Spiewak Monday, April 21, 2008 at 11:25 am
  5. @Daniel–it is important, but it’s a matter of resources. For anything above simply highlighting based on syntax (which you may be able to do purely with regexes) and project/file support, you’re talking about having several dedicated engineers who are intimately familar with the language, testers to test the thing, people to document it…I understand when they aim first to support those languages that already have a foothold in the market. I would love if all of this came for free and we could just install a plugin for any language for which there is a compiler or interpreter. I just think it’s too much work to expect that to happen.

    I think the NetBeans approach, of sponsoring plugin development (which IDEA has done in the last couple of years as well) isn’t bad, though without ongoing support most plugins end up becoming less useful over time, IMO. I’m hoping that as the plugin support for Scala improves, developers will start using it, and that might convince companies to start dedicating resources to it.

    Patrick

    Patrick Wright Monday, April 21, 2008 at 11:48 am
  6. Daniel,

    What software did you use to create the screencast?

    Brian

    Brian Repko Tuesday, April 22, 2008 at 4:07 am
  7. A combination of Camtasia and Audacity. Camtasia handled the video recording, the mixing and the final rendering. After I did the video, I recorded the voice-over in Audacity and then imported it into the Camtasia project for the final mix.

    Daniel Spiewak Tuesday, April 22, 2008 at 7:47 am
  8. A good IDE support will surely improve the use experience of Scala developers

    ynw Tuesday, April 29, 2008 at 5:59 pm
  9. Hey Daniel,

    could you maybe share the plugin or do you know another link to a download, cause the update site returns 404 since days…

    thx

    regards, david

    David Linsin Thursday, May 1, 2008 at 1:18 am
  10. Yeah, I’m considering setting up an unofficial mirror for the plugin here at Code Commit. Alternatively, I could just build the plugin myself and upload the results. That of course is predicated on getting the build working locally… :-)

    Either way, I agree that it’s a nasty pain that the update site doesn’t work consistently. Here’s a relatively recent rebuild that was uploaded by one of the contributors: http://luc.schess.ch/ch.epfl.lamp.sdt_2.7.1.r14724-b20080421111118.zip

    Daniel Spiewak Thursday, May 1, 2008 at 7:56 am
  11. I think i came to Scala through your “Scala for Java refugees”. Instantly i tried Scala using the “main” plugin with eclipse…
    It was a horror. At first most things seemed “ok” but if you get to work with packages and diffrent classes it messed up so fast. Last weekend i checked Scala on CLI. And voilá my Code was working! That got me really angry, but even more i am angry now to myself , lol. Because i bookmarked your screencast long ago but missed to look at!
    Especially the point about the “new” plugin which i have high hopes for!

    testingScala Monday, May 5, 2008 at 11:44 am
  12. Thanks for keeping mortals like me interested in Scala Daniel! I hope one day someone (read: company with resources to spare) recognizes Scala’s potential (if only as a viable answer to F#), and commits to sponsoring really good IDE support.

    My main interest in Scala is still that it would make most of my Wicket code a lot shorter and more elegant (replacing the tons of anonymous classes with functions for instance). Nathan Hamblen had a nice post about that, but if you’re ever bored… ;-)

    Eelco Hillenius Wednesday, May 21, 2008 at 1:02 pm
  13. Hi Daniel! I have recently placed a short “A novice Scala programmer: Eclipse vs. IntelliJ IDEA vs. Netbeans.” series to my blog.
    http://pro-thoughts.blogspot.com/2008/07/novice-scala-programmer-eclipse-vs_3251.html

    Vladimir Kelman Thursday, July 31, 2008 at 10:19 am

Post a Comment

Comments are automatically formatted. Markup are either stripped or will cause large blocks of text to be eaten, depending on the phase of the moon. Code snippets should be wrapped in <pre>...</pre> tags. Indentation within pre tags will be preserved, and most instances of "<" and ">" will work without a problem.

Please note that first-time commenters are moderated, so don't panic if your comment doesn't appear immediately.

*
*