Some people seem to believe that Node.js might have a chance at overtaking Java in the near future. Can Java really be dethroned? Why/why not?
I do not think there is any chance this will happen. Node and Java are very different tools for different usage. Node and the tooling suite is now helping a lot to make web front a real ecosystem with great build tools, and some small server part.
But Java has a very powerful ecosystem and large codebases, the possibility to replace all with Node is very slim. In some areas, like Big Data (Hadoop ecosystem or Kafka) the JVM is the primary choice for the platform quality itself, and there is no way Node can power Hadoop in the future. We will see more and more projects using Node and Java together. Node will be often front facing to users, but it will not replace Java everywhere.
I do not think the entire Java ecosystem can jump on modules starting next November.
What did you think of the fact that Java 9 was delayed to September? Do you agree with the JCP Executive Committee’s decision not to approve the Public Review Ballot for JSR 376?
Java 9 is breaking stuff. Lots of stuff. I think all the hard work on the JVM is ready. Although Jigsaw is essential for the future of the Java Platform in the next decade, some decisions were too hard for the tool ecosystem of Java, and some tools require time to work on Java 9 compliance to be able to be used from day 1.
The delay was a good move because it allowed the ecosystem to be ready for Java 9 users make adoption easy and fast. The vote against was the only way to make Oracle delay the release, so, it was a good move. Now that everyone agrees on the Java 9 release, we hope no more delays will be necessary.
Anyway, we’ve been waiting for Jigsaw for about eight years, so a few weeks more are worth it.
Node will be often front facing to users, but it will not replace Java everywhere.
Georges Saab, chairperson of the OpenJDK governing board and vice president of development for the Java Platform Group at Oracle told JAXenter in early June that many developers will probably get started on JDK 9 without modules. How do you feel about the modular ecosystem?
Modularity inside the JDK is mandatory for the future of the JVM as a platform. The first step is to push it inside the JDK and allow usage of modules. Mass adoption will take time, for frameworks and tools to be fully compatible with it, and to advocate developers and architect the pros and cons of the modular system.
Maybe people will wait until Java 10 to start using modules in a day-to-day work and codebase, but the plumbery will be there, track record and war stories will be available, and adoption will be on a clear path. When generics came to Java, the adoption took a few years too. I do not think the entire Java ecosystem can jump on modules starting next November. It’s a chance for the community and JUGs to be efficient, meet new people and gain more audiences, because peoples will need to learn and will be looking for news. This kind of release has a great effect on the community and will allow boosting the average knowledge of the platform.
What is the most important misconception about Java 9?
The way java.lang.reflect is de facto deprecated is a mistake because it will create a lot of errors and frustration. Lots of developers use it using frameworks and do not know how it works, and pedagogy will be needed. Interesting to see how it will work.
What would you like to see in Java 10?
Pattern matching and Value class, but I’m a functional developer, so I’m biased.