> we can, and inevitably will, write the last software at some point.
Maybe, but the context/requirements change too. For one of your examples, what a web server is desired to do changes with HTTP/2, and that may mean the "last" web server no longer is. But even less drastic/specific things can change desires and requirements; things change, even if hardware doesn't.
I think this is highly under appreciated. A particular piece of software exists in a technical, social and economic context. If any of these change, it opens up the space for a replacement or a new addition.
Some big changes are desktop to web, web to mobile, single user to multi-user, power user to newbie… and so on.
That was just one example, but the fact that people disagree on it seems enough to be an example of why the a "last webserver ever" would stop being so. But it was just one example. There are things other than hardware changes that make people want something different out of software. Maybe not you, maybe you never change what you want out of software for any reason. if so you are extremely atypical. ¯\_(ツ)_/¯
I don't chase eternal growth, I stop when I see something that is good enough:
So OpenGL (ES) 3, HTTP/1.1, JSON, SMTP, DNS...
But one thing that I have learned is hardware progression (C64 -> Amiga -> PC -> Raspberry 4) and that race is permanently over for humans for eternity.
So we'll see what happens to software!
Finally you can't just throw more energy at a problem, you actually need to write code with limitations in mind again!
I was working in a new book project on Saturday using old and highly optimized tools: LaTeX/TeX and Emacs. I am deeply appreciative of people who maintain and improve these tools, they are not Dead projects by any means.
I am against a world economy based on mandatory high growth. I am also against new tech, just because something is new. I make exceptions: deep learning applied to real world problems, better theories and implementation for security and privacy, and better online platforms for creating things; for example leanpub for writing and Google Colab for writing and sharing ideas and experiments in ML and DL.
How often are we disappointed when new versions of software seem worse than previous versions?
With the fossilization of hardware we can, and inevitably will, write the last software at some point.
There will be one best web-server, game-engine etc. for every domain.
It's just a question of time, and then that IS what those implementations will be: Perfect and Optimized to no end!
Together with simplification and other guidelines these projects will probably be <10.000 lines.
You need to be able to learn from them.
A project like Unity or Unreal might be open-source/source available but if it's so bloated nobody can understand it there is no value long term.