> Like craftsmen in the past, every line is bespoke, every function something toiled over. [...] None of them worried about how to build the screws that hold it together.
Many years ago I wrote a video game in x86 assembly. (It was a shitty Snake game, but still) That code was burping out pixels direct to the VGA framebuffer. That code was pretty manual, and every assembly instruction that ran was designed and typed in by me.
Contrast that with modern web development. You're getting TONS of functionality for free. Did you toil over every line of the node.js code? Did you worry about how the interpreter stored your data in a pretty optimal data structure, gave you the illusion of nearly-infinite memory by garbage collection, or automatically cached a bunch of stuff that you never had to think about? And let's not talk about the encryption library, or the networking code, or the OS, or etc, etc.
In other words, I don't think modern web developers worry about the screws that hold it together, but man, they are still still there.
But you probably didn't write the assembler in machine opcodes before you wrote the snake game. Now I'll grant you that writing in assembly is not a fly-by-night skill, but at some level everything relies on abstractions.
Any common programming language comes with some set of tools, in the form of libraries and built-in keywords. The only difference between modern web libraries and language libraries is that modern libraries evolve and change at a much faster rate.
While a web developer may not be looking as closely to what is running on the metal, they are every bit as focused on being a craftsman at their level of abstraction. And they are able to take advantage of the fact that the tools they use are constantly evolving and providing ways to be more expressive.
Many years ago I wrote a video game in x86 assembly. (It was a shitty Snake game, but still) That code was burping out pixels direct to the VGA framebuffer. That code was pretty manual, and every assembly instruction that ran was designed and typed in by me.
Contrast that with modern web development. You're getting TONS of functionality for free. Did you toil over every line of the node.js code? Did you worry about how the interpreter stored your data in a pretty optimal data structure, gave you the illusion of nearly-infinite memory by garbage collection, or automatically cached a bunch of stuff that you never had to think about? And let's not talk about the encryption library, or the networking code, or the OS, or etc, etc.
In other words, I don't think modern web developers worry about the screws that hold it together, but man, they are still still there.