4 ms·
> It’s crystal clear that AI can be a complexity factory. > keeping software understandable to humans a first-class design goal in the age of AI. I'm not sure
by petcat 1mo ago
> It’s crystal clear that AI can be a complexity factory.
> keeping software understandable to humans a first-class design goal in the age of AI.
I'm not sure this is going to be a worthwhile goal for much longer. Rarely is anyone caring about the complexity and comprehensibility of the ASM that GCC or LLVM generates from higher-level C code. I think the code-generation abstraction is just moving even higher now into "prompts". The architecture and engineering process of developing software systems is the important human component. The source code itself is not super valuable. What remains valuable is the input, direction, scrutiny, and "battle testing" of the solution.
- thejokeisonme 1mo agoHow can you scrutinize something you don't understand?
- NichoPaolucci 1mo agoNatural language can be ambiguous, though. "The system should email the customer when their subscription renews." When? Which timezone? What should we email them? Which email address (the customer changed their email 10 minutes ago, the address at time of the charge?) I can look at a page of code and answer those questions pretty quickly. You could write all of those in plain English, but then there are more tiny flaws in the ambiguous language. Maybe we could standardize the language in some way. To reduce ambiguity we start using keywords. When we want to refer to the same thing twice we create a variable or a type. Two things must interleave, let's create concurrency primitives. To check that the prompt is correct, we can write a test for it. And maybe we DO end up with a different format of prompting that supplies this, but at some point we are still giving directions to computers. If those directions are lossy, the system runs differently every time (which I've noticed is bad for building good software).