3 ms·
I feel like all this hype around generated code overlooks a distinct opportunity for enterprising focus on excellent, clean, maintainable, curated code - baked
by rkagerer 6mo ago
I feel like all this hype around generated code overlooks a distinct opportunity for enterprising focus on excellent, clean, maintainable, curated code - baked by humans, for other humans.
- Paul-Craft 6mo agoWhat would that look like? In my experience, real production codebases tend to have lots of bugs. Most of them never get prioritized, because features matter more than fixing obscure bugs.
- rkagerer 6mo agoIndeed - one of my biggest pet peeves is when organizations chronically avoid budgeting the time and resources to deal with their technical debt. Or when they lack leadership that is confident and bold enough to make the hard decisions to do so (which requires experience and reputation), or suffer a culture that doesn't tolerate some degree of risk-taking, with contingencies (particularly in schedule and blast radius containment) to safely deal with occasional failure on the road to improvement. I'd love to reinvent computing from the ground up, stripping away the many patchwork layers of complexity we've accreted over time and applying an obsession for making each individual component uncommonly robust and engineered for clarity. I feel that kind of project would be a great candidate for human-written code. I think AI tools would make a great sounding board / linter / reviewer in such a scenario, but since they were trained on existing examples and legacy patterns I'm not convinced they'd be as good as a human at the actual constructing, in terms of what I'm optimizing for. I personally tend to favor longer lead times and slower public ship pace (but not slower betas or delay in customer feedback) in order to maintain a higher bar of quality. Even if saying so out loud risks branding me heretical by some corners of Silicon Valley!
- rkagerer 6mo agoWe also haven't really seen how large volumes of generated sourcecode will stand up over time (like, decades) in terms of maintainability. My prediction is you'll encounter a lot more disposable software. That's fine for making general code more of a commodity (cheap and accessible), but where you get commodities you eventually find demand for more premium flavors of product. Those tend to derive from taste and opinion (attributes which, for example, were major success factors of the iPhone at its peak design). The act of software development formalizes paradigms, surfaces unknowns and forces their resolution. Traditionally the work product gets better over time as you iterate. My own coarse rule of thumb is on average it takes until version 3 or so - i.e. 3 rewrites - until you to land at the kind of high caliber product that stems from really understanding the problem space and having worked in it extensively enough to have a good mental model and have uncovered the edge cases and hammered out an optimal solution. While AI is famous for fast iteration, I expect in cases where the designers wielding the tool lack a deep understanding of what's going on, potentially exacerbated by never actually having to work with the codebase, it may actually turn out to impede their ability to reach that plateau. Not saying this will be true for all use cases, just that the tool makes it seductively easy to fall into that trap.