GrantProjectsStatus ScalaReviewAndFinalSuggestions

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.

General Comments on Scala Language Support

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.

Comments on the sources and 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.

Not logged in. Log in, Register

By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2012, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo