"My formative memory of Python was when the Quake Live team used it for the back end work, and we wound up having serious performance problems with a few million users. My bias is that a lot (not all!) of complex “scalable” systems can be done with a simple, single C++ server."
And so a lot of people seem to feel the need to once again bring back all the discussion in absolutes of optimisation being useless, or the only thing that matters.
I've found the same as John Carmack btw. Taking some component of a customer system, translating it to C++, can make a system that needed 10+ servers suddenly run a lot faster on a single server (meaning higher throughput AND lower latency, because in addition to the raw speed advantage of C++ there's so much you can do in C++ that's not really feasible in, say Python. For example, mmapping files).
But C++ is not exactly the first thing I reach for when something new springs to mind, or I want some data analysis done, or ... (even though C++ is excellent for running production data analysis jobs)
Python is probably the wrong tool for this though, that doesn’t make it bad. Writing this in erlang, elixir or scala or even Golang would be a better choice. That’s not premature optimisation, that’s understanding what problems are requirements up front. Choosing most of these when you have zero users is probably wrong; python might be better as with its libraries it could get you to market faster!
It came to a full circle, lol. I reposted this article because of that tweet.
> But C++ is not exactly the first thing I reach for when something new springs to mind, or I want some data analysis done, or ... (even though C++ is excellent for running production data analysis jobs)
Me too. C++ is a pain in the ass (although I only touch that thing in my college day building simple A* AI). I always go to seeking libs in TS (my go-to language) or at least JS before consulting to other languages.
> I've found the same as John Carmack btw. Taking some component of a customer system, translating it to C++, can make a system that needed 10+ servers suddenly run a lot faster on a single server (meaning higher throughput AND lower latency, because in addition to the raw speed advantage of C++ there's so much you can do in C++ that's not really feasible in, say Python. For example, mmapping files)
I think it's just the nature of true compiled language that comes with a very minimum runtime. Multi steps compilation in Java and interpretation in JS or Python always need sacrifice. I have seen great devops engineers pulling hairs over kubernetes configuration issue happening just because a Java spring boot service needs an enormous memory just to initialize some runtime objects.
> And so a lot of people seem to feel the need to once again bring back all the discussion in absolutes of optimisation being useless, or the only thing that matters.
And then, I found Rust, which is a pretty nice language. It bridges that memory safety VS optimisation issue. Although the learning curve is pretty heavy on the syntax and the new paradigm it brought, it's pretty easy for me who is used to code in TypeScript. I'm just surprised at the minimum mention of Rust in that tweet.
https://twitter.com/ID_AA_Carmack/status/1210997702152069120
"My formative memory of Python was when the Quake Live team used it for the back end work, and we wound up having serious performance problems with a few million users. My bias is that a lot (not all!) of complex “scalable” systems can be done with a simple, single C++ server."
And so a lot of people seem to feel the need to once again bring back all the discussion in absolutes of optimisation being useless, or the only thing that matters.
I've found the same as John Carmack btw. Taking some component of a customer system, translating it to C++, can make a system that needed 10+ servers suddenly run a lot faster on a single server (meaning higher throughput AND lower latency, because in addition to the raw speed advantage of C++ there's so much you can do in C++ that's not really feasible in, say Python. For example, mmapping files).
But C++ is not exactly the first thing I reach for when something new springs to mind, or I want some data analysis done, or ... (even though C++ is excellent for running production data analysis jobs)