JAX London Blog

JAX London, 09-12 October 2017
The Conference for JAVA & Software Innovation
15
Aug

Java is to JavaScript as ham is to hamster

Java is to JavaScript as ham is to hamster

Source: Shutterstock

In this interview, Baruch Sadogursky, argues that there are many programming languages and they don’t necessarily compete with each other.

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?

Java is to JavaScript as ham is to hamster. There are many programming languages and they don’t necessarily compete with each other. JavaScript is an amazing front-end language and a true king of the browser, but JavaScript on the server side in general (and Node.js in particular), while being an interesting experiment, won’t replace a proper back-end oriented language such as Java.

This year, Stanford’s famous introductory course for programming dropped Java in favor of JavaScript. What does this say about the relevance and popularity of Java?

Universities are usually years behind the industry trends in adopting programming languages for their courses. At Stanford, Java was adopted in 2002, five years after it was introduced and 2-3 years after it already became extremely popular. So, Stanford just catching up on Javascript popularity among younger developers trend we see for a number of years now in surveys like StackOverflow and GitHub stats.

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?

I think it was a good decision. The conversation that happened after the vote and the changes that were made are for the best. We needed this “wait, let’s talk” time.

The most important misconception is that the industry massively rejected Jigsaw and it was removed from Java 9

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?

That’s good. Most of the development doesn’t need modularity and Jigsaw in its old form brought a lot of complexity and limitations without clear benefits. It’s an extremely important move for the JDK, no doubt about it, so Jigsaw is good, but encapsulating it in the platform as a first step is the right move.

My overall feeling on Java 9 modularity is that new projects will probably want to investigate whether using JPMS will give them any benefits, but most existing large code bases will not be migrated to use it (indeed, they might not see any benefit from it unless they were already going to re-architect into smaller pieces, for example for migrating from a monolith to microservices).

The difficult part, in my opinion, falls upon the developers of library code, those open source jar files we all use daily. Some developers will want the libraries they depend upon to be true modular jar files, not automatic modules, which puts pressure on library developers to migrate their code. There are benefits to doing this, especially for library developers, for example, they can hide away implementation details and internal APIs (the very thing Jigsaw was designed to do), but it will be non-trivial for many to do this migration and the benefits need to outweigh the costs.

Top 20 Java Influencer Baruch Sadogursky

What is the most important misconception about Java 9? How about Jigsaw?
The most important misconception is that the industry massively rejected Jigsaw and it was removed from Java 9. The industry forced a dialogue that ended up in a good compromise that kept Jigsaw in Java 9 but in a more developer-friendly way.

Java is to JavaScript as ham is to hamster. There are many programming languages and they don’t necessarily compete with each other. 

What would you like to see in Java 10?
I am waiting for project Valhalla. It will really change the way we write Java.

Behind the Tracks

Software Architecture & Design
Software innovation & more
Microservices
Architecture structure & more
Agile & Communication
Methodologies & more
Emerging Technologies
Everything about the latest technologies
DevOps & Continuous Delivery
Delivery Pipelines, Testing & more
Cloud & Modern Infrastructure
Everything about new tools and platforms
Big Data & Machine Learning
Saving, processing & more