A look back on a year of Eclipse updates
Holger Voormann continues his discussion of Luna’s updates, taking us through the project highlights, the new IoT vogue and what Eclipse could and should be focussing on in future.
71 – 3 + 8 = 76. Luna consists of 76 projects, five more than the previous year’s release Kepler (see below). 68 of 71 Kepler-projects are also in Luna, eight were added and three are missing. The three Eclipse projects which being threatened with archiving are as follows.
Agent Modelling Platform
The Agent Modelling Platform was there for the last three simultaneous releases, but since Kepler there have been no more code changes. This could be a late consequence of project manager Miles Parker’s move to the Tasktop company founded by the Mylyn project manager Mik Kersten in early 2012.
Even with the SCA Tools (Service Component Architecture Tools), a sub-project of top-level SOA Platform (Service Oriented Architecture), there are virtually no more code changes since Kepler.
The number of code changes in the Persistence and ORM framework EclipseLink has fallen sharply since October 2013.
Eclipse Modelling Framework
Many of the eight Eclipse projects that are making their first appearance in this simultaneous release use the Eclipse Modelling Framework (EMF):
With Sirius graphical edits can be created quite simply for domain-specific EMF models. The edits are (partial) views of the data that is displayed as a graph and can be altered. Sirius is developed by the French company Obeo, since May last year. It’s also an Eclipse project that was previously part of Obeo and is available in version 1.0 in Luna. The Arduino Designer is another nice application. This is an Eclipse-based development environment for children, and thanks to Sirius this little Arduino computer can be graphically programmed.
The EMF Client Platform 1.3 makes it possible for SWT, JavaFX- and / or web applications to be used for the modification of EMF data by defining the mappings and bindings between data models and the surface. A core component is the EMF Form, which can be used to create form-based editors. There are also two desktop applications with EMF data that can be used alternatively to the Innoopract solution: Sphinx 0.8 von itemis and the Extended Editing Framework (EEF) used in Sirius, from Obeo.
The development of EMFStore 1.3 was undertaken by Innoopract. It is a version management framework designed especially for EMF models to detect and merge conflicts between models of different versions. EMFStore is in direct competition with the CDO Model Repository, which is included in version 4.3 in Luna.
Business Process Model
The project Business Process Model and Notation (BPMN2) implements BPMN, a graphical representation of business processes, as an EMF model. Version 2.0 was released by the Object Management Group (OMG) in early 2011. The implementation can be described as mature, in the last year there was only a tiny correction, and the version was increased to 1.0.
The BPMN2 Modeler 1.0.2 is a graphical editor for creating and editing business processes and workflows in BPMN 2.0. In Eclipse, there was once a BPMN Modeller project that was archived in late 2011. BPMN2 Modeller, which is run by Red Hat or JBoss, has been an Eclipse project since mid-2011 and thus existed for half a year alongside the BPMN Modeller project with other developers. Java aside, the entire technology stack that is based on the BPMN2 Modeller, is part of Luna: the abovementioned BPMN2 and Graphiti, which is based on the Graphical Modelling Framework (GMF), which in turn is based on the Graphical Editing Framework (GEF) and EMF.
Paho, QVTd and XWT
QVTd (QVT Declarative) is, together with Operational QVT and ATL (Atlas Transformation Language), one of the three model-to-model Transform (MMT) subprojects. All three are using Luna. Query View Transformation (QVT) is a specification of the Object Management Group, consisting of the parts Operational, Relations, and Core. QVTd is currently a part of implementation of Core. In one year, the QVTd team would like to fill the gaps in relation and core and offer a closed toolchain consisting of editor, parser, model, executor, debugger and code generator for each QVT language.
With XWT, SWT / JFace surfaces (including data binding) can be declaratively defined in XML. This can also be done graphically with the Windows Builder, which is also found in Luna. XWT started the laboratory for Eclipse 4.x within the project e4. XWT was not made part of Eclipse 4.x and since the end of 2012 it’s been a separate project. Luna has brought version 1.0 of XWT, which is also supported by Papyrus (another Luna project).
Ian Bull’s annual top ten countdown of the latest projects and features on Luna has once again been released and is well worth reading. As a general source of information to Eclipse, the blog aggregator the YouTube channel of the Foundation and JAX TV are planeteclipse.org, are also worth checking out.
Four of the aforementioned non-Java (but still Eclipse) projects have been added since the end of 2013/beginning of 2014 and these are Ponte, Mosquitto, Krikkit and mbeddr. The latter are domain specific languages and an extensible development environment for embedded applications based on JetBrains Meta Programming System (MPS). For project applications there is a section called “Relationship to other Eclipse projects”. The following is found on mbedder:
“mbeddr currently does not run on top of the Eclipse platform. Instead it runs on MPS. […] There is no direct relationship to EMF, HOWEVER, conceptionally […] similar to what EMF offers. […] Again, there is no direct relationship to Xtext. […] MPS is, similar to Xtext, a language workbench.”
I find it bizarre that with the exception of the CDT Debug Bridge, mbedder consistently decided against the use of Eclipse technologies, still requires no Java code and remains an Eclipse project.
In Vogue: The Internet of Things
The other three new non-Java projects come from the area of Internet of Things (IoT), which until the beginning of the year was still called Machine to Machine (M2M) in Eclipse. The M2M Working Group was changed into the IoT Working Group with a new address and a new logo.
IoT is booming. The pioneers are small devices such as Raspberry Pi, low-power wireless technologies such as Bluetooth 4.0 and 3D printers that provide the missing pieces to couple sensors and actuators with the physical world. New hardware and new application scenarios require new software – a gold rush even with Eclipse.
A big catch for IoT Eclipse could be the well-known open-source project openHAB for building automation, running on the OSGi framework Equinox Eclipse. At the end of 2013 openHAB, or substantial parts of it, became Eclipse Smart Home. Just like SWTBot did with the offer to use Eclipse Foundation, SmartHome had project logos on sale on a crowd sourcing platform, which is where the Eclipse logo came from.
Many of the smart home enhancements include third-party libraries and remain for licensing reasons at openHAB. For everything else, the authors had to agree to the license change from GPLv3 (GNU General Public License version 3) for EPL (Eclipse Public License). This includes Jetty, Hudson, Vert.x and now openHAB / Smart Home – some projects which were already large before they came to Eclipse. Another good IoT catch made by the Eclipse Foundation was Benjamin Cabe, who describes himself as “IoT Evangelist”. Without Benjamin there wouldn’t have been a two day Eclipse Conference in France, where the topic of IoT is far from neglected. He is still project leader of IoT projects. Eclipse marketing director Ian Skerrett has also become an IoT fan and writes weekly reports on the latest from the IoT world.
What will happen to IDE and the platform?
Moving down on the list of the most important changes after the Dark Theme and Split editor, line numbers are now turned into text editors by default. Without the Java-8 support for the IDE Luna would be not much more than a service update. The Eclipse Foundation celebrated its tenth anniversary on February 3. When it was founded, there were 19 projects, 50 members and the Java IDE was two and a half years old. Today there are around 250 projects, 200 members, and the Java-IDE has more than 12 years under its belt.
In all this time one thing has not changed: Unlike Mozilla, The Eclipse Foundation doesn’t administer or control a team of developers. It is a meritocracy which is controlled by those who participate. Developer activity is done either by companies or private enjoyment.
If companies lose interest in a project with too many developers the foundation can only watch idly. Although a project should be borne by developers from different companies, this is not the case with most. Mozilla decided to withdraw its developers at Thunderbird in order to concentrate fully on Firefox and Firefox OS. In Eclipse, where competing projects coexist, it would be unthinkable.
Working groups and infrastructure exceptions
The Eclipse Foundation strategically runs six working groups: Automotive, LocationTech, Long Term Support, Internet of Things (formerly M2M), Polarsys (Embedded Systems) and since June, Science (research institutions). The founding of the Eclipse Foundation Europe is a perfect fit with the Science Working group, which set up as a “GmBH” so it can receive funding. There is an annual Eclipse membership fee which is calculated on the type of membership and the turnover of the company, the Automotive, Internet of Things and Science members must pay an additional amount.
Companies, for example, who want to offer their services in the Long Term Support (LTS) Working Group annually pay between €1,100 and €22,000 in addition to the Eclipse membership fee of between €1,100 and €366,000. However, this allows them access to the infrastructure, and their services are advertised on the Eclipse Marketplace. If you select “All Markets” instead of “Long Term Support” and leave the search box empty you can currently allow eight lists. But the fact that the LTS provider (instead of a chosen developer) may change sign plug-ins and have access to non-public code repositories, is for me very contrary to the open source philosophy. However, I am pleased with the proposed Working Group, which will take care of the IDE , and whose members should be granted Eclipse membership for fees between €370 and €74,000.
The infrastructure for the general projects has also changed a bit. The platform, PDE and JDK and most other projects now use Gerrit for reviewing. To suggest a code change, you no longer append a patch to a bug, instead you can push the Git-Commit to Gerrit (see how in a five-minute video). In five of seven code changes I already used this trick with much success. In one instance, it helped to get a tip from Lars Vogel on the IRC channel #eclipse-dev. Lars is one of the most active developers on the platform and recently wrote the book “Contributing to the Eclipse Project”, in which the development process with Gerrit is described.
With Mylyn you can access Gerrit from the IDE. Nevertheless, it is not easy to find the right Gerrit project and configure the IDE and Git properly. It’s much easier with Oomph: Download Oomph, run, and select project (Oomph does not know all, but many Eclipse projects). Then use his Eclipse and Gerrit log-in and a few more details, Oomph will install, configure Eclipse and clone the Git repository to the previously selected project without further action.
If you send a change to Gerrit, Hudson automatically starts a Continuous Integration Build to check the compatibility and execute the (JUnit) tests. Meanwhile, most projects have their own Hudson instance. In Eclipse it is called HIPP (Hudson Instance Per Project). An instance shows only the jobs of an individual project and can be independent of the other instances that are added to Hudson plugins. Late last year, Hudson 3.1 appeared.
New features are the so-called team concept and the memory footprint which was reduced by 50 to 70 percent – a great advantage in HIPP. Remarkably, Jenkins also replaced the embedded Web server with Winstone Jetty 8, just before Hudson became an Eclipse project. Jetty, which unfortunately is no longer part of the simultaneous release since last year, still dominates in contrast to Winstone Servlet 3.0 and Google’s rapid network protocol SPDY.
New, but still in Beta, is dashboard.eclipse.org, a dashboard of Bitergia. This will eventually replace the Eclipse-house development Commits Explorer and can be reached at dash.eclipse.org. The commits Explorer displays in the website dashboard the number of commits per month in total or per project as a diagram, which can be optionally broken down by developer or company. The dashboard shows – which the Commits Explorer could not – the activity of the bug tracking system, mailing lists and that of Gerrit. One might wish for the dashboard to be able distinguish the external and internal commits.
Since the introduction of Git, both author and committer (if the change does not come from a developer of the project but comes from another author) are detected. According to the analysis by Wayne Beaton at Luna, around half of the 687 authors were not developers of the project. I did not think that there were so many. The new link-shortener http://eclip.se remains in the sidelines and is mentioned solely for Eclipse website. A number of links redirect to a particular bug without you having to shorten.
In addition to the abovementioned Benjamin Cabe, the Foundation has appointed Richard Burcher as new Community Manager who will support Wayne Beaton. Richard (see right) is not an Eclipse developer, but is active in the open-source community (eg. B. OpenStreetMap). Prior to joining Eclipse he was a self-employed advisor to various Canadian government agencies in the use of open source GIS.
What still needs changing
OSGi, p2, 4.x – Eclipse has already mastered some major technical modifications. The replacement of components didn’t always proceed without friction, and the utility was not always obvious. The popularity of Eclipse has decreased. If Eclipse SWT is eventually renounced in favour of JavaFX, the long-term maintenance costs would have to be lower than the cost of a compatibility layer. With SWT on JavaFX there is already an early prototype, but this was also the case with SWT on Swing, which didn’t leave the prototype status. Such a development should not be advertised as a major innovation. On the surface and the speed, I see ways that Eclipse could score again with the user. On these two points and the financing I would like to express my view below.
Pascal Rapicault, launched the crowd-funding campaign “Easy Eclipse for Java”, a simplified Eclipse Java IDE on Kickstarter. This failed because of the goal of €80,000 only about €5,000 were pledged. Nevertheless, I am of the opinion that Eclipse should not turn its back on crowd funding. Sometimes it works, as evident in the successful crowd funding campaign for a Dark Theme for LiClipse, an Eclipse-based editor, and for PyDev, an Eclipse-based IDE Python. Presumably, this campaign was also a motivating reason for the Dark Theme of the Eclipse platform. €22,500 were raised on Indiegogo, €4,000 more than would have been necessary.
As an alternative to crowdfunding, Michael Scharf suggested a price tag for Eclipse, where you can also pay nothing, so long as you state a reason. I think on the Eclipse website and in the Help menu of the IDE, it should at least give a donation button to targeted projects (or features) to finance. Besides the option to incorporate itself, make it yourself or hire a developer, there should be a way to donate small amounts, for example via Flattr or Bitcoins, as with GIMP. You can donate amounts of $35 to Eclipse via PayPal or credit card as a “Friend of Eclipse”, but you can not determine what is done with the money.
Despite new functions, the surface of Firefox looks tidier than ten years ago. Unfortunately, on Eclipse it is just the opposite: The toolbar has grown, and there are more views than in the 2004 Eclipse 3.0 (Figure 3.). The very competitive browser market shows what is important: simplicity and speed. If a long-time Eclipse user changes from Sublime Text to a simple editor without the features of an IDE, this should be a warning. Michael Scharf sees it the same way: “Eclipse could be an editor […] that can grow to [a] full blown IDE if the user needs and wants it.”
I can understand this: On Windows, the Norton Commander clone Total Commander has what I miss in Windows Explorer. But I use it too rarely to make a note of its keyboard shortcuts and control concepts. Instead, I am happy with Clover, one for tabs and bookmarks bar enhanced Windows Explorer. The tabs and shortcuts behave exactly like Google Chrome and Firefox: CTRL + T opens a new tab, SHIFT + CTRL + T reopens the (accidentally) last closed tab with CTRL + L to get into the address bar. The tabs in Sublime Text behave as one knows it. Only in Eclipse is it different.
The failed Kickstarter project EasyEclipse had a few good ideas: a tidy interface with a toolbar with only a start and stop button and a search box that extends the “Quick Access” box of Eclipse to “Open Type” and “Open Resource”. CDT project manager Doug Schaefer would also like the toolbar to execute the developed application. For Momentics®, an Eclipse-based IDE, and for QNX / BlackBerry (see page XX), this is already implemented. However, these approaches do not go far enough. I have in mind a browser similar to the operating concept of IDE. To edit a file, you open with CTRL + N a new initially empty tab, the cursor would be in the address bar, with which one could look like Google Chrome, just as when in EasyEclipse proposed global search box.
The Bread Crumb navigation bar – currently only there for Java editors – could be superseded by the address bar. As long as nothing has been entered, a list of items could be displayed in the main area below the address bar to create a new Java class, a new text file and so on. Instead of default to show so many views in addition to the editors, views could only be displayed in the editor area, if needed. You could then pin or pull out to the edge, as this is already possible. In addition, projects should be possible within projects, and would not appear in the workspace. Once a file of unknown type opens, the upper edge editor – similar to the notice to store passwords in the browser – would hint for the installation of additional helpful plug-ins for this type.
Simple editing tools and web applications make Eclipse users feel alienated. A bridge between desktop and web-IDE contrast, proposes a new Eclipse project Flux, which was initially the framework of Twitter “Flight”. A nine-minute video shows the prototype: As with Etherpad or the Saros eclipse extension it allows synchronization between editors, so that several people can simultaneously work on open files. In this synchronization, the cloud Flux latches and offers services such as the autocomplete for certain programming languages. Both the desktop IDE and a web-IDE can use these services. With Flux you don’t have to decide between desktop and web, instead you can run both at the same time. Whatever you decide for will ultimately depend on the ease of installation, on the ease of use and, not least, the speed. As regards to the latter, Eclipse often uses the Lazy Loading Pattern. Here, I find the Eclipse IDE desktop should more consistently exploit their home advantage of local data.
Onwards to Mars!
While the logo and the website have been changed, the appearance and operation of the Eclipse IDE has for ten years remained largely unchanged. The added value of this year’s Luna releases lies in the support of Java 8. In the future I wish for more speed and a radically simpler operation.
As long as the Eclipse Foundation does not have a team of developers and features cannot be bought, there is only one possibility to make our wishes come true. Perhaps this time it will be as early as the next simultaneous release of Mars. Contribute! Long live the meritocracy!