Hi, after completing my first production project in Go I'm a bit hyped about Go.
I love performance, simple and intuitive syntax, non-nested and explicit error handling, fast development time (compared to Python, no need to constantly debug/run+print to know what's going on), smooth package management and that Go produces a single binary ready for use with just a command.
Since my opinion on whether to use Go has weight, I want to know Go's no-go, the not-use cases over Python based on things like:
-
It's Go expected to rise in popularity/adoption?
-
Less obvious missing libraries and tools.
-
Things that are not out the box in Go std like cookies.
-
Go's gotchas and footguns, things I should warn team members about. For example, there was a problem with a Null pointer in this first Go project.
Videos
Doing some digging around the Debian Computer Language Benchmark Game I came across some interesting findings. After grabbing the data off the page and cleaning it up with awk and sed, I averaged out the CPU seconds ('secs') across all tests including physics and astronomy simulations (N-body), various matrix algorithms, binary trees, regex, and more. These may be fallible and you can see my process here
Here are the results of a few of my scripts which are the average CPU seconds of all tests. Go performs 10x faster than Python and is head to head with Java.
Python Average: 106.756 Go Average: 8.98625 Java Average: 9.0565 Go Average: 8.98625 Rust Average: 3.06823 Go Average: 8.98625 C# Average: 3.74485 Java Average: 9.0565 C# Average: 3.74485 Go Average: 8.98625
Described in short my Python program has 290 Threads, in every Thread a while Loop sends a request for 20kb of data every 3 seconds. If the data changed in the last 3 seconds (If-Modified-Since is not always accurate unfortunatly) the Thread sends a request for a 550kb response. This response gets analyzed, that means basic arithmetics, accessing a large dict and sending another request to localhost for <1kb. This is very heavy on my CPU, so I thought of migrating to Golang.
Do You think Golang is the right choice? I'm a bit concerned, because time is important and the Golang Garbage Collector could waste some. I have absolutley no experience with Golang and university level C++(so mainly theoretical). Would Java be a better fit?
I am not liking JS/TS with express or Nest for backend. I think its better to use it for frontend only.
I have been thinking to opt python for backend like writing APIs and my future plan is to work on cloud and data engineering, probably more cloud. I have seen many videos on YT and read a few posts on reddit but its not clear whether I should choose python or golang based on my future plans. I have no plans for AI btw.
Please share your thoughts on this as I am very confused. Also I believe that if someone is comfortable with golang, he/she should be doing golang and same goes for python. I am comfortable with both. I tried golang and i felt comfortable.
I need to decide based on the market needs and future requirements in the industries and stick to it, not roaming around for days on what to choose. It feels so depressing not land on a language for sure.
Few people says the companies are moving from python to golang, python is much slower, you need imported libraries and in golang these are not an issue. Golang is better in terms of building cloud applications blah blah….
What should I do? Maybe after a few discussions and guidance from the well experienced developers I will be confident on either python or golang.
Hello, everyone.
I'm trying to find reasons to start my next project in Go. I used Python in my previous project but encountered performance issues. Upgrading to a new version of Python often leads to compatibility headaches with some libraries, especially for CPU-bound tasks where threads are missing.
On the other hand, Python makes it very easy to onboard new developers and has a library for almost anything.
I'm interested in learning Go. I'm wondering what the difference is between Go and Python, and what are the advantages of Go over Python. I'm also wondering if I can implement data structures and automate jobs of linux with Go.
And what are some best resources for learning go
Thanks in advance for your help!
detail caption consider yoke ghost many thought file plate employ
This post was mass deleted and anonymized with Redact
I know this is an old question or debate
Here is the situation
I am an experienced .net developer who wanna switch to devops I have some certifications on azure but I am trying to expand etc.
I know it is possible to use powershell and azure for azure stack but I am currently going through kodekloyd and I am at the choosing between go and python.
Basically my heart wants go:) but somehow I think python will help me land a job easier.
You might think “you are an experienced dev just learn both “ but boy I am also an expat dad whom doesn’t have extra 2 minutes without planning.
So If you need to choose in 2024 as jr devops person which way would you go
What are your thoughts on this article? https://www.infoq.com/news/2025/11/reddit-comments-go-migration/
For anyone who's tried both Go and Python async (ex uvloop + sanic, apistar, etc) for their webapp, what are the pros and cons of working in each language?
I'm just getting into python and so far I like it, I've used other languages over the years in small amounts but I wanted to settle on one, i was tossing up between Java and python.
So now that I'm reading more about python I'm seeing more and more post about ditching python and going go. It seems go is faster, smarter and all round more efficient. So I'm not sure if I should jump ship before getting to into python.
I don't really have an end goal for what i want to make but i am interested in web apps and web front ends and from what I'm reading, go's strength is more the back end server stuff.
So my question is, should I jump ship? Is go versatile? Is there a large support network like pythons? Is there anything wrong with python?
. .
EDIT: Thanks everyone for the interesting read, I'm more confused now :) I think I will stick with Python for now, there is more training material out there and larger community. Go does seem like a brilliant "new" language, but for web apps and web page front ends, python does still seem to be more mature. Thanks
As a python programmer by trade, here are three reasons not to use python:
-
Dynamic compilation can result in errors that exist in code, but are not detected:
This is perfrectly valid python:
def junk():
afdfaf
asdfd
fdafd / dsfsaf()
Of course if you add junk() to the end, it will fail with errors about missing functions and variables; but compiled languages like go don't suffer from this problem.
-
CPython really is very slow.
Very specifically, procedures that are invoked multiple times are not optimized to run more quickly in future runs (like pypy), they always run at the same slow speed. So operations like populating matricies and doing matrix maths are really slow. So slow in fact that future version (3.5? See http://legacy.python.org/dev/peps/pep-0465/#discussions-of-this-pep) will have an explicit operator for this.
You can get around this by calling c libraries, but it's irritating as a developer to write something in python, realize its too slow, and then have to rewrite it again in C. Very. Very. Irritating.
-
Python has a terrible distribution story.
Virtualenv, buildout, pip, easy_install, distribute: they all boil down to the same thing; it's really hard to ship all your python dependencies onto a new system.
...and even then, if you have a perfectly setup version pin for every library, it can still break when (for example) freetype upgrades and your old pinned version of Pillow doesn't compile any more. Oh? You had some dependencies on the old version of pillow? Upgrade all the things!
There are a few 'binary builders' for python like pyinstaller, cx_freeze; but they're pretty rubbish practically speaking. Even the best showcase of these tools ends up shipping simple GUI apps like Calibre that are hundreds of megabytes in size.
Let's not even talk about writing something in py3 and getting half way in to discover a core dependency hasn't been ported yet.
.
Go addresses those points pretty sharply; good distribution story with static binaries; repeatable build process (abit hindered by the same issues as python when you bind a c library; but at least you can statically link C libraries into go binaries), and it's really pretty fast.
So is it worth abandoning python?
Probably, professionally, not really; especially if you're looking at web development.
The ecosystem for python is really strong, and there are some really decent web tool kits like flask, pyramid, some great libraries like sqlalchemy, and a lot of support for it from the academic community for stuff like natural language processing.
...but would I build a GUI app or a game in it instead of Java or Go if I had to start tomorrow?
Absolutely fucking not.
There is nothing wrong with python except maybe that it is not staticly typed and might be a little slow (depends on the use case).
Go is the new kid on the block, and while Go is nice, it doesn't have nearly as many libraries as python does.
Personally I prefer Go the language, but when it comes to stable, mature third party packages, it can't beat python at the moment.
So, I'm not really an expert with Go, I've got a small project written in Go just to try it out.
One thing I understood on Go's main strength is that it's easy to scale vertically. I was wondering how that really matters now that most people are running services in K8s already being a load balancer and can just spin up new instances.
Where I work our worker clusters runs on EC2 instances of fix sizes, I have a hard time wrapping my head around why GO's vertical scaling is such a big boon in the age of horizontal scaling.
What's your thought on that area, what am I missing ? I think the context has changed since Go ever became mainstream.
A) Remind me what concurrency is because I only remember the definitions learned in college
B) How other languages do it and have it worse
C) How Go has it better
I work at one of those large companies where migration work never stops. We recently acquired a few other companies. To coalesce the platforms of multiple companies, we're rewriting a big chunk of our codebase in Go. The new platform itself is also being built from scratch in Go.
But the catch is we haven't historically been a Go shop. A lot of folks are coming from Python and Kotlin backends. So in our knowledge-sharing channel, we constantly see feature comparisons across these languages.
One thing that came up recently is how hard structured concurrency feels in Go. go func() is unstructured by default unless you wire it up with sync primitives like WaitGroup. A bunch of people also pointed out how Python’s TaskGroup or Kotlin’s coroutineScope make cancellation feel trivial. In Go, cancellation semantics require explicit context checking and manual bailouts.
We had some interesting internal discussions around this that I think would be valuable for others going through similar journey.
So I summarized some of the key points that came up and added a few examples. I’m curious how others approach structured concurrency in Go. How do you avoid the usual leaks that happen with manual plumbing?
https://rednafi.com/go/structured-concurrency/