Next week at JavaOne, we are doing a press releases announcing the new top-level Eclipse Modeling project. (A preview of the release can be found here) I really believe the Eclipse modeling projects are understated; in particular the EMF project which is consistently one of the most popular downloads and is used by everyone (ok a bit of hyperbole), but gets very little recognition. Therefore, I think it is great to see the creation of this top-level project to focus on this area.
Ed Merks and Rich Gronback are the co-leaders of the project. I thought it might be interesting to do a quick Q&A with them on their views and thoughts about modeling at Eclipse. These guys are really passionate about the project and it will be exciting to watch them grow their community.
Q. Why was the modeling top-level project created?
Richard: The project was created in order to unify those projects related to modeling with the goal of facilitating collaboration and interoperability. With a dedicated PMC, the direction and roadmaps of these projects can be brought into better alignment and bring stronger and expanded modeling capabilities to the Eclipse community.
Ed: This dedicated focus will make it easier to promote the creation new projects that will build layers of functionality on the foundation frameworks available today, e.g., EMF and GMF, and will help encourage the growth of those foundation layers to address emerging requirements.
Q. When should people considering using the Eclipse modeling project?
Ed: Since 2002, Eclipse has provided a modeling framework with a pragmatic focus on providing the types of capabilities that developers actually require in their tools. A large part of the reason for that pragmatic focus was because the technology was actually used to develop the technology itself. Capabilities, such as the ability to persist any instance without having to write any code to do so are a life saver for a small project with big goals. It’s clear that many of our tasks as programmers are repetitive and hence unskilled. When those repetitive things can be automated, there is more time left for the interesting things. An early example of this idea in action was the development of the XSD model: 100,000 lines of code written by one developer in less than 6 months would not be possible without a framework that generates a complete and consistent scaffolding in which to write those parts of the code that require human creativity.
Richard: While projects such as EMF are in wide use today, it is hoped that a more comprehensive set of Modeling project deliverables will be available in the next major release of Eclipse. For the Callisto release, some of the projects that are transitioning to Modeling will be delivered under the ‘Models and Model Development’ category of the update site.
Q. What standards are you following and implementing?
Richard: The UML2 project implements the OMG’s UML2 specification, the EMFT OCL project is an implementation of the OMG’s OCL (Object Constraint Language) specification, while EMF is closely aligned with the OMG’s MOF specification. In the future, we plan to have projects that provide QVT (Query, View, Transformation) and MOF2Text implementations in order to round out the MDA set of capabilities for Eclipse.
Ed: A full implementation of the XML Schema specification, i.e., the XSD project, supports analysis and synthesis of the standard grammar language of the web. In many ways, the modeling project helps to unify seemingly unrelated standards like UML2 and XML Schema by providing a mapping onto a simple core model that in turn has a straight forward realization in Java. This allows one to realize in Java, i.e., to generate, the all models described by UML2 and by XML Schema. This unification has exciting possibilities for the future because it allows the other technologies, such as GMF, to be applied for anything that can be mapped on this common core model.
Q. People have suggested that this project can be used for domain specific languages (DSL). Can you explain?
Richard: Although there are many definitions and opinions about what DSLs are and how they can be utilized, we definitely see an opportunity to provide DSL capabilities for Eclipse, at least with respect to domain modeling and generative techniques. EMF provides strong abstract syntax development capabilities today, with GMF offering concrete (graphical) syntax development tooling. We are also planning to bring a textual notation capabilities to Eclipse for DSLs as well.
Ed: Given that the modeling technology is already being used to specify models for Java, SQL, WSDL, J2EE, SDO, and so on, it’s very clear that it’s generally applicable to anything that can be models and certainly DSLs are just models that can be supported the same way.
Q. What is the vision or strategy for the project? Are you looking for new contributors?
Richard: The vision is to provide a more comprehensive set of modeling capabilities to Eclipse in an effort to promote more model-driven development techniques within Eclipse and to the broader community. We are absolutely looking for new contributors, and is a primary task facing the new PMC. We have a lot of work to do, so the more contributors and community involvement we get, the sooner we can deliver.
Ed: We’d like more people to realize that modeling isn’t just for documenting architecture with beautiful diagrams or just to save time by generating code. It’s definitely good for those things. The fundamentally important goal is to provide unifying vision that recognizes common underlying similarities in the problems that are solved again and again, but each time in slightly different ways. It’s certainly great to have a very specialized solution for each problem, but when you have 1000 problems, it’s also very nice for the solutions to have a commonality that brings order to the chaos. The technology we develop needs to do both.