2 ms·
Web apps would be fine, except that most "web" developers are actually JavaScript front-end developers. They outnumber the older generation of C++/Java/C# devel
by jiggawatts 2y ago
Web apps would be fine, except that most "web" developers are actually JavaScript front-end developers. They outnumber the older generation of C++/Java/C# developers by an order of magnitude. They have no idea was "fast" looks like, in any sense. They've never experienced it, never created it, and wouldn't know where to begin if asked. These are people that think that GraphQL is what optimisation looks like.
Compounding this is the current microservices fad combined with dockerisation of everything on top of virtualisation on top of layers of cloud virtualisation. Then someone thought: Not enough layers, let's add side-cars!
Here's a simple lesson: The typical web app is single-threaded for one user, even if it is asynchronous and has multiple servers and layers. That means that at every instant in time, at most one core is "lit up" and doing useful work for that user. While data is "on the wire" between servers, zero cores are doing useful work.
Effectively, modern web apps provide some fraction of one core of computer power for each user. The more network hops, the more load balancers, firewalls, proxies, etc... there are in the path, the smaller this fraction is, eventually approaching zero.
No amount of "scale" will make the experience of ONE user better.
This just hasn't sunk in. People look to FAANGs for best-practices guidance, but FAANGS care about billion-user scalability, which is a very unique and special problem. Their solutions are all about scaling out, and almost never about making one user's experience "scale up".