Thursday, September 6, 2012

The Not-So-Obvious Reasons To Ditch Java

  Java has had a painful history. Java, the cross-platform programming language originally developed at Sun Microsystems by James Gosling, has been more recently contained flaws in both the runtime environment and the core set of methods that were provided by Sun, now Oracle. Java has proved to be the prime platform of choice for malware and virus authors to exploit users. The difficulty for us in the technology sphere is to convince users that Java should be disabled, if not flat out removed, if they're not using it. We've seen Java been used before in famous cases by malware authors. The Flashback trojan horse for Mac OS X was put in place, thanks to a flaw in Java. Java is constantly under attack. And so from the user's benefit perspective, it is definitely beneficial to not run Java on your system unless you absolutely have to.

 But there is a not-so-obvious reason to ditch Java. Java is a very outdated technology that was designed to tackle a problem that programmers had ages ago, that dates back to before the Internet became mainstream.  Back in the day, software programmers had the issue of choosing which platform to write for. Learn and dedicate themselves to the programming language and the set of APIs that corresponded with the operating system they wished to develop for. Java solved this issue with being one of the first to adapt the 'write once, run everywhere' model. In which one set of high level language code could be compiled into byte code, or machine readable code. Java did this well. And it worked well. The problem is that, besides the fact that Java now (inadvertently) has the 'write once, infect everything' malware model, but the other problem is that the language is outdated. It shows it's age in the way it's structured. And while the other popular high level languages show their age too, but Java shows it's age and brings much more serious problems to developers when they choose Java over another language. And with every new release, the language just gets older and older, and every release becomes either less significant, or the language just gets less and less useful.

  Let's expand on that idea that Java becomes less and less useful overtime. The big issue with Java is that the fundamental principles behind it have faded away. The original team behind Java doesn't work on the project anymore, and since Oracle acquired Sun, the language has gotten worse. The moral principles behind Java are gone. Oracle suffers from corporate greed, in which this flaw takes over what could've been a better vision for Java, but instead, they just made it worse. Instead of maintaining it more openly, in concert with the  Java community, they decided to try to make it as proprietary as possible, and in turn, making them responsible for new iterations and security patches. By making it more proprietary, Oracle has demonstrated that they don't care about Java, and they don't care about the developer and user community that was formed around it. Oracle is essentially sending a big middle finger to those who put their soul into writing with Java. And Java is not the only example, MySQL (also a Sun product), and VirtualBox (also a Sun product), have also become, or at least Oracle has attempted to make it, more proprietary. So it's clear that under Oracle's management, all of these great products have turned into crap. And that's a shame!

 But thankfully, HTML5 along with Javascript and CSS3, have made web applications a more viable, and more future proof, way of developing applications, that brings most of the benefits of Java, without most of the security problems that Java brings along. And to the benefit of consumers, and to the determent of Oracle, they've made Java become less relevant, and easily replaceable by newer and better technologies.  And hopefully, with all I just said, we'll see the death of Java become more of a plausible event rather than merely a wish of software developers.

1 comment:

  1. Excellent article - also ditch the malicious crapware that Oracle tries to install deceptively into your system along with Java. Oracle is run by extremely incompetent people, let's take them down.