Is Java growing in the right direction?

Over at Vanilla #Java, there was an article showing Java’s popularity as a language compared to others and then it ranked them based on the level of abstraction at which they were designed.  The most popular language is C with 17.9% and next was Java with 17.4%, followed by Objective-C, C++, and C#.  So, of the top five languages, four are C or direct decedents of C and they all lower-level languages whereas Java is a higher level language.  He argues that although Java is adding lots of neat higher level features like Lambda expressions, Type Annotations, and Virtual Extensions they’re neglecting the ideas of structures and other lower levels of constructs that are important in areas like mobile and embedded systems which are likely to become more dominant in the future.

From my perspective, I think adding in more higher level constructs is a great thing as the cost of computation and storage is becoming negligible at this point for all devices.  It’s much more important to focus on making the programmers more productive since they’re the true overhead cost of product development at this point.  Now, I don’t mind Java supporting lower-level ideas like structs (I still enjoy writing C/C++ code) but I wonder about the time it takes to implement a lower level feature when hardware has Moore’s Law working for it.  Right now, I think Java (and C# for that matter) makes good trade-offs between high-level and low-level features to keep itself relavant in today’s market even if it is missing out on some of the embedded device market.

I’m completely ignoring the state of the alternative JVM languages like Groovy, Clojure, Scala, etc. which I think add some very nice possibilities to the JVM programmer.

If anybody is reading this and cares to comment on the state of Java, feel free to do so in the comments below. 🙂

2 thoughts on “Is Java growing in the right direction?

  1. I think Java is a big and getting bigger. Higher level is definitely the way to go, but I’m not convinced Java is improving the abstractions we can write.

    At what point do we abandon a language and move on? If you have to convince your company to move to Java 1.8, why not convince them to move to a newer language that better fits your technical needs? That’s what choosing the right tool for the job should be about.

    Some things that could hurt Java: Oracle, as well as companies like Google’s interest in other languages (in Google’s case, Go), and the rise of polyglot platforms like GitHub and Twitter who refuse to let any one language dominate.

    I could see the JVM living on with Groovy, Scala, and Clojure. I could also see Java living on with an equivalent of CoffeeScript (a Ruby-like language that ends up as best-practice-ish JavaScript); developers could write in a language that feels better, but still have all the power of Java.

  2. Java’s strength (and the same can be said with C#) isn’t so much the language now but the JVM (or CLI in C#’s case) that is the true innovation. The ability to let other languages interoperate easily with other languages allows a best tool for the job approach.

    I think Oracle bungled just about every dealing with Java for a while but they now seem to be getting to the point where they understand the ecosystem and realize the typical heavy hand of Oracle doesn’t work.

Leave a Reply

Your email address will not be published. Required fields are marked *