Go Will Dominate the Next Decade

Go Will Dominate the Next Decade

Quite the bombastic title huh?

I was going to use the word 'rule' but I really thought 'dominate' was more accurate.

The only thing is, it is so true.

I talk to a lot of people about Go every single day. Outside of places like Google or Github we probably have the largest dataset on Go users in the world. We also get to collect lots of interesting production runtime data from a wide variety of sources. Some of the external data is manually curated from public sources while other parts are automatically grain harvested from job boards, github repos, company blogs, linkedin, and other sources. This leads us to an interesting question:

Where the hell are all these gophers coming from?

Devops

Pretty much all of the popular devops tooling coming out in the past years have been written in Go. This, in my opinion, is the harbinger. Ops teams traditionally in smaller companies have very little oversight compared to your average development team. They typically use whatever they find works and don't ask permission. Go just happens to work really really well for them since it's statically typed and compiled (no installing some random runtime w/1k dependencies) and it's runtime has a small footprint - you aren't chunking off 100-300M right off the bat for no reason (ahem, ruby, jvm).

Bitcoin

Many of our customers at DeferPanic are bitcoin/crypto-currency based. This is not a coincidence. The vast majority of this ecosystem is using Go. What's really interesting about this ecosystem is that most of the companies we service don't work on applications that you'd think they are working on. It's all filesystems or having to verify a transaction took place cause of all the mess created from 2008 or something like that. eg: Very few are trying to arbitrage transactions as an exchange.

Despite what you might've heard bitcoin is not dead. Rather there are many use cases that it is being utilized for that weren't traditionally thought of but have been seeing huge success with. These customers need high performance and strong guarantees of safe data - Go welcomes this challenge and delivers in spades.

Containerization

It's really funny talking to people who chase the waves of technology and find out that they don't know that 100% of all containerization technology today is written in Go. 100%. Not 99%. Not 95% - 100%.

All containerization software that is in use today is being written in Go.

Instead of saying "Cloud Native" the marketing people should just start saying "Go Native".

Can we underscore how big this is? Even if you don't believe the containerization hype and it turns out to be a huge ponzi scheme when you take into account the collective numbers of people of all the companies involved in it that's a huge number of very large companies that are going to be using Go for quite a few years. When you have huge swaths of CIOs from Fortune500 proclaiming they are going to overhaul all their systems you have to realize how big of a deal this is. This isn't something they'd do lightly and conversely it's not something they are going to walk away from lightly either because it's such a huge investment in time, money, and process.

Micro-Services

Micro services have become all the rage in the past few years and a lot of analysts very much overlook the significance of them because most analysts simply aren't technical. When you have maven downloading half the internet and spring booting up a 800Mb vm or a RoR app taking 200Mb by default you have a huge problem compared to an average Go 5-20Mb runtime. This immediately translates into at least an order of magnitude cost difference and when your company is blowing $25-$30k on AWS each month it is immediately apparent. Depending on how long and intense this trend continues we are going to see a lot of companies adopt this pattern because of this reason and you can bet it's going to be Go.

The Smart Money

It's funny to run into people that know of Docker, might even be invested in it, yet don't even know what the implementation language is and have not heard of Go. I suppose that could be considered an "implementation detail" taken in a certain context but when given the full context it's crazy. This is not always the case however.

Adrian over at Battery (yes the same guy from Netflix) has talked about Go multiple times this year in reference to all the companies he sees/talks to:

“About three quarters of the stuff that’s new is written in @golang” - Dec ‘14

Later on he mentions "almost everything new and interesting is being
written in Go".

He probably has better eyes than many in his industry cause he attends so many conferences and is close to the ground.

Robin Vasan of Mayfield even gave a talk at this year's GopherCon.

Who else works in VC and understand how big Go really is? Well Jerry Chen was present at that conference as well:

Adoption

When I was younger C++ was commonly derided as the language that incompetent C programmers used. Then came Java. Not a big improvement. Joel lamented on this a long time ago . The problem was that all that object oriented crap they pushed in the late 90s was total bullshit and highly harmful towards a future that could not have been predicted at that time. Moore's law ran out and we all use virtual computers now making software development/delivery a completely different practice than what it was like in the 90s. Who'd thunk. Hindsight is 20/20.

It might come as a surprise to engineers in San Francisco that there is a very large cohort of developers out there that want to come into the office, code 9-5 and then go home to their families and not touch their computers. These developers come in all shapes and sizes but I'd imagine one common trait amongst them are that they "code to get shit done". They don't care about the hot new framework. The don't care about doing something up to the latest "best practices". They wish to only "get shit done".

Go excels at this practice. It really enables the end developer to just get it done.

Out of all the languages in the world no other language dominates the "getting shit done" paradigm. This is so important when it comes to the future of software as every company has to start adopting larger scale sets of developers and embrace more and more complicated systems.

Go is the New JVM

It's very clear that Go is replacing the JVM and .Net as the de-facto enterprise language of choice.

For instance pretty much every Scala shop I've talked to in SF is migrating to Go a bit at a time. Many shops in Europe are doing the same.

Another comparison I hear a lot is Node. I find it a little bit weird when people try to compare Node to Go. First off you are comparing a framework to a language. Second off, you are comparing the language javascript (roughly the same age as java, comparatively speaking) to Go. In human years both java and javascript are getting drunk in a bar somewhere while Go hasn't even gotten it's first letter book from kindergarten yet and it's still stealing massive market share.

However, what's really silly is when people try to bring up the "number" of people using Go today - that is basically the very definition of pseudoscience. I don't think it makes sense to talk about the number of cars on the road if you live in the year 1900.

It's more accurate and relevant to talk about Go in terms of ecosystem adoption (cryptocurrencies, containerization) and growth rate rather than raw downloads.

So let's see some LIES.

Let's see some DAMN LIES.

Let's see some STATISTICS.

One only needs to look at the attendance rates of recent node and Go meetups to make their own judgements. It's literally twice as much. No contest - at all.

Everyone seems to enjoy a good tweetstorm so how about this one? I don't know what category you place DropBox in (besides big) but I figure this gives you a decent idea of the support the language is going to need in the coming years:

Also, think it's just Google and a few SF hipsters using Go? Guess again. Go is huge in China and naturally Baidu is a big player and they are making quite the use of Go.

Obviously Go is a niche steampunk language that is not in use anywhere huh?

The reality however is that "Over half of the top 20 companies in the U.S. ranked by market capitalization are currently using Go."

FINALE

If you are not using Go today your organization is being left behind. Being left behind might not be such a big deal in the 90s or even the 00s. We still had the concept of "IT" back then. It's now damn close to 2016.

You can't afford to be left behind. Your business will die.

It's not just a raw resources game delivering software at a tenth of the cost. We've also noted several times that it highly affects productivity as well. Whether or not you believe in the 10X programmer or not is irrelevant - Go will make your team 10X more productive.

Everything from recruiting to ops spend to infrastructure if you aren't using Go you are risking your organization's technological advantage.

Ruby is clearly done. Javascript is misguided and python is held up on stilts by the data scientists. The JVM Sith Lord has your neck and .Net was recently open sourced in an attempt to remain relevant.

Go is the future. Go is your future. You have a choice.

Go Will Dominate the Next Decade.

If you want to know the popularity of a languages, go to Indeed.com and search for jobs in that language. Here are numbers: Golang 2,425 C++ 41,062 C/C++ 172,901 (can't really search for just C) Java 71,377 Perl 14,547 Ruby 15,718 Python 74,566 (lot's of Data Scientists) JavaScript 56,851 I apologize for being unable to find any language with less demand than Go.

Like
Reply
Rahul Khode

Cloud Practice Head / Director - Digital Transformation | Generative AI | Open AI | Microsoft Azure | AWS | GCP | IIOT | Analytics | Blockchain | ML

5y

Its true that Baidu is a big player and they are making quite the use of Go but along with it some other companies that are using golang are Uber, BBC, Basecamp to know more in details visit :    https://bit.ly/2zScJ13

Like
Reply
Gabriel Aleme

Senior ReactJS, React-Native Mobile Developer.

6y

You are wrong. The future is productivity and performance i.e Elixir.

To view or add a comment, sign in

Insights from the community

Explore topics