The new year and Christmas aren't far gone, so it’s a good time for Java developers to wear a warm sweater. And, of course, it’s an excellent time to summarize the previous year and make some plans and forecasts for the next. Personally, for me, it’s almost a tradition. I’m going to continue it and write a couple of thoughts about 2017 for Java developers.
But before this, let’s try to recall what happened in 2016.
Cloud of Events in 2016
Java 9 hasn’t been released yet, but at least we know that it will have HTTP/2 support and JShell for experiments with code. Microservices have become something absolutely normal, whereas monoliths sound like something ancient. Streams (you know, reactive streams) were exposed at all the big conferences this year! Data engineers, data scientists, data pipelines, data galore! Of course, Java isn’t relevant to all of these “data” phrases, but the JVM platform provides an amazing ecosystem for data: Kafka, Spark, Flink, Cassandra, etc. This amazing Apache “squad” has made significant progress in the last year.
I remember the spread of functional programming into the object-oriented territories of the Java kingdom. In support of this, just take a look at the number of conference talks about ReactiveX, Akka, or Javaslang. This circumstance shows us a direction where Java developers have to look.
So that’s how I remember 2016. Write in the comments about your memories from the last year. It would be interesting to read what impressed you in the JVM world in 2016.
General Java Forecast 2017
So what does 2017 bring for a Java developer? It will be definitely rich on events, releases, and news. But let’s be real. The most dramatic moment in 2017 should happen in July. I’m talking about the Java 9 release. And this means that you don't much time to start finally using lambdas from Java 8. I hope you already learned how to use them, otherwise shame on you Jon Snow!
Looking at JDK 9 features, it’s not hard to predict that Java developers will need to learn how to use at least two of them: the HTTP/2 client and modules. As for me, the rest of features, like micro-benchmarking or the system processes API, probably won't be so popular among Java developers.
Web Java Forecast 2017
When someone from the Java community starts speaking about web development, I bet there is 99% chance that the Spring Framework is discussed. Here is a good illustration of this:
So what should you expect from Spring in 2017? You won’t believe me, but Spring will become functional and reactive this year! So, you have no chance to avoid functional programming at all.
But what about Java EE? This is a good idea to stay in good relationships with OOP: use Servlets and JSPs for web apps. Say NO to functional programming.
In order, to complete the web forecast, I have to mention Lagom. I don’t know have you ever heard about it, but this is a new player in JVM web-game. I cannot say that this is a game changer, but its ideology looks pretty modern. Its main purpose is to help Java developers to decompose monoliths into microservices. Lagom already has multiple releases of a Java API, but what I’m waiting for is the first release of the Lagom Scala API.
Play Framework also looks promising. Since its 2.0 release, web development has remained productive.
Plans for 2017
As you probably noticed, this article is published on my blog. So it makes sense to write about my plans for 2017, in order to notify you about the content that will be released here over the course of the year.
I’m planning to complete the Scala specialization on Coursera. I have already completed 3 out of 5 courses. Why have I chosen Scala? Well, I’ve already explained this decision in another blog post. To be concise: as functional programming displaces OOP more and more, it’s a good idea to know a suitable programming language for this purpose.
The fourth course for my Scala specialization is dedicated to Spark. So I’ll definitely write some posts about Apache Spark.
Apart from this, I want to work more with some tools for reactive programming. I mentioned some of such tools above. I’d probably choose Akka.
That’s pretty much all I wanted to say. Now you know what to expect from this blog in 2017. Of course, I’ve prepared extra surprise content for my readers. This year will be definitely interesting for those of you who are ready to learn something new and functional!
And what about your plans for 2017?