How Google thinks it can knock one of Oracle's main technologies off the charts
Amazon uses Java. So does Netflix, and Bank of America, and just about every other website out there. Android apps are written in Java. Even Minecraft uses a whole bunch of Java.
According to the Red Monk rankings and TIOBE Index, which stand as the more-or-less definitive rankings of programming languages, Java is either the second or first most popular programming language in the world, respectively.
But since 2009, Google has been quietly working on its own Go programming language (also called Golang), an alternative to Java that's slowly attracting a ton of devoted fans by focusing on making it easy to write software that just works.
Plus, Go is a way for Google to thumb its nose at Oracle, which sued Google in a landmark case over its use of Java in Android.
Why simplicity matters
Go may never completely break the stranglehold that Java has over the web, but it's growing quickly - companies like red-hot startup Docker and Amazon's Twitch.tv use it to build commercial products. And within five years, Google Go product manager Jason Buberel thinks, it can knock Java and other legacy languages like C# (Microsoft's Java-like language) off the top of the charts.
Buberel says that's because Go is designed to be simple, unlike those other languages.
Within two hours, an experienced programmer can learn every single feature of Go and start to code. To maintain that level of simplicity, Go just isn't adding any more features.
"The language is done and that's a good thing," Buberel says.
This simplicity matters because programmers spend 5 times as much time reading code as they do writing code, according to Buberel, which makes readability a major asset.
Oracle, which oversees Java, adds features to the language all the time - meaning it can take "years to master," and hard to read, Buberel says. "[Java code] has a reputation for being prickly and thorny."
The same goes for C#, which famously has an 800-page instruction manual.
Consider also that programmers working on your complicated Java or C# app may not stay with the company for as long as it takes to finish that same app. When you hire a new programmer, even if they're proficient with Java, it'll still take them a lot of time to understand what the heck was going on with the last guy.
"Your dev team will turn over at twice the rate your code base will," Buberel says.
Go is also open source, meaning that anybody in the world can contribute to making the language better - a crucial push towards getting it into more places.
Buberel admits Java is powerful, and it's everywhere, even at Google, and it's not going away any time soon.
But Buberel says that Go can pick up lots of steam by appealing to the sensibilities of coders, inside Silicon Valley and outside, who care less about the philosophy of languages and the history of what's come before, and more about just buckling down and "getting s*** done."
He says that he would describe the average Go developer as "pragmatic and productive."
"They just want to look good to their bosses."