Mr. Chalmers, Do you have a disposable Email address you would be willing to post publicly? Some of my comments might work better over Email. They are not confidential, just long.
For the record, I don’t agree with you about “serverless” at all. My sense of the last 20–30 years has been, that a deep shift toward server-based systems has occurred. A few examples.
1. Cloud computing is (by definition?) server-based computing. That characteristic (server-based) isn’t the only notable feature of ‘Cloud Computing’. I would add deep Internet connectivity and scalability as key characteristics of ‘Cloud Computing’. However, ‘Cloud Computing’ is critically server-based.
2. The web marked a profound shift away from desktop, and even LAN based computing, towards a server-heavy model.
3. Notionally, smartphones mark a shift in the other direction. That is at least partially true. The fact that the dominant smartphone architectures are app-based (versus HTML5, iMode, or WAP) reinforces this point. However, exactly how many smartphone apps would be useful without a server-heavy backend?
4. The shift towards JavaScript makes a partial shift towards desktop computing away from server-based computing. However, this shift (towards JavaScript) is coming after a much larger shift away from desktop apps (Client-Server) towards dumb clients (browsers) and smart/heavy servers (the Internet/Web).
5. SAAS (Software As A Service) is, by itself, a shift towards server-based computing. The customers get a browser UI. All of the substantive work is done by the backend. For the record, one of the SAAS vendors was founded by an associate of mine.
6. The rise of tablets and smartphones as replacements for desktops (including laptops) shows (in my opinion) the relative importance of clients versus servers. If clients still mattered (as much), a tablet or smartphone would not be good enough. However, if the substance is in the backend, a smaller, lighter, cheaper client makes all the sense in the world.
Conversely, in a few domains I do see a real shift away from server- based systems. My favorite example is self-driving cars. A self-driving car must have all of the brains (and data) on-board to usefully function. A few pieces of data (map and traffic updates) could be (are) obtained from a server. However, the core must be local.
A few more notes.
1. Linux has commoditized and narrowed the sever world. Basically, Linux serves as universal back-end for everything. That is mostly a good thing. The historical differentiation of servers by proprietary software/hardware architectures worked for the vendors, not the customers. Indeed, I would argue that the success of Linux shows how server-heavy the world really is. Linux remains a genuinely bad desktop computing system (I use RHEL a lot, so this is first hand). Of course, Linux is a rather decent server system. The fact that a poor desktop computing environment has become dominant, shows that (in my opinion) servers rule.
2. Intel rules the server world for now, but won’t in future. The nature of Linux (and Linux apps) is that they are written in C/C++/Java/PHP/Python/Ruby/etc. Portability really isn’t that hard. ARM already dominates the mobile world. The high-end of ARM will eat away at Intel relentlessly over the next 10/20 years. This is pure Clayton M. Christensen (“The Innovator’s Dilemma: When New Technologies Cause Great Firms to Fail”).
3. I would comment extensively on Java, but since we appear to agree there isn’t much reason to.
The bottom line I see is a deep shift away from desktop (and more generally client) based computing towards server-based systems. Exceptions exist of course. However, just consider the value proposition of Medium. Shared documents on a server anyone? Wikipedia? Yes, none of these examples would work without powerful clients. However, what does the client really do? Run Firefox, Chrome, or Edge? The browser is just a dumb terminal (VT52 + 20 years).
