Java Annotated Monthly – September 2016
The sad news is, it’s the end of summer. On the other hand, maybe you need a break from the kids and you’re happy to shift your work-life balance towards passionate-developer-mode. The good news is it’s conference season. If you are going to be at JavaZone, JavaOne or Devoxx, not only will you be brought up to speed on what’s going on in the Java world, you can meet JetBrains people! Come and say Hi at our booth, we love chatting to people. Personally, I’ll also be appearing as close to home as Cádiz and as far away as Australia! If you can’t make it to any conferences, we will (of course) be sharing the most interesting developments through Java Annotated Monthly.
Oracle is expected to unveil its plans for a cloudy Java EE at JavaOne, which may help address concerns in the community. JavaOne is also the perfect place to get involved in the Java Community Process, especially if it’s not something you’ve considered before. User group leaders and Java Champions will be meeting and exchanging ideas and lessons learnt – if you’re not already a member of user group, you can either find a local one or join the Virtual Java User Group.
The release is still months off, of course, but it’s never too early to get up to speed on new additions to the streams API, or even to start preparing your code for JDK 9. There’s much more in Java 9 than most people realise, and some is ready to play with today.
Java 8 has seen great adoption by now. If you’re running on Java SE 8 (currently 8u101) but not making the most of new features, I gave some tips on refactoring to use the new idioms at QCon New York, and we have a tutorial covering this for IntelliJ IDEA. To leverage streams, it’s important to understand how to refactor loops to collection pipelines. While code smells may suggest refactoring is desirable, it’s important to take a structured approach. If you’re new to doing automatic refactoring in your IDE, we have a brand new introductory tutorial just for you.
It could be assumed that Java best practice is also applicable to Android development. This doesn’t always seem to be the case, maybe because Android needs special measures to work with Java 8 features, maybe because automated testing of Android applications isn’t just about JUnit but also driving the UI, maybe because developing for wearables is yet another mindset.
Some limitations of android can be overcome using appropriate tools, whether it’s switching to Kotlin, leveraging Docker in a Continuous Integration environment, or using JRebel and Genymotion to speed up development.
Back to School
There’s been a shift in thinking, even in traditional enterprise companies, that recognises the value of a great development organisation. This is good news for developers, as even more interesting opportunities are made available to us. For our part, we need to understand what tools are appropriate for the job and how to use them effectively. Of course, because of the rapid changes in our industry, we need to stay up to date and refresh our knowledge. And with the success of agile and the rise of DevOps, we are responsible for more than just writing lines of code. Even writing tests is about more than TDD, more than given/when/then. But you already knew that, that’s why you’re reading this!
A quick summary of JetBrains news:
- The EAP for 2016.3 is Out Now
- I’m running a live webinar on Tuesday Sept 13 on effective code reviews from the IDE
- On the same day we have a webinar on Akka Actors and Java 8