Alex headshot

AlBlue’s Blog

Macs, Modularity and More

EclipseCon 2014 Day 3

2014, conference, eclipse, eclipsecon

What a day yesterday was. The future is truly packaged in small pieces, and the small machines are certainly out in force. It’s a pity the keynote was interrupted by the power glitch, but stranger things have happened.

It’s also surprising that the IoT project has grown so quickly; only last year at EclipseCon I was interviewing Benjamin Cabe on the state of the M2M projects when there were only three of them, and they have grown to 13 projects. Benjamin has published his slides on what’s new in this space, which is certainly a lot. Not only that, but securing the internet of things is also on the radar (and I suspect will become increasingly important). Oh, and if you miss today’s flying sharks (yes, really) I have a video (from EclipseCon Europe) which one day I’ll get around to making available on Vimeo …

Still, if you managed to get out of the bar and to bed before Pi o’clock, you’ll probably enjoy this morning’s keynote. It’s difficult to comprehend the pace of change in the past few years, but given that the web has recently celebrated its 25th birthday it’s sobering to think that young children growing up will not understand that phones didn’t always use to have touchscreen or that pausing TV didn’t used to be possible (and they’d probably laugh at black-and-white film). The keynote will look ahead and discuss what may happen in the next decade, and asks whether or not technology is enabling us to be creative or enslaving us. Will 1984 be more like 1984 or 2014?

Polarsys have camped out in Grand Peninsula B today, and have a number of interesting topics; being able to trace the inside of the application (after lunch) looks interesting. There’s also something on Papyrus, the UML editor for Eclipse – hopefully advances in that modelling tool will give Eclipse an editor to be proud of (for those that still model using UML …)

If you don’t know anything about Xtend, you really owe it to yourself to go along to Sven’s “Code generation with Xtend” talk. Xtend is really powerful at generating clean Java source code, which gets compiled on the fly using the native compiler resulting in clean bytecode that is backwardly compatible (unlike other toy languages, which treat backwards compatibility as an afterthought if at all). You can also use Xtend to write lambda code in either Java 8 or Java 7; even though the new Java APIs are not available there are a number of extension methods which are actually more powerful than Java’s extension methods. I also spoke with Sven on xtend and xtext last year.

There’s a couple of OSGi related tracks today; “What’s cool in OSGi” is worth going to if you’ve not been following OSGi for a couple of years, because there’s some interesting things coming up with R6, and there’s a lot of interest in OSGi and the Cloud (with Thomas Watson giving a talk after lunch).

JavaScript turns up a few times today for those that are building more client side; how to integrate HTML inside Eclipse, how Orion works, how Node-RED first together; and in the afternoon, the VJET JavaScript editor and modular JavaScript talks are showing how Eclipse is growing in that space.

Finally, a shout-out to CDT, my favourite non-Java project at Eclipse. Doug Schaefer will be talking about how Eclipse CDT and JSDT can use Qt. (Doug has also been working a lot with Thomas Schindl on an SWT port of JavaFX) There’s also a couple of talks on debugging, from printf to TCF.

The day concludes with some really cool things; there’s a demonstration of using Eclipse as an Arduino programming platform for kids after lunch. I’ve experienced first hand (through Code Club) what it’s like to teach kids and they really love playing with this stuff. Go along and listen to Melanie talk about about how to program an Arduino and how kids can find out what’s new. Then there’s “flying sharks and m2m” – I loved this presentation at EclipseCon Europe and it’s worthwhile being there just to see how far you can take a crazy idea.

I hope that everyone enjoyed this year’s EclipseCon conference, and hope to meet some of you again in future years.

EclipseCon 2014 Day 2

2014, conference, eclipse, eclipsecon

Wow, what a day yesterday was. From Mike’s entertaining keynote with a forward looking view of Eclipse (both as an IDE and also the wider foundation) to the release of Java 8 (and my InfoQ article), there haven’t been many EclipseCons that have kicked off with such gusto. And with the combined release of Java 8 support in Eclipse along with new releases from JetBrains’ IntelliJ 13.1 and NetBeans 8.0 on the same day, the whole Java 8 day has ben one to remember. For those that questioned whether or not Oracle would be a good steward for Java, this certainly answers the question YES – right down to Mark Reinhold’s list of community members who helped with the release. And as if that wasn’t enough, there were several new contributions to the Eclipse platform last night as a result of the Eclipse Hackathon – making it easy for people to contribute using powerful tools like Gerrit is an excellent way of growing the ecosystem, because today’s contributors are tomorrow’s committers.

By the way, Martin Lippert’s Flux demo is available on YouTube (under the older name of Project Flight) if there are people who you’d like to share the future with.

Today sees a track focussing on the Internet of Things in Grand Peninsula B; we’ve already past the point where there are more mobile phones than people on this planet, and it’s not going to be long before we have more (non-computer) devices per person as well. From yesterday’s excellent flying shark demo to the people counter (which has a video available on YouTube courtesy of Eclipse Live and Ian Skerrett), there’s a lot happening in the IoT space at Eclipse. Many of these systems are using MQTT to communicate and share data (if you want to find out more about MQTT, I have an interview with Andy Piper on the Paho project, which provides MQTT client side tools). There’s even a raspberry pi demo showing how it can be used to hook up with a TV, which sounds like a fascinating application (especially now Java 8 has a package specifically for Raspberry Pi’s hardfloat ABI).

The cloud does pop up in a few places in the schedule today; both Scout and Java developers have cloud-based talks, and there’s a follow-up to the Flux project after lunch in Grand Peninsula A if you wanted to find out more.

Personally I’m interested in finding out more about the “extreme” git branching for continuous delivery – more and more people I know are using Git as their deployment mechanism, and it’s baked in to tools like Docker (which is becoming a standard for launching containers custom tuned to particular applications) – and git will be at the heart of all this change.

Finally there are some traditional Eclipse/Java talks, such as the Eclipse tips and tricks after lunch, and the JDT lambda expressions talk at the end of the day. There will be information there for people both new and old, but by this time next year I expect we’ll be seeing a lot more lambda-isation of APIs (and if you missed yesterday’s talk by John Arthorn on Java 8 APIs, his slides are available as an HTML slideshow on GitHub).

If you didn’t manage to get to the EclipseCon hackathon, and you’re interested in learning how to contribute, then there’s another chance later tonight in Harbour, along with the other BoFs that are organised tonight. And there’s a Late Night sponsored by Atlassian – Angry Nerds to the rescue!

Java 8 Released

2014, java

It’s official – Java 8 has been released. This brings one of the biggest changes to the Java platform since the introduction of generics back in Java 5, almost a decade ago. I’ve written up some more about the release at InfoQ.

Along with the usual performance upgrades and improvements, there are some that stand out:

  • No More PermGen – the PermGen, a HotSpot limitation that meant only a certain amount of String data could be held in memory without restarting, is now gone. The Java VM will probably continue to accept the -XX:PermGen (used by many Eclipse users) with a warning saying it is no longer needed, but at some point in the future will likely be removed for good.
  • Dates and Times are now Jodafied – instead of building on the worst class in the world, JSR310 now provides sane ways of dealing with all manner of dates and times in Java. Lots of these have immediate value; date and time ranges, times without associated dates, time zones, calendars that are actually useful and even months that aren’t zero indexed.
  • Nashorn – JavaScript is a language whose importance has grown over the last few years, and being able to natively execute JavaScript code at speed will likely bring platforms like Node.JS and Vert.X to greater popularity
  • Streams – the collections libraries now have the ability to produce (in)finite streams of data which can be parallelised, processed and manipulated in many functional ways, the like of which Java developers will not have seen
  • Lambdas – last but by no means least, Java now has anonymous functions, aka ‘lambads’ (not to be confused with closures, which have existed since Java 1.1 added inner classes to the Java language). With the advances in the type inference engines, the ability to treat a single abstract method class as a target of a lambda (making writing Runnables trivial) is going to bring about the biggest single change in Java’s history. Toy languages like Groovy and Scala have shown that there is appetite for functional programming in Java, and whilst the functional behaviour doesn’t go as far or as deep as some may like, the fact that functional programming will be exposed to the mass of Java programmers in a sane and forward-compatible way is likely to see the emergence of many functional inspired APIs in the future

It’s really an exciting time to be a Java developer, or indeed, any JVM based language. The standardisation of these functions means that future JVM languages will be able to have some level of interoperability with Java, at the same time as taking advantage of the optimisations and under-the-hood improvements of the JVM.

The future of the Java language and JVM has only just begun.