Last week I was presenting a talk at EclipseCON US at Boston US. As usual this is an excellent opportunity to give you an overview of the different trends of the conference.
Pushing E4
The foundation and the committers are still pushing hard the E4 adoption. There was a significant number of talks about the new workbench model, the declarative actions and menus, and the hierarchical dependency injection framework. I have to say that I am still perplex about E4. This is a nice technological update with really interesting features but it clearly lacks of migration incentive. I am running out of arguments when advocating for migration of Eclipse applications to E4 excepts that the current 3.X is going to be end of life. E4 is still young and the community must show how much it brings instead of focusing on technical talks addressed to developers.
ALM and Agility
The conference was co-organized with ALM-connect a conference more focused on Application Life cycle Management (ALM). Basically the ALM covers the activities, the processes and the tools involved for managing the life cycle of a software. It includes the requirements engineering, the design, the development and the maintenance. If you add the agile dimension, the life cycle is split in much more shorter iterations involving more frequent interactions with the product owner and much more frequent deliveries. This includes concepts such as continuous integration and continuous deployment.
I think this area is really interesting and highly important when it comes to develop a software efficiently. Indeed, agility in projects involves a completely new way of working and especially of interacting with the customer. Traditional approaches such as RUP or basically the waterfall model focus more on the way to design and develop what has been carefully described in the requirements and do not really focus on the maintenance. With agility, the maintenance and development phases are much more similar since they both request a continuous work with the product owner and a continuous re-evaluation of the most important requirements, whatever they are bug or feature requests. In addition the ability to run fast experiments and to get user feedback ASAP in the cycle is becoming the new non-functional requirement. As a result, the key is the ability to provide flexible and configurable processes, ticketing systems integrated with agile approaches, automatic KPI calculations integrated with the development environment, code review infrastructure and continuous testing and build. Today, you can build a really impressive environment with technologies like:
- Jira or Tuleap
- Mylyn and Gerrit
- Gitlab or Github
The big traditional players such as IBM and Microsoft are also going in that direction with solutions like rational team concert or the Microsoft Visual Studio team foundation.
OSGi taking place in Web, cloud and M2M
OSGi is definitively a versatile technology. This year we have seen the impressive growing of Virgo, the JEE OSGi application server pushed by Springsource and its integration in the Eclipse community, especially with RAP [1].
In addition there was a few talk about leveraging the OSGi basics as the dynamic loading, the service tracker and the declarative services for providing wrapper for non-OSGi but elastic components such as MongoDB node, Mosquito brokers, riak and Nginx. As a result, they can all be seen as OSGi elements and take advantage of the native features.
The same reasons are used for introducing OSGi in M2M and especially M2M gateway as proposed by Hitachi in its talk [2]. I have to say that it makes sense, OSGI has been originally designed for this exact kind of use cases: providing a light dynamic environment for devices. That is interesting to see that the trends come back from the JEE world to M2M.
Few new things in Modeling
The Eclipse Modeling was not the real focus of the conference. There were some talks similar to those from EclipseCON EU about Xtext, Xtend and Xpect [3]. The latter provides an elegant unit testing framework for DSL created with Xtext.
The Eclipse Client Platform [5] is going forward but looks more and more like the Sphinx project [4] even if the objectives look different at the first sight.
The real new announcement was the official project submission of Sirius by Obeo [6]. This project proposes to create different viewpoints to edit your models. Those viewpoints are configurable modelers that you can customize for different profiles of users or for different phases of the project.
Except this last announce there was nothing else really moving in the Modeling area. This is a pity since E4 offers new opportunities in terms of model-based applications but nothing is really pushed by the community towards that direction.
Sabri Skhiri
Twitter: @sskhiri
References
[1] Updated Tutorial: Developing Web Application Bundles with RAP and Virgo: http://eclipsesource.com/blogs/2013/03/18/14961/
[2] Enabling Smart Data on M2M Gateways and Aggregators , http://www.eclipsecon.org/2013/sites/eclipsecon.org.2013/files/Draft2_OSGiDevCon_M2MAgrregators.pdf
[3] Unit test for DSL https://github.com/meysholdt/Xpect
[4] Eclipse Sphinx http://www.eclipse.org/sphinx/
[5] Eclipse Client Platform http://eclipse.org/emfclient/
[6] Introducing Eclipse Sirius http://model-driven-blogging.blogspot.com/2013/03/introducing-eclipse-sirius.html