Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I think your getting downvoted because of the python/node/ruby vs. haskell/rust/go comment and perhaps rightly so. For some things this will certainly matter, but for a public content like this, especially the landing page, the real problem is that a flood of visitors should not all be hitting any dynamic backend in the first place - they are all going to see exactly the same page anyway. That means either making it completely static (would mean removing the sidebar in this case) or having a modest (micro-)caching setup so that most requests don't hit the backend. With nginx (which is what widelands.org seems to be using) this is only a couple of lines of configuration, no need to change the dynamic backend at all.


Needing to use a reverse proxy like nginx in the first place is honestly insane, and the fact that many web devs tolerate it is a sign of totally whack priorities. You shouldn’t need a reverse proxy to serve your website, and you should be able to serve dynamic content to hundreds or thousands of people per second. Literally all you have to do for 90% of websites is not use some slow uncompiled backend that shits the bed at 50 RPS. Pointing this out pisses people off because they hate the idea that bogosort.js isn’t actually a good web backend and they might have to learn something else if they want to build a good website instead of trying to paper over perf issues with a massive reverse proxy with 35,000 config options and just as many CVEs.


People really seem to underestimate just how much a CPU can handle when it’s not bogged down by the abstraction of high level languages. You can easily easily serve over 1000 static pages per second per core with nginx on commodity hardware over TLS, and over 10000 pages/second/core if you’re using a server-grade CPU like a Xeon or Epyc.


I don’t think “high level” is even the problem. Haskell is extremely high-level and yet it’s very fast, on account of having an extremely OP compiler. In this case it seems to just be the frameworks on top of non-compiled languages that are slow.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: