It's high time for a debriefing on what was going on at EclipseCon Europe 2017 (ECE) on the 24-26th of October.
Having been to EclipseCon North America 2016, I was again very much looking forward to learning lots of new things and hopefully bringing some tips back home as well. One great thing at ECE this year was that most of all the talks can be found online on the EclipseCon Europe 2017 Youtube channel.
The Europe conference took place once again in the small and comfortable town of Ludwigsburg, Germany which is located a mere 15 minute local train ride to the north of Stuttgart. The foundation struck a deal with the city of Ludwigsburg which means the conference will be held there at least until 2019 (news). Note that the same venue simultaneously hosted the OSGi Community Event 2017. ECE attendeed were free to attend their sessions as well. For this reason there were plenty of OSGi and microservices -related talks to choose from.
State of the Union
The foundation has a lot going on these days which is best highlighted by the state of the union talk by Mike Milinkovich (Eclipse Foundation's State of the Union). To summarize, the coolest things happening at the moment are:
- For Eclipse IDE, support for Java 9 & Junit 5 (Jupiter)
- Java EE is moved in its entirety to the Eclipse Foundation to host an open community for it. From now on, Java EE will be called EE4J (Eclipse Enterprise for Java). Note that this transfer not only includes the EE specs but also referenece implementations (RI) and Technology Compatibility Kits (TCK) from Oracle. You can read more about the subject on the EE4J project site.
- IBM has open sourced its OpenJ9 Java VM implementation to the Eclipse Foundation which is a replacement for the actual VM implementation, such as Oracle's Hotspot VM. You can download OpenJDK with OpenJ9 builds for testing from https://adoptopenjdk.net (not for production). It is available for OpenJDK 8 and 9 for now. OpenJ9 should use less memory and makes it possible to employ GPU acceleration for parallel stream computations. Check out IBM's Charlie Gracie's presentation for more insight: Introducing OpenJ9 - Eclipse's new Java VM (sponsored by IBM).
- Hottest Eclipse project on github for machine learning: Deeplearning4J
- Quantum computing anyone?
Java 9 receives a lot of drumming right now, pushing people to move to it. For us it seems a bit problematic but we haven't really given it a proper shot yet so time will tell. We should definitely start testing sooner than later to find the problems before JDK 8 support runs out. This happened to use when we had to transition from JDK 7 to JDK 8 and I would rather not repeat that. Also JUnit 5 is definitely worth a look. Perhaps it might spur us into more action on the unit testing front in general. Once we get on the JDK 9 bandwagon, OpenJ9 should definitely be tested as well with Simantics products.
Governance-wise one potentially important take-away is the Eclipse Public License 2 (EPL-2.0). It cleans up some of the cumbersome and potentially ambiguous expressions of EPL-1.0. The related Eclipse FAQ answers more questions than I can, such as how to move to the new license. Not that the current license really has any problems for Simantics, there's also no reason why not to move to the new license. The following ECE talk probably best summarizes the changes and rationale for them: A New Eclipse Public License.
The keynotes were very interesting and well presented. I feel like I have to mention Roberto Di Cosmo's keynote on Software Heritage as I consider it to be a very unique and foresighted cultural act, which usually isn't my first association when thinking about software in general. I recommend checking the keynote Keynote: Software Heritage: Why and How We Are Building the Universal Software Knowledge Base
Most of the time there was at least two interesting sessions going on simultaneously. Out of personal or work related interest I would like to point out a few other talks as well.
Different kinds of charts have always been important for Simantics. Eclipse Charting Capabilities shows yet another way of doing charts with Eclipse. We've found it really hard to find for example charting solutions that support huge amounts of time series data and especially rendering it efficiently. SWTChart or the functionality built on top of it in Chemclipse doesn't currently do tons about that but it does provide a native SWT-way to do basic charts efficiently instead of having to rely on embedding AWT or JavaFX based UI components in SWT user interfaces.
Also, Live Collaboration on Graphical Models: Sirius Integrated With CDO (sponsored by Obeo) gives a good overview on the state of the art in graphical modelling with tools built on top of Eclipse technologies, namely EMF, GEF, GMF and Sirius. The talk highlights an important aspect in how to approach teamwork on multiple levels. Firstly, on the higher level, there is a repository like git to facilitate the high level versioning and distribution of models. Saved models are simply pushed here and fetched from by different parties. Secondly, after fetching models from the main repositories, they are pushed to a temporary CDO model repository which is used as a real-time collaboration facility to allow teams to simultaneously work on the modelled material. After this possibly collaborative work is finished, the resulting model is again pushed to git and the CDO repository is simply removed and another one is started for another purpose.
With Simantics we're no strangers to SWT but the presentation on The Past, Present, and Future of SWT on Linux managed to give me plenty of insight into the Linux backends of SWT and their history. I have to admit I was not aware of any of the problems related to developing SWT for GTK 3 nor GTK 4, such as the lack of absolute positioning mechanisms which is a requirement of the SWT APIs. Personally, I think I understand a bit better why we've often been forced to fall back to GTK 2 with linux based workbench products.
The OSGi event talks were highly focused on microservices and implementing them with OSGi and bndtools. The following are a collection of interesting bndtools-related talks:
Finally, deep learning or in other words machine learning with neural networks seems to be quite a hot topic these days. There were two talks directly related to this subject. One was an introduction to the DeepLearning4J framework and the other also an introduction to machine learning on top of the DIANNE framework.
Compared to last year's the North America conference I didn't get as much new information or ideas related to our software development processes or tooling. Perhaps its a sign that we've actually managed to put some of the tooling ideas to to use between the conferences. All in all, the conference provided a lot of material to internalize. Managed to make new friends and have interesting discussions. Looking forward to next year!