Golang vs. Python for new backend service at scale?
We're working on building a new service at scale. The engineer on the project suggested using Python over Golang - these being the languages supported at our company. He cited personal preference and speed of development as the reasons for using Python. Interestingly, we already have projects where we are moving from Python to Go for the performance reasons, but for the load in this case, my colleague argued that Python would not be a problem
I come from a Java background and therefore loathe Python for building complex services with a passion. I feel strongly that Go, with its statically typed compiled nature and concurrency support is a million times better as a developer and for performance reasons. Also faster to serialize and deserialize protobufs on Golang.
2 parts to the question: 1) How do you compare Go and Python for building a high scale backend service. 2) How do you recommend convincing a colleague who is adamant on a technical decision, which may be his preference, but will eventually become a problem for the entire team.
2 comments
[ 0.35 ms ] story [ 17.3 ms ] threadI think for a new service using a fluid language (I like to call Python for putty-clay) is probably a good idea, unless you are ensured a massive scale from the start.
Much more project die due to not reaching their goals (i.e. dev time is too much or the devs got them selves painted into a corner) than scale at the beginning.
So for the first production-prototype I would also strongly consider python.
I don't know go enough to compare them, and also, it strongly depends on what you do. If you service is bottle-necked by the databases (which is common in those that I do), it really does not matter that much... Context is everything in making those decisions...
Also, as a personal comment (not meant as an insult), please also appreciate that your "will eventually become a problem for the entire team" is also just a person opinion on your part... Nobody knows (or can know) for sure, you could be the one on the wrong here...