The popular question to which the answer has always been insatiable for most is: “What’s the best darn programming language I should learn?” Many new-comers as well as old-timers have probably found themselves pondering on this at some point during their careers. The common answer that makes many people cringe is “there is no best language, they are all good languages with pros and cons used to solve different problems, so it really depends on what it is you’re trying to create”. Even though I do agree with that answer to a certain point, I sympathize with you and want to share some objective thoughts that would hopefully please some of you and possibly annoy the hell out of others. In any case, I’ll make my point here and you can either choose to agree or disagree.

The word “best” is typically associated with comparison in a particular category, such as, the best horror film, or the best comedy film. It’s kind of silly to objectively generalize “The Best Film Ever” without stating some comparison criteria. But I feel your pain. You’ve finally found some precious hours on a Saturday night and after a long & hard thought you’ve chosen to dedicate this precious time to watching a film and you really wanna know the answer to the question – what the hell should I watch so that it’s the best damn Saturday night movie I’ve ever seen! Knowingly or unknowingly, you have some criteria in your head for what makes a particular film the best:

1). It needs to be insanely entertaining (whatever entertaining means to you).
2). It teaches you something so that you don’t feel like you wasted any of your time.

Here’s the truth, you might see an amazing movie, but it isn’t going to be the best. You may not have learned as much as you’d hoped and you probably did waste some of your precious time. But before you stop reading this article as your quest for the truth has yet again been bastardized and this time you’ve been tricked by the author who at first seemed to be on your side… I’ll quickly squeeze in this assertion: “The best programming language is Java”. Ouch! Some of you may be flabbergasted because I’ve probably committed blasphemy against the programming language Gods. But if you’ve come this far down in the article, you might as well read the remainder to hear me out. Java is the best programming language in the world. :-)

I’ve programmed numerous end-to-end applications using 7 different programming languages in the past 13 years. I’ve gone deep in the rabbit holes with obsession in each one of these working with various frameworks and deploying in all kinds of environments. Overall, I have experience coding in 10 languages and can safely say, there’s a king among all of these. If there is one language that every programmer must be comfortable with during this decade, it’s Java.

There is a famous programming language rating site called the Tiobe index. It ranks languages by popularity. Java is the only highlevel language after C that has won 1st place for 3 years. In 2016 at the time of this writing, Java is still ranked no 1. But I don’t consider Java to be the best because Tiobe thinks so. Let me detail the reasons why you should go learn Java right now if you haven’t learnt it already.

Java took fame during the internet boom era and ever since then, it’s been continuously dominating in every single phase of technological revolution. Back in the 90s it was all about applets. Java revolutionized the online experience with applets. After that it became ubiquitous in enterprise development leaving microsoft’s VB way behind. Microsoft attempted to copy java with their C# language but there’s only so far they can go with the microsoft’s CLR. For enterprise software development, the most trusted language became java and has been for a long time. Ever since Oracle acquired Sun Microsystems, they’ve been treating Java quite well. Oracle has been carefully improving the language by adding new features to compete with other languages hyped up on functional programming. Oracle has been keeping Java alive and well all while supporting backward compatibility! How could they not? Majority of the enterprises trusting Java use Oracle databases. Oracle is and has been for a long time, the no 1 RDBMS. So naturally, Java and Oracle seems to be a match made in heaven in the enterprise software space.

The next big revolutionary phase for Java was the smart phone era. Iphone’s biggest competitor is now hands down Android. And it’s been growing ridiculously fast for the past 8 years. But this is all still old news, where is Java up to now you might ask? The new technological revolution is Big Data. Technologies like Hadoop, Spark, Cassandra, Elasticsearch are proving to be huge game changers as the need for data processing grows. Guess what these games changers are coded in… Java!

If you were forced to choose a modern language to magically eliminate from the face of this earth released after C++, you certainly wouldn’t choose Java. If Java, all of a sudden went poof… the world would probably collapse. Your bank accounts would go poof! The government applications would go poof! Many businesses will be destroyed and this world would be a pretty nasty place!

So why has java stood the test of time and is still so ubiquitous being used in countless new startups? It’s a happy medium between low level and high level languages and to top it off, it’s wonderful for creating large applications. Because of it’s type safety, it allows for collaboration between a large team of developers to quickly get at the code and understand exactly what’s going on. Software development is a very complex task. 100% of applications out there contain bugs. James Gosling (referred to as the father of java, don’t ask me who the mother is) understood this a long time ago, so he saved java developers from depending on the sanity of other developers’ choice of variable names. Java is like a highly organized and strict officer that enforces a certain level of order and manners. Call it a baby sitter for developers but when shit hits the fan at 2 am, you can spot the stains easier and quickly clean up the mess rather than trying to figure out why the bloody hell did an ex-developer name this ruby variable “file” rather than the variable “csv_parser”. So if you don’t know how to program in Java, there’s no better time than to start now. You may love it, or you may hate it. But this baby is going to be around for a while!