Java Annotated Monthly – December 2016
The holidays are coming but the news never stops. This month we have articles about Java 8, 9 and beyond as usual, and a mixed bag of fundamentals, popular libraries and other JVM languages. As the end of the year is a good time for retrospectives (or it would be, if we weren’t so busy trying to finish everything before all the parties), we’re also taking a look at what it means to be a competent developer.
Not all elections are doom and gloom. The 2016 JCP Executive Committee elections are over, and I personally am proud to see the London Java Community re-elected once again. The JCP is continuously improving to provide the kind of standards process a language like Java really needs, and it’s fantastic that user groups are involved in this as well as vendors and individuals, it shows the developer’s voice is important and can be heard.
Beyond Java 9
Just because the language developers are (quite rightly) taking the time to get Java 9 ready for release doesn’t mean the future of Java is entirely on hold, with value types being the most talked-about feature for a post-Java-9 release.
Java 9’s big ticket item is obviously Jigsaw, so it’s a good idea to understand the Future of Modularity. It will be particularly interesting to see how Jigsaw modules will interact with Maven, Gradle and IDE modules.
Proposals are still being submitted for Java 9, including ahead of time compilation.
The addition of private methods to interfaces in Java 9 combined with Java 8’s default and static methods on interfaces means it’s important to brush up on design practices like preferring composition over inheritance.
IntelliJ IDEA 2016.3 has a whole load of new and updated inspections for Java 8, including one for removeIf. However, it’s important before rushing off an implementing new things to understand the performance implications (video). While we’re on the topic, you may want to look at Java vs C performance (video).
Java 8 features are increasingly supported by popular frameworks, and Streams are becoming a mainstream pattern for processing data. But have you considered how they could be converted to database queries? And how can we have faster functional data structures?
And to see how others are using them, here’s a worked example of stream processing.
And remember, Android is not exempt from unit testing.
If you use Spring, you’ll want to check out this cheat sheet. You may also want to watch our screencast showing the Spring updates in IntelliJ IDEA 2016.3, read about how to wire up microservices with Spring Cloud, see these tips on building a Spring Boot API, and watch this presentation on developing a geospatial webservice with Kotlin and Spring Boot (video). We’ll talk more about Reactive Programming later, but for now take a look at how to go reactive with spring data.
For a bit of balance, read why someone might choose Java EE over Spring.
Other Libraries, Frameworks & Languages
We talked last month about Reactive Streams, if you’re interested Lightbend have published a free e-book on Designing Reactive Systems, you can watch Reactive Programming for Java Developers (video), look at RxJava by Example and RxRecipes for composition. Reactive is an overloaded term, so it’s useful to read about the differences between Reactive Systems and Reactive Programming.
Continuing the industry buzz words theme, apparently Microservices have a long history. And if you want to be fully-buzz-word-compliant, read about an Event Sourcing, Microservices, CQRS architecture.
To finish this section, here’s 50 Tips and Tricks for Android Studio for the Android devs out there.
This month I’ve seen a strong trend of articles and talks on how to improve as a developer (video), understanding how ethics may play into our job and how some guidelines may help us become more professional.
Can you become an expert developer in 10 000 hours? Can you recognise code that fails the good taste test and do something about it? Do you know the elements of modern Java style? How do you become a better developer? Are there specific things a Java developer should really be good at? What are the current JVM trends, popular frameworks, and trends amongst developers? Is your CV/resume horrible? Once you are in a position to pick your next role, how do you evaluate it?
A common theme in those articles is that communication matters. So does being part of a diverse team, which means that identifying cognitive biases that hinder collaboration will make you a better developer. Many successful companies these days are genuinely focused on inclusion as a competitive advantage.
Of course, what this means is…
IntelliJ IDEA 2016.3.1 EAP is out and ready to test. Give it a try and share your feedback: https://t.co/cVZBKzZQPD
— IntelliJ IDEA (@intellijidea) November 30, 2016
Complete this form and get Java Annotated Monthly delivered fresh to your email.
Subscribe to Blog updates
Thanks, we've got you!
Java Annotated Monthly – December 2023
The December edition of Java Annotated Monthly is here! As usual, you’ll find all the latest Java and Kotlin updates as well as details of key industry events for networking and learning. This issue also features the latest release candidates and targeted JEPs alongside Java tutorials and articles a…
Java Annotated Monthly – November 2023
Welcome to the Java Annotated Monthly – November 2023! As the Java world keeps on spinning, we've gathered a treasure trove of articles, talks, and insights to warm your Java developers’ hearts. This month's edition features a delightful blend of the latest technological advancements and the ever…
Java Annotated Monthly – October 2023
Welcome to the October edition of Java Annotated Monthly! In this issue, we're plunging into the world of Java and tech. We'll explore the latest and greatest in the recent release of Java 21, share exciting news about the new EAP for IntelliJ IDEA 2023.3, and bring you a handpicked selection of …
JPA and React Plugins: From Buddies To Full Members of The JetBrains Family
We are excited to announce that JPA Buddy and React Buddy have joined the JetBrains family. Positioned as powerful plugins for working with JPA data and React applications, respectively, they will offer even more functionality for IntelliJ IDEA and WebStorm developers moving forward. With this ac…