Hacker News new | ask | show | jobs
by henning 1892 days ago
The desire to go "truly serverless" and pretend the computer does not actually exist is absolutely delusional.

The refusal to acknowledge that software will never be anything beyond executable data on some kind of computer, somewhere, is why most web-based software is so slow and shitty.

Having someone build the server and assign your code to run on it does not change that one (pun intended) bit.

4 comments

I don't think that's really the point, but the term "serverless" is definitely confusing. It took me a while to understand it.

By "serverless", usually it's meant that your code doesn't need to concern implementing a server on a socket. All you have to do is have your execution return the right value so that the server in the cloud can do the right thing. No need to setup and configure Express/Fastify. Because cloud providers manage the server aspect of serving a web app, your code just needs to focus on execution rather than delivery, or staying alive until the next request is received.

It's still a very misleading term, however. Every time I hear it, I cringe a little.

But that's exactly what the GP is railing against. Trying to hope you don't need to concern ypurself with setting uo the server and thinking about the resources it needs etc is unlikely to be a good idea, or even to work in real terms. AWS Almbda for example only really works if you understand the limitations of the VM and cluster that your code will be running in, and design your system accordingly.

I once worked on a product that didn't, and had ~10s "cold start" latency for any request, because of the size and reliance on lambda. And of course this "cold start" was actually seen all the time, because it was a new niche product that people pnly accessed occasionally, and because it's actually a "cold start" for every concurrent request.

> By "serverless", usually it's meant that your code doesn't need to concern implementing a server on a socket. All you have to do is have your execution return the right value so that the server in the cloud can do the right thing.

Jesus, the "they just reinvented PHP/CGI and gave it a cute name" folks were more right than I thought.

The desire to go "truly assembly-less" and pretend the machine code does not actually exist is absolutely delusional.

The refusal to acknowledge that software will never be anything beyond executable machine code on the computer is why most systems software is so slow and shitty.

It is not.

The JVM is something that comes quite close actually, but it lacks a few environment features and configuration/specification options to fully cover the space that most people need, hence why everyone is using docker now. But if you think about it: most people don't really want to use docker. It's just the best option currently.

Many don't care what OS they run on, because they don't rely on any specific OS functionality. This is exactly what should be improved for running code that can operate on a higher abstraction.

BEAM, the erlang vm comes even closer to that. Everything is a process and has the same semantics. Erlang and Elixir take this to their full advantage.
I have little experience with BEAM, but I'm curious about it. Is there a good description of the scope of the VM and what it defines and what not?
"serverless" is the equivalent of living "carless" and paying for taxi.

...but with a locked-in contract with one taxi company. And less privacy.

Unsurprisingly, in the long term, it will cost you more.