ScalaModules

The project has been created.

The ScalaModules project is a proposed open source project under the Equinox Project.

This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the Eclipse community. Please send feedback to the ScalaModules forum.

Introduction

Java has emerged as one of the leading platforms for enterprise computing: There are lots of mission-critical web applications, rich clients and mobile applications based on the Java platform. It is commonly agreed that the Java Virtual Machine will continue to shape the future of enterprise computing for years to come. But it is also clear that the importance of the Java Language will decrease, as other languages for the Java Virtual Machine enter the game. This is mainly because these languages make software development easier.

Perhaps the most promising new language for the Java Virtual Machine is Scala. It feels a lot like a dynamic language, but it is statically typed and offers all the benefits of type checking. It is extremely flexible, e.g. offers type and semicolon inference, infix operator notation and implicit conversions, etc. It is a very pragmatic blend of object oriented and functional approaches. In the end, many developers simply find that developing in Scala is easier than in Java.

One of the biggest challenges in today's software development is complexity. To be successful, it is crucial to identify methods and technologies to reduce complexity in order to increase productivity and flexibility. One such method is modularization, and one such technology is the OSGi Service Platform. OSGi is even more: It is the Dynamic Module System for Java, which offers installing, updating and uninstalling modules at runtime, as well as a service-oriented way for modules to collaborate. OSGi has emerged as the de facto standard for Java modularization, and currently there are even efforts to integrate modularization into the platform itself.

Scala and OSGi both aim at very important concerns in software development: Ease of use and reduced complexity. Scala operates at the programming language level, and OSGi at the higher level of a module system. Hence it is natural to combine those two to get the best out of both. And this is straightforward, because Scala compiles to "usual" Java bytecode and offers full interoperability with Java. OSGi is agnostic with regard to the programming language, because it works only with the compiled artifacts and the metadata in the bundle manifest. Hence it is time for OSGi on Scala.

ScalaModules aims at Scala based OSGi development. The mission of ScalaModules is to employ the power of the Scala programming language to ease OSGi development.

Of course using Scala for OSGi will itself be beneficial, because of the great simplifications Scala brings compared to Java. But ScalaModules will also make use of the additional possibilities offered by Scala, mainly the chance to create a Domain Specific Language (DSL). Therefore with ScalaModules your code will be more intuitive and concise or less verbose and less involved compared to Java-based OSGi development.

Scope

This project will create a Scala DSL for OSGi as a sub-project of Eclipse Equinox. It will build on the existing codebase (1.x release) and enhance it further. Graduation is planned with the 2.0 release.

This project will not create any tools.

Organization

Status quo

ScalaModules currently is an open source project led by Heiko Seeberger (WeigleWilczek). It was released in version 1.0 in March 2009 and is currently under active development towards version 2.0. The current licence is Apache License, Version 2.0, but this will be changed to Eclipse Public License v1.0 as soon as the project is moved to Eclipse. All ScalaModules developers will be initial committers (see below) and have agreed to change the license.

ScalaModules relies on OSGi-fied Scala libraries, because the official Scala distribution, that is licensed under the Scala License (http://www.scala-lang.org/node/146) does not offer OSGi bundles. These OSGi-fied Scala libraries are provided by another small project led by Heiko Seeberger, also licensed under Apache License, Version 2.0. In order to avoid depending on this external project it will be considered to OSGi-fy the Scala Libraries withing the ScalaModules project itself. On the long run there are chances that the official Scala distribution will offer OSGi bundles.

Initial Committers

The initial committers will take the existing codebase and documentation and move it to Eclipse. They will continue the existing work necessary for the release of version 2.0.

  • Heiko Seeberger (WeigleWilczek): Project Lead
  • Roman Roelofsen (ProSyst): Developer
  • Kjetil Valstadsve: Developer

Mentors

  • Chris Aniszczyk
  • Wayne Beaton

Interested Parties

The following people or organizations have expressed interest in contributing to ScalaModules:
  • Neil Bartlett (WeigleWilczek UK)
  • Kevin Wright (Vyre Ltd.)
  • Miles Sabin (Chuusai Ltd.)

Tentative Plan

ScalaModules is aligned with the Helios release plan.

2010-02-01: Start moving the codebase and documentation to Eclipse
2010-03-19: Milestone 1
2010-05-07: Milestone 2
2010-05-28: Release Candidate 1
2010-06-11: Release Candidate 2
2010-06-23: ScalaModules 2.0 Release && Graduation

Scala is a trademark of EPFL.