The Use of Code

Do you buy an app for its craftsmanship?

 

A lecture* given by a researcher in computing highlighted a dilemma:

The lecturer’s friend, with no technical background, taught himself scratch coding skills to cobble together an app. Like many smart and driven people, he was able to learn “just enough to be dangerous” as they say, and patched together the rest. The app took off.

At some point the lecturer saw his friend’s code. To a purist it was revolting, confusing and messy, a hodgepodge of cuts-and-pastes. It contained repeated code. It contained inefficiencies. It contained deprecated functions liable to instability.

This app was already hitting the market. It garnered non-trivial attention, in conjunction with outreach efforts, and through app purchases the friend’s income soon exceeded that of the lecturer’s.

* * *

This is how it works in the real world — unsurprisingly.

End users don’t generally care (or need to know) code quality, reusability, cleanliness, anti-patterns, test coverage, or anything other than whether the product works and how well it works.

However it would also be easy to observe the wrong lesson in this pattern. Code quality exists for a reason and not just for academics. Input quality begets output quality (usually). Cludged code doesn’t transfer well. Software which requires updates will become unstable over time. Enterprise platforms incur stress tests through their droves of users every day, and quaking bastions collapse. Many environments, especially with many features or rigorous governance, must be uniform and predictable. Unstable or “messy” applications either explode when trapped in a crisis, or require increasingly massive man-hour investment to sustain.

Still, for much of the day-to-day world, an application that is functioning is enough. If it solves a problem for a user, or resolves a frustration, then that is what is important (at least until something goes wrong).

* * *

The app story took place long before “big AI.” Many similar stories circulate in the ether: successes that came from leading with a real-world need, and letting the details of implementation follow after, and that only begrudgingly.

The barrier to entry is now lower. Vibe coding, through modern models and orchestration systems, provides relatively clean outcomes from vague prompts. A little iterative prompting creates apps and sites that “just work” even if the code would induce a nervous tic in most developers.

It’s a problem that solves itself — vibe coding that doesn’t cut it falls to the wayside. Good and useful projects generally win out. Developers and technologists who can’t or won’t adapt get left behind. It’s unfortunate, in that it involves real people, real jobs, careers, ambitions, and opportunities all falling into ruin — that’s the nature of life. Progress is messy, and there’s almost no way around it, and almost certainly no good way around it, since protection writ large generally becomes protection against progress, rather than protection against desuetude…

The modern AI era is less than five years old and already has evolved from its start, ossifying in some ways, transforming its appeal in others, and inviting ambitious re-orientations from daring parties. There’s no lesson here beyond the lesson dealt consistently by the school of life: Reality is. That alone must be a complete sentence. We win by adapting to what is, or we win by leveraging what is, or we may win sometimes by spiting what is, but we almost always lose by denying what is. This I suppose is the lesson we all endure. To recognize it is at least to give ourselves a chance.

N.B: The conclusion above developed a tone more afflictive than intended. There is an optimistic note at the heart of things. Technological progress is a wild ride and mental success requires a mile-high view at times — the upshot of which is a lot of fun and entertainment along the way, even if it is sometimes wry fun. But it is all part of the story of progress, which involves each of us as deeply as it involves none of us too greatly.

 


* A few minor details have been changed to de-identify the individuals involved. The story itself is genuine.