This is funny to me because serverless sounds to me like the return of PHP (etc) shared hosting. What's old is new again?
This is funny to me because serverless sounds to me like the return of PHP (etc) shared hosting. What's old is new again?
I am an optimist in that I (have started to) believe that this slowly allows us to converge on better solutions for everything.
PHP was easy to set up, easy to host, easy to understand and easy to build stuff with, but it resulted in an unmaintainable mess over the long run.
Then Node was all of that, but JS was a better language than PHP. Then Node grew warts in the form of the clutter that is npm, then it grew complex build systems and unstable libraries.
Now there's Deno. It uses TypeScript by default, which is a surprisingly useful and productive language, it rethinks some things, it's much more secure by default, and now we're back at the PHP-level easiness to host using Deno Deploy.
We've ended up with an overall better solution and it only took us 20 years :)
Ya. Like a spiral. Or a spring, if you want to get fancy (add z-axis for time).
Each revolution seems redundant, but can be exploring a slightly different problem space, or trying a solution with a new angle.
That's being addressed by the new Web-interoperable Runtimes Community Group https://wintercg.org/, driven by Deno and others.
[0] Used here as shorthand for “modern js driven development”
Nobody is reinventing PHP or RoR development. What is happening is the community taking all our favorite parts of these stacks and combining and implementing them in ways that facilitate a dev experience that we could only have dreamed of back in the PHP/RoR days.
- Senior dev that started off in the PHP and then RoR days
- Engineering Lead who got his start in PHP/ASP(pre .net) and loves the modern ecosystem despite its flaws
The evolution has been 2 steps forward but 1 step back. It’s how many complex systems evolve and it’s fine. Just because you see that some problems/solutions resemble what you saw 10 years ago doesn’t mean nothing was improved along the way.
PHP is an unsafe, slow by default (execution model - the language itself fast), hard to use well, clunky, limiting and bloated language that is kept together by duct tape and the incredible effort and ingenuity of it's open source community by educating developers and improving/cleaning up the language at full blast, unfortunately often by breaking backwards compatibility.
Whether JS (including Deno) is a good alternative or the right answer is up for debate. But people who try to mimic some of the benefits of PHP in the JS ecosystem are not doing so accidentally or because of lack of experience.
rolls eyes
Outside HN that distinction might not be important. Here being pedantically correct does matter on this because the VM abstraction has been around for a long time, whereas containers were an enabling technology for serverless.
And containers and the fast startup, security and resource consumption guarantees they offer is a big difference to the old days of shared PHP hosting.
And this is why "reinvention" with new technology is different.
https://firecracker-microvm.github.io/
Firecracker is a virtual machine monitor (VMM) that uses the Linux Kernel-based Virtual Machine (KVM) to create and manage microVMs. Firecracker has a minimalist design. It excludes unnecessary devices and guest functionality to reduce the memory footprint and attack surface area of each microVM
“How AWS’s Firecracker Virtual Machines work”
https://m.youtube.com/watch?v=BIRv2FnHJAg
The Lambda service team always emphasizes the level of isolation that Firecracker VMs gives you that containers don’t.