Year in review: Java in 2017
As 2017 draws to a close, it’s good to stop and take a look at how things have gone over the past twelve months. Today, we’re looking at Java: what happened this year and what’s next for our favorite programming language.
This past year was certainly a year of contrasts. From exciting new launches to terrifying security threats, 2017 had it all. As the year draws to a close, we’re taking the time to stop and reflect on some of our favorite technologies from this year. Next up, Java.
Lots of things happened this year in Java: from the drama of Project Jigsaw to the delays for Java 9, this year Java had it all.
Java celebrated the new year with a whole host of things going on. Jeff Luszcz went over some of the pitfalls in using “free” Java software. Would there be an agile Java standard? What features did we want to see in Java 10?
Finding the best programmers requires an international search (turns out, Poland is great for Java developers!). We also looked at which direction Java EE Guardians wanted Java EE 8 to go in, how developers Googled their way out of problems. We also talked to Davor Bonaci and Jean-Baptiste Onofré about Apache Beam, which had just graduated to a top-level project at Apache.
Eclipse news: Sven Efftinge talked more about how the language server protocols in Eclipse are a win-win for Java users. Eclipse Che 5.0 arrived with support for Java thanks to the aforementioned language server protocol. We talked to Doug Schaefer just after he announced the real next-generation Eclipse IDE based on Electron, Eclipse Two. We also took a look at Eclipse MicroProfile.io.
We took a lot of top tech lists in February, mostly focusing on results from our JAXenter survey on important programming languages, the top programming languages, and 5 hottest jobs in IT. Our ongoing coverage of Java 9 features continued with a look at the JDK 9 early access documentation. We also talked about the depreciation of the Java browser plugin.
We also took a look at some of our favorite machine learning libraries, including Apache Spark, Weka, MOA, and more. Judy Alex went over 15 useful code snippets for Java developers. Yakov Fain explained why TypeScript is super simple for any Java developer to learn. Java-micro was a new framework promising to help developers create microservices easily in Java. And Daniel Bryant explained why testing these microservices wasn’t a big deal.
What else happened in February? JHipster 4 showed up, with Angular 2 support and more. We found out more details about TensorFlow 1.0. Google’s Cloud Spanner was released in beta with full support for Java. The Oracle v. Google lawsuit continued apace over the fight over those darn Java APIs.
And finally, the next JAX Mag came out on FinTech and what’s in it for developers!
We kept our fingers to the pulse of tech trends, looking at the most popular tools, top frameworks, cloud platforms, top databases, and top architecture trends. We also looked at 5 programming languages you ought to learn in 2017 and the top 5 machine learning libraries for Java. Our continuing coverage on Java 9 went over the draft Public Review specification and the second bugfixing stage.
We started our Women in Tech series with a bang by interviewing Heather VanCura, the Chair of the JCP at Oracle. Another series, the Pirates of the JVM, introduced readers to all sorts of languages in the JVM universe, big and small alike. So, this month we took a look at Xtend, Clojure, and Golo.
Matt Raible led a tutorial on how to create a simple JHipster 4.0 application. Karsten Sittenberg explained how you could build and test Angular apps using Docker. Josh Juneau explored the JSF, we went over what to expect from Java EE 8, and Gradle 3.4 improved support for building Java applications. And there was even a JAX Finance session on how to utilize financial portfolio management with Java.
We took a look at the microservices trends of 2017, Java’s predicted demise, and whether or not Java is actually bad for beginners. A close look at Stack Overflow revealed that Java is super popular from 9 – 5.
Nebrass Lamouchi dove deeper into NetBeans IDE 8.2 with an experimental tutorial using Spring Boot and Docker. Jooby 1.1, a micro web framework, arrived. Steve Naidamast finished his series of exhaustively researched history of software engineering.
What were we reading in May? Readers were mostly concerned with news from TIOBE Index showing Java on a slippery slope downward.
However, May was consumed with Java 9 drama, as proposals about JDK 9 and the ever-contentious Project Jigsaw continued to rock the community. Decision day led to a number of no votes, leading to delays for the release date. We caught up with Remi Forax, who explained what these delays meant, why there might be some benefits in saying no, and went over how they were patching things up. Additionally, we chatted with Robert Scholte about how Maven was already working well with Java 9, despite their criticisms of Jigsaw.
Other news included the announcement that the Father of Java James Gosling moved over to start a joint venture with AWS. In Eclipse news, an early look at Eclipse Oxygen showed it was all about usability and a better workflow in Sirius. We also caught up with the using Clangd and the language server protocol in Eclipse.
Allice Watson explained how a String can be converted into an int data type in Java with examples included. Sohel Ather went over the big differences between Java and Go. Our programming pub quiz series took a look at Java trivia.
Big news this month included the official date for Java 9, delayed back to September 21. Georges Saab explained why these delays meant little to the substance of Project Jigsaw itself. And the whole thing was back on track with only a few bumps and failures in the road.
Eclipse Oxygen was finally released as well! We chatted with Michael Istra about what was new in this “classic IDE”. We also got the official scoop from the Eclipse Foundation. More Eclipse news was all about the language server protocols, how to edit code with them, and how to use them with Eclipse Xtext and Theia.
Michael Gruczel explained how to set up a REST-based microservice with Spring Boot in his tutorial. Since JavaFX is now part of the Java SE 8 SDK, Johan Vos gave us a quick overview of this essential framework. Developers could rest easy, knowing that Java was never going to die and that MVC 1.0 was here to stay. And finally, we had an excellent tweetstorm of Java opinions with Lukas Eder.
Project Jigsaw drama continued this month: top influencers weighed in on the future of modularity, misconceptions about Java 9, and why we shouldn’t listen for Java 9’s swan song just yet. Denis Danov went over his top 9 improvements in Java 9.
We took a look at our favorite open source tools for machine learning and how to use AI to make our code better. We also took a look at the top 20 Java influencers on 2017, why Java developers prefer Java 8, Spring MVC and Maven, and the final draft of Java EE 8.
IntelliJ IDEA 2017.2 wasn’t waiting around for the official Java 9 release, but dropped on time with Java 9 support all the same. Neither was JPMS, which also arrived on time.
Michael Gruczel had a fairly enlightening tutorial on Spring Boot microservices and architecture in PCF and Kubernetes with parts one and two. AJ Philips explained how to get your Java errors under control with error monitoring.
In Eclipse news, Mike Milinkovich explained how “the JDT team has worked hard on building great Java 9 support for Eclipse Oxygen”. There was also debugging the Eclipse IDE for Java developers, a look at what’s new in Eclipse Linux Tools 6.0, more language server protocols in Eclipse Orion, and how to implement a JSON-RPC protocol with Eclipse LSP4J.
More Java 9 news as we slowly trudged our way towards the delayed release date. Monica Beckwith explained why Java 9 was much bigger than just Project Jigsaw.
We took a look at why Java is more likely to outlast Go, Java pointers for beginners, and why the future looks good for Java EE. For one thing, Oracle is looking into opening up Java EE. We looked at where this journey might take us here.
As for Eclipse, here were some of the top Eclipse Oxygen improvements for the IDE, Java, and Git. We also found out the Eclipse is one of the most searched IDEs, along with Visual Studio and Android Studio. Additionally, we took the time to review Eclipse MicroProfile, one year in. Also, Ceylon now calls the Eclipse Foundation home. We also celebrated the massive real-life solar eclipse in August with a look at our top 5 Eclipse IDE posts.
Also this month: the latest JAX Magazine – The answer to Java 9 and modularity!
All of the delays were worth it, as Java 9 finally arrived. We looked at new features, Java SE 9, and Java EE 8, and more. Stephen Colebourne explained why modules are a long-term feature and David Heffelfinger dissected Java EE 8. After the long effort of bringing Java 9 to print, Oracle proposed a more orderly model with two Java feature releases per year.
One of our more popular posts this month was an exploration into the energy-efficiency of languages. (Spoiler: Java is very green, Python not so much.) We also looked at the top Java libraries for saving time, what role Java might play in the future of Big Data, and why Python jumped past Java on Stack Overflow this month.
Uwe Schindler weighed into whether Java was truly free at last and Falk Sippach explained that the most substantial argument in favor of Java 9 is the modularization of JDK itself. We also looked at pitfalls for the unwary in JDK 9 and why Java EE 8 was such a critical release.
In Eclipse news, Java EE officially moved over to the Eclipse Foundation and IBM open sourced their own JVM.
More Java 9 news this month. Rabea Gransberger highly recommended developers get familiar with modules. Simon Ritter pointed out that “JDK 9 does not have big features for developers, it’s about changing the runtime with modularity”. And Nicolai Parlog explained that “Java 9 can do for modularity what Java 8 did for functional programming”.
According to Daniel Bryant, “if people jump on Java 9 now, they will probably have to follow the train through 18.3 and 18.9”. However, Lukas Eder argued that “Jigsaw won’t be important for consumers for quite a while — we already have Maven and OSGi”. And Marcus Biel explained that “Project Jigsaw is finally giving us a badly needed Java seatbelt”.
Over at Eclipse, we watched as Java EE took its first steps into Eclipse Foundation as EE4J and learned why “we should use Java EE 8 in present tense and EE4J when speaking of the next release”. We saw some key takeaways from EclipseCon Europe 2017. Eclipse Oxygen.1a came out and so did Eclipse MicroProfile 1.2.
The Java 9 news flow seemed to slow down this month (possibly because all eyes turned to the newest Angular?) and things started to level out. Richard Gall went over how Java 9 will change your life, Simon Ritter wanted to know who will use JDK 9, and Stephen Colebourne explained why he’s sticking with Java 8 for the moment.
As a part of its initiative to speed up the release cycle, Oracle announced that “most feature releases should contain at least one or two significant features”. Lukas Eder explained how we should be able to use JDK 10’s local variable type inference with jOOQ.
This month also saw the release of Javalin, a lightweight web framework for Kotlin and Java users, and Apache Kafka, which spent an awful lot of time in development hell. We also found out that Java has some of the most original code on GitHub.
As the year draws to a close, there are only a few big stories left. The next Java version will be officially called JDK 10.
This month, we looked at 10 reasons why data scientists need to learn Java and 5 programming languages you need to know for DevOps. We also looked at how machines expected to write most of their own code by 2040, one year after Java’s presumed death.
2018 and beyond
What’s in store for Java in the coming year? Well, according to Oracle’s new schedule, it should be ready in late March or early April 2018. The features that Java 10 seems most likely to contain are those with JEPs currently in Targeted or Proposed to Target state. Currently, this consists of the following features:
- Local-Variable Type Inference
- Consolidate the JDK Forest into a Single Repository
- Garbage-Collector Interface
- Parallel Full GC for G1
- Application Class-Data Sharing
- Thread-Local Handshakes
However, only time will tell as we look towards the future. Despite all the drama, it’s been a great year for Java and we’re excited to see what’s coming next!