DEV Community

Cover image for Why GoLang wasn't accepted by communities ?
D\sTro
D\sTro

Posted on • Updated on

Why GoLang wasn't accepted by communities ?

Benchmark: Go is 40 times faster than Python!

Go has amazing inbuilt support for high throughput as well as greatest level of memory management and inbuilt concurrency model.

It could've been a greater replacement for python but the fact is, it's not!

Note: it just a comparison and I extremely dont mean to say python is not good or go is cool!

Let's face the reality. Debate on!
(Edited: 24th October 2020)

Thanks!

Top comments (22)

Collapse
 
lysofdev profile image
Esteban Hernández

Python is already installed in most systems out of the box and doesn't have to be compiled before running.

Also, Rust has probably gained a lot of ground as a competitor to Go precisely for it's memory management model.

There's nothing wrong with Go but it doesn't quite have a place when Python, Java/C# and Rust/C pretty much cover 95% of use cases and already have wide adoption.

Collapse
 
alexandreamadocastro profile image
Alexandre Amado de Castro

I think go can easily replace Java and C#. Unless you are talking specifically about building desktop apps. What you think?

Collapse
 
slimdestro profile image
D\sTro

Go is perfect for both desktop and web but python was chosen. That's the thing I'm asking in

Collapse
 
slimdestro profile image
D\sTro

Agreed! I use both rust and go for blockchain projects but why machine learning, robotics has almost zero adoption of go

Collapse
 
papey profile image
Jean Michel Functional Programming

What about Docker, k8s, Terraform, Traefik and all thoose things ?

Collapse
 
slimdestro profile image
D\sTro

Built with Go! What about artificial intelligence. Any widespread used go package in your view ?

Collapse
 
trashhalo profile image
Stephen Solka

I'm not sure what you mean Go has pretty widespread adoption.

towardsdatascience.com/top-10-in-d...

Go is #9 on this site. I work professionally in Go.

Collapse
 
papey profile image
Jean Michel Functional Programming

Same here, go is everywhere but there is still people who refuses to see it I guess !

Collapse
 
slimdestro profile image
D\sTro

Yes! Exactly this is what I asked in the question. You got it!

Collapse
 
slimdestro profile image
D\sTro

I was comparing community size of go with "python" not for some specific project. hope its make sense now

Collapse
 
pclundaahl profile image
Patrick Charles-Lundaahl

I think the biggest reasons are:

1) Ecosystem
2) The cost of switching

Python has an enormous ecosystem of libraries and frameworks. Python has a foothold in scientific communities, web development, and ops, at a minimum. Go as a language is fine, and it's undoubtably more efficient, CPU and memory-wise, than Python. However, I don't think it has even close to the level of maturity in frameworks. When it comes to delivering business value, reliability and maturity are really, really important.

Second is the cost of switching. If your business's income is built on a perfectly-functional Python app that is doing its job, why take the risk of replatforming? It's not only a huge investment in terms of money and time spent training your developers, but it's also a huge opportunity cost, as you're burning dev cycles reimplementing features you already have instead of writing new ones, or addressing bugs that are affecting your customers. That's not even counting the (largely unbounded) risk that comes with replatforming.

From a community side, I'd say there are also philosophical reasons. Python is entirely open-source, and while I'm not sure about Go's source code, I do know that it is heavily influenced by Google. I'm personally more inclined to support (what I see as) a more inclusive community in Python. I imagine I'm not alone on that front.

My two cents

Collapse
 
fasani profile image
Michael Fasani

It’s arguably just an age thing, as it takes time for a language to mature and even longer for a business to feel comfortable to adopt it. It’s likely easier to find Python devs than Go devs and the same for ecosystem around it. Python is 30 yrs old and Go is 10.

In my current position I could opt for using Svelte over React but then I have to find devs to code it and my juniors would struggle to get self help answers from Google when they get blocked. Today If they get stuck a quick Google and they can unblock them self. I choose React for my team because my decisions will affect the success of the company, therefor I play it safe.

Collapse
 
bias profile image
Tobias Nickel

go has pretty good adoption for what it is. It is great for building tools and architecture services. logging services, databases, proxies,... but for building applications, with lots of abstractions, I still prefer more dynamic languages. the gocode is very much deluted with if err != nil ... after almost every second function call. and error messages and stack traces are pretty much a mess.

However the cross platform compiling is awesome. and i hope it can gain more ground from the java and C land.

Collapse
 
eriklz profile image
Erik Lundevall Zara

Not accepted by what communities? These two languages and their ecosystems target different areas, to a large extent.

It may be better to discuss specific areas because there will be different priorities depending on what you work on. At the end of the day it is about getting the job done - and be able to maintain it moving forward.

The language itself is one piece of the puzzle only, the ecosystem around the language may be more important.

Since Python has been used for all sorts of things, there may certainly be areas where Go may be a viable alternative. But in a number of areas, I would probably rather consider languages such as Julia, F# and Elixir as alternatives to Python.

Collapse
 
ahferroin7 profile image
Austin S. Hemmelgarn

Possibly you’re looking in the wrong places?

Go is a great language for network programming, and it’s got a lot of adoption there.

In fact, it’s actually replacing Python there at a reasonably fast pace in terms of product lifecycles (and this is the timescale you should be looking at, it is very rare for an existing project to switch languages, so any uptake is in the form of truly new development).

However, Python is quite simply better for rapid prototyping, has a somewhat shallower learning curve, has 20 years more maturity, and has a much larger ecosystem. Given all of this, it’s going to continue to be the language of choice for code-monkey type programmers and people who program as a side-effect of their job instead of a primary function of their job (such as scientists and mathematicians) because it all means it’s easier to work with on average.

Collapse
 
slimdestro profile image
D\sTro

Herd about Artificial intelligence? Or can you mention a widespread go package for ML.

Collapse
 
ahferroin7 profile image
Austin S. Hemmelgarn

I’m not particularly well versed in ML myself, but most of the people I know who are and who work with Go fall into two groups:

  • Those who complain about golearn and the TensorFlow bindings for Go (those seem to be the two most popular options) because of their reliance on cgo and the issues that brings along, and tend to use other languages for ML work (mostly Python from what I’ve seen).
  • Those who use gonum to just write the ML algorithms directly instead of relying on a library that includes them (this obviously works, but requires a higher level of understanding of the algorithms than most people have).
Collapse
 
papey profile image
Jean Michel Functional Programming

A bunch of people do not get the core principle of golang : simplicity. They just think it's a langage from the 70's because there is no generics or exceptions, or polymorphism or something like this.

youtube.com/watch?v=bmZNaUcwBt4 is a perfect illustration and explains all the details.

Collapse
 
slimdestro profile image
D\sTro

One prime reason could be, go wasn't built to target big ecosystem instead taking care of Google's automation part and hence python topped

Collapse
 
sirjson profile image
Raffael Zica

What? Go is alive and healthy the last time I checked. And in my experience Go and Python are different tools better used for not the same type of project.

Collapse
 
slimdestro profile image
D\sTro

Go is alive and healthy 😊 dont worry.

Collapse
 
imdigitalashish profile image
Ashish Kumar Verma

Because has many libraries for AI, ML, and DS and we can easily make backend with AI technologies