3 ms·
I’m beginning to feel as though there simply isn’t that much novel code to write anyways. I very very much agree that programming is not inherently valuable, an
by jchw 5y ago
I’m beginning to feel as though there simply isn’t that much novel code to write anyways. I very very much agree that programming is not inherently valuable, and is merely just a tool; I say this even as someone who got into programming at a young age and enjoys it for the sake of it.
I think in some narrow domains I can write interesting, and perhaps even mildly novel code. But a huge majority of the time, working for smaller startups, or Google, or myself, the majority of code I’m writing is something that has already been done in another form but I can’t use it for some reason. Maybe it does similar things, but it explicitly doesn’t try to solve my particular version of a problem. Maybe the license doesn’t work. Maybe it’s almost perfect, but it’s buggy or slow. Or hell, maybe I’m being a meme programmer and rewriting perfectly good code in Go or Rust just because I want to have the same thing but integrated with my favorite languages and tools.
The world of open source also changes things. You most likely should not hire someone to write a TLS stack. It’s not worth it. Chances are, a good TLS stack is not a feature that will set you apart, if it differentiates you at all in any positive ways. If you want to do things that existing TLS stacks don’t, it can still make sense to hire an expert, if that’s your thing. But, most of the time, even then, it would probably make the most sense to soft fork or upstream changes to an existing robust TLS library. Because of open source, it makes exceedingly little sense to actually have one entity maintain their own novel bits unless they’re unique and related to how the product differentiates itself. And even then, in some cases, it makes more strategic sense to just open source your bits anyways, and make yourself the standard. Google releasing Kubernetes is a great example; you can probably find many projects in the open source world, like Cockroach, which are basically clones of Google things they only released in a limited form, so the rest of the world went and standardized on non-Google implementations, and the Google versions didn’t benefit from cross-collaboration and the generalization of internal hacks. This also rings true for Facebook and React.
I think most programmers, given enough time and initiative and effort, could build cool and novel software, but the fact is, we don’t need novel software most of the time. We need better boring software. More general, less buggy, faster. If that’s depressing, well, I guess so be it. But there’s also a lot of toilets to clean out there, and someone has to do that, too. I can’t complain if it doesn’t feel like my work is exactly writing my name into history.
- bool3max 5y ago> ... , we don’t need novel software most of the time. We need better boring software. More general, less buggy, faster. Doesn't producing that kind of software involve novel, interesting ideas in the first place?
- jchw 5y agoIt’s only very slightly novel to apply solutions that we already know exist that were designed to solve a class of problems to a problem that nobody has done so for so far. Not being novel doesn’t mean it isn’t useful, though.
- astrange 5y agoI think there's a lot of unexplored territory in wild and crazy ("novel") ideas for software that prevents you from doing wrong stuff, like type systems and model provers, valgrind, ASAN, etc. That leaves room for the software that actually does stuff to be boring. These concepts are usually confused; even in the area of languages that supposedly you can't write bugs in, Haskell is too exciting in both directions (so it's too hard to use), but Ada/SPARK is too boring (so nobody wants to use it).