Skip to main content

Are we becoming Java Dinosaurs?

Posted by giovanisalvador on January 7, 2008 at 9:17 AM PST

I was trying to think specifically when a developer, who codes in a specific programming language, is starting to become a dinosaur. It's not his/her age because there are lots of old guys working with new technologies and even creating them.
But when I was reading this post from Bruce Eckel (it has been discussed here as well) I was thinking that when a technology stops doing new things then that technology is in process to make its "followers" as dinosaurs. Of course, Bruce Eckel is not fully suggesting Java should stop adding any feature. His point relates for adding features when we really need them.

But if Java starts the process of becoming, as he says, "stable" then does that mean we are becoming dinosaurs?

Let's analyze some things:

When a programming language stops adding support to new technologies then how that technology will have new people working with it? Imagine if Java has not provided any answer on SOA (through JBI or Web Services)!? Nowadays is all about SOA. But how would developers make their applications "SOAble" if they could not find in the language they are using a support for that feature? They would migrate to new programming languages or technologies that can offer such approach.
Would the same developers create applications in that "old" language even if language support all the application's features? I don't think so. How many C/C++ applications are being created compared to technologies like Java and .Net?
I don't have the answer but at least in the world I live I don't see that much (I would like to say none at all!!!).

Another interesting thing is that today in JCP, the number of JSRs in Review Stage is 0 and there is only one Early Draft Review.

If Java (JCP) starts the process of reducing the number of new features added to the language (or being "stable") then I really believe I am in the beginning of the process of becoming a Java dinosaur.

Related Topics >>


The Java Language hardly changed at all (IF at all, I can't find a reference) between 1.2, 1.3, and 1.4. Only in Java 5 did the actual language change with the introduction of Generics.

The JVM got better, and there were some minor changes regarding inner classes and what not, but basically the language itself did not really change. Rather, the class library changed.

Now many conflate the two. That the class library == the language. But that's not the case. Why the language is heavily dependent upon the library, it's not necessarily bound to the library.

Much of the talk today is about changing the Java syntax to add new capabilities, rather than extending the Java through the class libraries. Where folks want stability is in the core language.

So, does that mean writers who use English are "dinosaurs"? Are we supposed to be only writing in 'l33t at this point? What about all the 50+ experience COBOL dinosaurs who are STILL in demand!?

You mix up language features and APIs. It is the main idea of Java to have a simple language and many APIs. And: Closures are no innovation. They existed well before Java. Languages like Ruby, Smalltalk, Python and many others where already in use when Java came into use. There is really no innovation with closures, they are just function pointers in disguise and can be elegant in languages designed around them. This doesn't mean they are innovative or essential for every language. The whole closure talk is just herd behavior. This season we cannot do without closures, last season it was aspect oriented constructs next season it will be ??? But Java needs to be a stable platform for software design. If we always include the latest techie vogue we end up in something very hard to read. And the straightforwardness of Java is its main point ! Other languages have other main points. This has nothing to do with evolution or becoming a dinosaur, it's choosing the right tool for your work at hand. By the way: The dinosaurs didn't become extinct. Look at all the birds flying around, they are all little dinosaurs and they make a great living since a long, long time :-)

I think there's an ambiguity in the reference here: the platform or the language? Declaring the Java _language_ "stable" and - let me exaggerate - not ever adding or changing any language feature won't prevent you from doing anything new, if somebody just provides the proper APIs in the _platform_. For instance, I might be wrong but I think that the entire RealTime specification just introduces new classes, not language changes.

I think it's really difficult to give an objective definition of "dinosaur language", especially if we don't want to consider marketing hype as Bruce's for Flex or as the one from Sun evangelist for Java ;-)

It might happen one day but frankly to start worrying about this now is a bit Chicken Little. There is so much infrastructure out there built in java that we're not going to be extinct any time soon.

If you're worried about new features, languages or frameworks supplanting Java then check out Jeff Atwood's blog/rant about Magpie Developers and our collective tendency to chase the shiny new things.

Thank you for your comments. I didn't mean to be polemical with this. And yes, I am talking about both language and specs for technologies. Thanks again for this discussion, I am glad to see everybody's thoughts. Regarding "dinosaur", I am talking about people who uses technologies which don't have too much evolution and are in the market for decades, like COBOL. In Brazil, this is a common terminology and not bad.