Today marks the ninth year in a row that Eclipse has released a major update during the summer. This year’s Luna release arrived today, and brings with it 76 projects and 61 million lines of code. Inside the release, Java 8 was the major theme as many sub-projects added such support for the new version of the language.
But Java 8 support was only the beginning of the new features in this release. Version R6 of the OSGi specification was released prior to Luna’s completion, and as such, Luna includes Equinox, the reference implementation of that specification, updating it to OSGi R6.
As for Java 8, Mike Milinkovich, executive director of the Eclipse Foundation, said that the Java Development Tools within Eclipse received some UI enhancements according to some longstanding complaints from users.
“There have been a number of workbench UI improvements, some of which go back a long way in terms of how long they’ve been requested,” he said. “Split editors are an example. Users have long been asking for a way to place two windows of code side by side in the same editor, and now the addition of split editors enables that functionality.”
Another change, according to Milinkovich: “Turning on line numbers by default, which is one of those things some developers love, some hate. But a lot of people complained they couldn’t figure out how to set the preferences to turn line numbers on, so we changed the default. We’re also supporting a new dark theme for [Java development tools].”
Recommending code
Eclipse included the Code Recommenders project in its standard IDE release for a few years now, but this release ratchets up the intelligence of this code completion engine.
“Historically, all the tools out there, when they look to make a suggestion to a developer, there’s really no analysis that goes into these recommendations,” said Milinkovich. “Most of the time it figures out all the options and gives you a big long list. Code Recommenders does statistical analysis and gives you a weighted list based on how other developers have used this code in similar situations: What API choices they made. It’s a much much smarter version of code completion.”
But, said Milinkovich, “This year, they’ve added a new code snippets search engine, so it’s easier to contribute new snippets to a repository for new recommendations. We’re crowdsourcing these, and getting developers to help the community out by choosing which code snippets work best together.”
One language that hasn’t been getting that kind of love and attention over the past two years was PHP. The PHP Development Tools project inside of Eclipse had stagnated a bit due to a lack of a project leader and maintainer. That changed with the Luna release train, said Milinkovich.
“On the PHP side, for the last two years, it wasn’t in the release train because no one in the community stepped forward to build it and support it. We’re happy to have it back. They’ve done some performance improvements in the PHP editor,” he said.#!Model citizen
Modeling has long been a popular use for Eclipse, since the release of the Eclipse Modeling framework. But those capabilities have gone completely meta in Luna with the first release of Project Sirius.
Sirius brings the customizability of Eclipse to the modeling world by allowing developers to build their own modeling systems. Specifically, it allows developers to build their own modeling framework and IDE so that they can then pass along this newly built tool to other developers in their organizations who need to build specific models.
Milinkovich said that Sirius is modeled on Project Xtext, a previously released Eclipse project aimed at developers who build domain-specific languages. Sirius is designed to allow developers to craft a custom modeling tool out of Eclipse itself.
The Web IDE project, Orion, has evolved with this release, too. The project recently incorporated support for deploying to Cloud Foundry and to Docker, allowing developers to press a button in the IDE to automatically deploy their code from the server-side instance of Orion into the cloud.
Orion is also being used by Milinkovich, personally, for his side projects. He said that Sirius was used to craft a modeling interface to the Arduino microcontroller platform. As a result, he now uses a Raspberry Pi running Orion in server mode to developer and push code onto the Arduino.
(Related: WearScript works with Arduino for wearables)
This is interesting because the existing Arduino IDE, Sketchbook, is just that: a glorified Notepad. The Arduino IDE includes syntax highlighting and the ability to reflash the Arduino, but the list of features ends there.
This is all indicative, said Milinkovich, of a coming change in the embedded device space. The coming Internet of Things, he said, is driving developer interest in microcontrollers, embedded hardware, and physical devices controlled by software. Unfortunately, developing straight software and developing the software for running an embedded device are two entirely different disciplines.
Milinkovich compared the coming change in the embedded development market to the changes that already occurred in the mobile phone market: “The state of art of embedded tools is not going to be the future of the Internet of things. Just like if you go back five or six years ago, if you developed for Symbian, you were an embedded developer. Things got much simpler, and now if you develop for phones, you’re an app developer.”
To that end, Project Paho has reached version 1.0 in the Luna release train. This new project endeavors to make Internet of Things projects easier for developers by including support for the emerging standards, tools and protocols of the Internet of Things.
“Paho offers the client-side support for MQTT and MQTT-SN protocols, which are popular in the Internet of Things domain,” said Milinkovich. “One of the things I personally find interesting about Paho is it supports quite a few languages: Java, C, C++, Python and JavaScript. It’ll be interesting to see how, over time, the Internet of Things projects line up, and to see if it make sense for them to join the release trains.”
For science!
One of the additional announcements, ancillary to the Luna release, was the Eclipse Foundation’s announcement that it would form a science working group. The group is tasked with standardizing and building reusable rich client platform tools based on Eclipse for use by the scientific community.
“Basically,” said Milinkovich, “this is a grassroots-led initiative to get a number of organizations together who are interested in collaborating on the basic building blocks for scientific software. Scientific research is largely based on software doing things like simulation or data analysis. An enormous amount of waste happens because [scientists] are reinventing the wheel. They are committed to collaborating on the creation of shared scientific software that can be reused in many institutions.”
The initial members of the working group are Diamond Light Source, IBM Research, and Oak Ridge National Laboratory.
“We think it has a lot of potential, and we think that software for science research and the whole notion of open science is becoming more and more important,” said Milinkovich. “By making more of the software open source and being able to use shared common building blocks, we will improve quality and save a lot of costs.”