NetBeans Innovators Grant - NetBeans Scala Language Support - Review and Final Suggestions
Reviewed by
Tomas Zezula July 31, 2008
This is a review of the NetBeans Innovators Grant - NetBeans Scala Language Support. This document evaluates the project completeness
against the grant submissions.
The project was tested on the MacOS X 10.5.4, JDK 1.5.0_13-119, NetBeans nightly build 2008-07-31_02-01-47 and Scala modules from NetBeans contrib repository.
Creation of a New Scala Project
The user starts work with the Scala by creating a new project. The Scala language support provides Scala Application, Scala Class Library and
Scala Project With Existing Sources project templates. The behavior of the project wizards is very similar to the corresponding Java wizards, so creation of a new Scala project is very easy to a NetBeans user.
Scala Language Project Type
The Scala language project is full featured project type very similar to the Java project, like in case of a new project for a NetBeans user it's very easy to use it. The project allows dependency on the other Scala and Java projects. I specially appreciate the possibility to depend on the java
projects allowing user to use Scala language with the existing java projects.
Compilation, Running and Debugging
The Scala language project supports compilation into the JVM byte code, running of the project on the selected Java + Scala platforms and even debugging. These actions are implemented by the Ant build script, so the user can setup headless build of the Scala application on the build server. All these actions work fine. I have problem with run (debug) file which complains that the Scala file has no main method, but it's just small bug which is probably easy to fix, maybe already fixed.
Editing of Scala Source Files
The Scala editor is a full featured editor providing syntax and semantic coloring, source file navigator, code folding, mark occurrences,
go to declaration, instant rename, indentation, formating, pair matching, error annotations, code completion. I specially appreciate that
the editor features are using the native scala compiler (parser + attributer), the IDE provides the same error annotations as the compiler
during the compilation. The code completion can be improved a bit, currently it doesn't provide declared types, but in other cases it
works fine. The editor features are based on the gsf framework and are very similar to other gsf based languages hence using of them is very
natural for NetBeans user.
Possible Enhancements
The Scala Language Support is a full featured NetBeans support. One of the possible enhancement is using the J2SE project type with overridden build script instead of custom project type, on the other side this may require changes in the J2SE project type.
Another enhancement is improving the code completion by adding all declared types of code completion and smart completion, but this
task is beyond the scope of NetBeans Innovators Grant project.
Also adding find usages and refactorings would be helpful but again it is beyond the scope of NetBeans Innovators Grant project.
The project sources are available in the
NetBeans contrib repository. The sources can be built fine using
the current development IDE as a platform. The Scala Language Support can be also installed using
NetBeans auto update.
The project provides very good user documentation as well as project documentation. In addition to this there is also active NetBeans Scala Google Group.
Summary
The Scala Language Support is a very complex contribution which provides the NetBeans IDE with everything needed to develop
an application in the Scala programming language. As the Scala language gains on the popularity this support becomes more important
for NetBeans. From my point of view this project completely fulfills the grant submission.