I don't want our startup to slow down much but also don't want our life to be hell (performance, code quality, jenga brick backend) later with our choices.
Did any of you start with Golang perhaps and felt you were as fast as perhaps Python would have made you?
Is there a standard canonical best practice around this?
The performance of your backend can be very low on your priority list.
My experience there comes from working at Twitch. The entire video platform's backend was in Python for a long, long time - at least 5 years before some components moved to Go, piece-by-piece. The Python stuck around for over a decade in some fashion.
There are exceptions depending on what your startup does - if your fundamental _product_ depends upon serving millions of concurrent requests quickly on a really frugal budget, you probably already know that.
If you start with Python, you will use Python. Major rewrites in another programming language are not worth the time, the effort, nor the risk.
You could eventually replace some parts with golang to improve the performances, but that's unlikely going to be cost effective.
Judicious use of mypy, unit testing and leaning heavily on the framework can keep things well organised
If you're hitting performance limits you likely have enough revenue to get some extra computing power and this might even be a viable long-term solution. Otherwise you can: - Build a service in the performant language - Embed C, Rust or Fortran into python
A full rewrite in a performant language is an option but almost never the right one in my experience. In any case optimise for development agility right now, which includes writing good organised code. You can cross the performance bridge when you come to it.
Also, Guido and team are working full time on speeding up Python.
The Python is the less likely think that will suffocate you.
What did you suffer from in past projects with each of these languages?
So, never.