Saturday, March 16, 2013

Java, past and future

In the past two years a lot has changed and happened. We in (Christchurch New Zealand) have had our lives turned up side down by earthquakes and bureaucracy. The 'skynet' law came into being and all the debarkle about SOPA, PIPA and all the related proposed bills in the United States.
But none of this is what I am here talking about; Java. I am talking about Java and how it has changed.

So why am I writing this blog post about Java? Well its a sad time and it really influenced me.
I only decided to write this blog post because my domain I had registered two years ago has only just expired. What was it? Well the whole point of the domain was for my Java based work.
The reason I am not renewing is quite simple. Java is dying no matter how you want to put it.

Lets look at the points of why I loved it though.

This is the biggest one of all the reasons. It was cross platform. I worked primarily in Windows and Linux (Ubuntu) environments at home and while studying so it was rather favorable for that reason alone with one binary and all. I really didn't want to have to worry too much about which platform it was on other then got the JVM installed? yes then it'll go good.

I also loved it because of its rich library support. It literally has everything you can think of or could want. Except some things like compilers and linker's which generally needs things not provided by the Java language and standard libraries.

However after I had been working in Java for quite some time I had gotten tiresome of some of lacking features and looked for more new innovative ways to amaze me and become more productive. I used e.g. Rhino scripting engine that is part of the standard library. Also used Groovy instead of the Java language but I did find it rather slow.
This is what killed it for me.
I stopped over a year ago with Groovy and Java almost completely (except for the odd Android app or Minecraft server mod).

It took me over six months to discover D and get into it. But again this isn't what has killed it for me.
D did provide a lot of things Java doesn't have like unsigned types and procedural style programming as well as OOP.
There is some major down sides to D. For example not very rich standard library (compared to Java's) or great range of libraries (again compared to Java's). It also provided one feature that Groovy didn't. Speed. The speed compared is enormously better. But that should be expected given that Java is run on a virtual machine!

All this still never killed it for me. I was still willing to use it even after Oracle bought it up.
It was when Oracle didn't fix bugs that were critical exploits which it had link. Now I am not hating on Oracle or saying this cannot be fixed. What I am saying is Java as a language has a long way to go to get back up on the trusted ladder again.
The problem here is from what I have read and know about the JVM it has crucial issues in it which means it needs a complete start again work done on it. It has just become too big.
For Java to continue it needs a rethink and break backwards compatibility. It just is too big and old now to continue on this track.

Something that I will miss hugely is Minecraft. It is written in Java yes bad for performance (ish) but there is a LOT of mods being made for it. And some are damn impressive to say so the least.
I really do hope Java recovers because I will miss Minecraft if one day I can't play it ever again.

In conclusion much has changed in the last 2 years. Languages have risen and fallen and so has the ground that we stand on!
Just some things as they stand do not seem to have a long lifespan left at the current rate. And my old domain represents my past. Something I will not be going back to ever.

Now when I say Java I really don't mean the language that runs on Android. That has been a complete start again redesign done on it. Only the core language survives and some of the standard library interfaces (not the implementation) remains. It has a long life left for it and might just be the savior for Java.

No comments:

Post a Comment