
This month we'd like to introduce you to a development tool for a programming language you may not have had the chance to play with yet, Scala.
Our featured project this month is the Scala IDE for Eclipse, an Open Source Plug-In that adds Scala Programming language support with Java integration to Eclipse, a powerful and extensible Integrated Development Environment most commonly used by Java Developers. (you may have heard of it once or twice) ;-)
Scala is a language for the Java Virtual Machine, that allows developers greater productivity by mixing object-oriented and functional programming language features with a more concise syntax, typical code sizes being two to three times smaller than an equivalent Java app.
Recently, we had the opportunity to catch up with Miles Sabin, from the Scala IDE project, to discuss the project, Scala, and Assembla.
When we asked him to describe the project and its impact on developers, he pointed out that of the top three Java IDE's, Eclipse was the most popular and widely-used. He and his fellow developers at the Scala IDE project believe that if Scala were fully supported using Eclipse that many Java developers would switch to Scala.
Because Scala interoperates seemlessly with Java, it can freely be mixed in with Java code. This allows programmers to take full advantage of Java's tried and tested libraries and tools while using Scala's more concise syntax to get things done faster. By building a tool that seamlessly integrates into the IDE that a majority of Java Developers use in their daily work, Eclipse-based projects can quickly and easily begin to refactor, and add code using the more lean Scala language without a great deal of extra effort.
Scala is currently getting about 100,000 downloads per month and growing, and the Scala IDE for Eclipse already has thousands of users, lively user and developer mailing lists and a growing number of active contributors.
When asked how the Scala IDE Project came to be hosted at Assembla, Miles related that "Most of the active contributors were DVCS fans and in particular GIT fans. When they started looking for a GIT home, GITHub was the obvious choice, but was rejected primarily because of their weak ticketing system." (If interested you can learn more about the advantages of Assembla Git Hosting and its integration with Assembla Tickets in the features section of our main website, here)
Miles also told us that the fact that Scala-based, Lift Web Framework had already chosen Assembla to host their issue tracking and and the related Stambecco Project was wholly hosted at Assembla were contributing factors.
In addition to our Integrated Ticketing system, Miles noted that -after the fact- two other Assembla features have proven to be very important to the team as well: our Wiki Tool and our Portfolio Tool.
Miles and his teammates use our Wiki tool to manage developer and end-user documentation, frequently asked questions, and release notes.
The Portfolio tool allows the Scala IDE project team to manage multiple projects from a single space, and the ability to create templates so that you can easily create new workspaces pre-populated with code, wiki pages, tickets, etc. This is great for both complex Open-Source projects and client-driven consultancies, design & development shops.
Miles also had a few pointers for those of you out there already managing open-source projects, or who are thinking about starting a project:
- Involve as many people as possible
- Have great code review processes and tools to ensure high code-quality
- Have all contributors and especially active contributors explicitly agree to the license under which their work will be governed so that there are no IP issues later
Scala IDE for Eclipse is a very promising project, and if you would like to download and play with the plug-in, be sure to visit their website for details on installing the plug-in for Eclipse. If you are interested in learning more about the Scala language, visit: http://www.scala-lang.org. And of course check out the Scala IDE Assembla Workspace if you would like to check out the developer or user documentation or contribute to the project.