Java Crossing to the Physical World: Ready for Enterprise Developers Yet?
Easier access and decreasing costs have made custom hardware available to a wider audience of developers who don't necessarily have a background in electrical engineering. Last month's Communications of the ACM included a tantilizing quote from Dr. David S. Touretzky: "Better algorithms for perception and manipulation, and high-level frameworks for robot instruction will enable robotics application development by a diverse population of users and innovators, some of whose job descriptions are as unforeseeable today as 'web designer' was in 1971"
With this environment in mind, InfoQ interviewed David Delabassee, a presenter at JavaOne on Java and embedded hardware crossover, to get his thoughts: is the enterprise ready for custom hardware yet? Mr. Delabassee specializes in the Arduino, a network-enabled, open-source hardware platform that comes in sizes smaller than a mint tin. We asked Mr Delabassee what kinds of Java applications he is seeing crossing into the physical world on Arduino and he responded from with:
I think there are several cases where Java is a good fit. An Arduino is basically a cheap, easy-to-use and open (and thus customizable) embedded system. These systems are on one hand relatively capable but other hand they remain quite limited for example in terms of processing power. A lot of people are talking about smart metering, smart grid, sea of sensors, internet of things, etc. Everyone has its own flavors but the idea is always the same, we put sensors to provide more intelligent solutions. But to get more value out of the solution, those sensors need to be connected to the network. The traditional data flow is collect the data, process (filter, correlate, process and/or analyze) the data, visualize and finally store the data. So clearly Java is the perfect glue between the sensors, the interface to the physical worlds, and what we want to achieve with those generated datas. We often see Arduino used in combination with Processing (a Java based open source framework to create interactive visual environment) where Processing is used to handle the data visualization.
We asked Mr. Delabassee if he has seen Java plus Arduinos in an enterprise setting and he answered that he isn't seeing too much yet, possibly because Arduino is still young and was only recently approved by regulators like the FCC and CE and possibly because it lacks enterprise friendly features like SSL. He added, however, that "we are moving to a world where on one hand devices are getting more powerful and on the other hand, more and more devices are connected to the network; Java is perfect match for that."
There are some rookie mistakes Mr. Delabassee cautioned curious developers about. Firstly, in the enterprise world of 8-core, 64-bit processors with 64GB of memory one easily forgets that the embedded world is commonly more limited. For example, there are few appetizing options for sending JSON or XML from an embedded device so developers may want to send a simple protocol from the device to a Java program and have the Java program convert it to JSON or XML for anything downstream. However, Mr. Delabassee encouraged new devlopers to try anyway: "In the past when one wanted to learn electronics, he had to go through a lot of theory first. With Arduino it is the opposite, you start by actually making things and you learn the electronic theory along the way. So Java developers shouldn’t be scared, it is very easy to start!"
Before signing off, we asked Mr. Delabassee where someone who wanted to learn more should start. He advised that the first stop is the Arduino reference site followed by any one of several books like O'Reilly's Getting Started with Arduino. From there it's only a few steps to decorating the office with its very own WTF counter or the more practical web site message queue monitor.
[ed: an earlier version of this article described Mr. Delabassee as living in Italy but that has been corrected to say Belgium ]