JAX London Blog

Every Language has its reason for being

Jul 24, 2017

Every Language has its reason for being

Source: Shutterstock

In this interview, Lukas Eder emphasizes the statement that individual languages do not matter in the big picture because every language has its place and reasons for existing.

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?

The only people who claim this are the vendors behind Node.js. We cannot say anything about Java’s long-term future (next 20 years) but if “near future” means the next 2-3 years, Java isn’t going to be dethroned by anyone.

Java is still very popular and the upcoming improvements in project Valhalla, Graal and Truffle, and many others will ensure that Java will keep up with the state of the art.

Each language has its place and reason for being and Java has been the most popular for a variety of reasons.

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?

Absolutely nothing. When I studied computer science at EPFL (where the Scala language was created), my programming courses included funky languages like Ada, VSDL, PL/SQL, SQL, Java, XSLT, Scala, Prolog, C++. If I had studied today, I’m sure JavaScript would have been part of the curriculum as well.

I do hope that we, as an industry, including university faculties, realize that individual languages do not matter in the big picture. Each language has its place and reason for being and Java has been the most popular for a variety of reasons. Individual universities are not going to change that, and why should they?

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?

While I’m sure that Oracle, as well as other JVM / Java EE vendors, do have important stakes in this significant project, I’m personally rather bored by JSR 376, which will not affect my work to a great extent in the near future. I’m much more curious about what’s going to be included in Java 10!

I do hope that we, as an industry, including university faculties, realize that individual languages do not matter in the big picture.

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?

I’m sure Georges is right. I perfectly understand that Jigsaw (and modularity) is important for the JDK to evolve. The community has found “good enough” solutions to modularity long ago through tools like Maven and/or OSGi, and others. The community probably won’t rely on the new module features immediately.

Don’t get me wrong. It’s important that Java has a module system, but I don’t think Java 9’s implementation will be very exciting for most of us. This doesn’t mean that a future Java won’t improve it.

Top 20 Java Influencer Lukas Eder

 

What would you like to see in Java 10?

Everything that is being discussed in the context of project Valhalla and other projects, including:

  • Array 2.0
  • Value types
  • Generic specialization
  • ADT and pattern matching (I’m also personally hoping for first class union and intersection types)
  • Declaration site variance on generics
  • Generic enums
  • Named and defaulted parameters

Oh, and if I could get those multi line strings in Java, as a SQL person, I’d be extremely delighted! I’d also love to see other sugar such as:

  • Data classes
  • Flow sensitive typing (no need to cast inside of an “if-instance-of” block)
  • Destructuring of Map entries and other types
  • List and Map access literals
  • Much more powerful Stream API with many new features
  • Type aliases
  • Local methods
  • Local imports

Some of you may have noticed that these features would have been stolen from languages like Kotlin or Ceylon.

Behind the Tracks

Software Architecture & Design
Software innovation & more
Microservices
Architecture structure & more
Agile & Communication
Methodologies & more
DevOps & Continuous Delivery
Delivery Pipelines, Testing & more
Big Data & Machine Learning
Saving, processing & more