Java vs Go: The Future of Distributed Computing

Java vs Go: The Future of Distributed Computing

This blog post is a summary of our white paper, "Death of Giants: Why Go Will Replace Java and C". Download the white paper here.

It seems like every time you turn around these days, there’s a new programming language trying to be the new cool kid on the block. From Rust to Swift to Go, they’re all clamouring for your attention, but what’s wrong with what you already know and love?

While languages like Java continue to dominate the list of the most widely used development frameworks, the shift to loosely coupled microservices and distributed, cloud-based deployment models have served to highlight the fact that Java was built for a pre-cloud age, with a very different set of development practices and expectations than those that prevail today.

Introducing Go

That’s where Go comes in. Go was introduced by Google in 2007, just as the cloud computing revolution was beginning and continuous integration tools were becoming common. As an engineered language (rather than something that evolved over time), Go was thoroughly planned and purpose-built from the start to support cloud hardware architectures and simplify software maintenance for developers & sysadmins.

A “greatest hits” list of Go features might include:

  Go Java
Built-in garbage collection Y (with JVM)
Native cloud support Y N
Native concurrency Y N

For example, Go's native concurrency is a boon for network applications that live and die on concurrency. From APIs to Web servers to web app frameworks, Go projects tend to focus on networking, distributed functions and/or microservices for which Go's goroutines and channels are well suited.

Readability vs Complexity

But no programming language is perfect. While Go offers clean, readable, and dependable code, it does so by requiring strong typing and eliminating operator overloading & keyword extensibility. This cuts both ways:

  • Productivity benefits from having a language that encourages readability and comprehension.
  • But if you rely on more complex coding techniques, or lean heavily on rapid prototyping, Go may not be for you.

Download & Go

At the end of the day, debating programming language preferences on the internet is akin to arguing religion at the dinner table: there’s no way to sway your audience with words alone, so we encourage you to just give a try for yourself. ActiveState’s ActiveGo provides a one-click, free-to-use distribution of Go that you can download for Linux, Mac or Windows. Don’t take our word for it -- go ahead and convince yourself.

Want to learn more about Go before downloading the ActiveGo distribution? Read our “Death of Giants” white paper that explains Why Go Will Replace Java and C.