6 ms·
> A sufficiently detailed spec is code This is exactly the argument in Brooks' No Silver Bullet. I still believe that it holds. However, my observation is that
by hintymad 7mo ago
> A sufficiently detailed spec is code
This is exactly the argument in Brooks' No Silver Bullet. I still believe that it holds. However, my observation is that many people don't really need that level of details. When one prompts an AI to "write me a to-do list app", what they really mean is that "write me a to-do list app that is better that I have imagined so far", which does not really require detailed spec.
- ChrisMarshallNY 7mo agoBut if you’re selling that to-do list app, then the rules are different, and that spec is required. I guess it depends on whether or not we want to make money, or otherwise, compete against others.
- lmm 7mo ago> When one prompts an AI to "write me a to-do list app", what they really mean is that "write me a to-do list app that is better that I have imagined so far", which does not really require detailed spec. If someone was making a serious request for a to-do list app, they presumably want it to do something different from or better than the dozens of to-do list apps that are already out there. Which would require them to somehow explain what that something was, assuming it's even possible.
- ms_menardi 7mo agoIt could be an issue of discoverability too. Maybe they just haven't found the to-do app that does what they want, and it's easier to just... make one from scratch.
- carlmr 7mo agoWhich is not getting better. I'd pay you 10€ for a TODO app that improved my life meaningfully. It would obviously need to have great UX and be stable. Those are table stakes. I don't have the time to look at all these apps though. If somebody tells me they made a great TODO app, I'm already mentally filtering them out. There's just too much noise here. Does your TODO app solve any meaningful problem beyond the bare minimum? Does it solve your procrastination? Does it remind you at the right time? If it doesn't answer this in the first 2 seconds of your pitch you're out.
- bluGill 7mo ago> It would obviously need to have great UX There is the problem. Todo apps are easy to make. However making one that is actually useful for tracking todo items it hard. Getting the todo into the app is harder than writing it on paper. Getting reminders at a useful time is hard (now is not a great time to fix that broken widget - it needs parts not in the budget, I'm at work, it needs a couple hours of dedicated time and I have something else coming up...). I've tried a few different ones, most are a combination of too complex and not complex enough at the same time.
- carlmr 7mo agoExactly, you would probably also pay for a good one. I tried maybe 10 and gave up. I now carry a small booklet where you can rip off the pages, for notes and todos. Still way better than the phone apps
- pixelbart 7mo agoWould a musician refrain from writing a love song because there are already better love songs?
- lmm 7mo ago> Would a musician refrain from writing a love song because there are already better love songs? Yes; at least, I would hope a musician who was writing a love song was doing so because they want it to do something different from or better than other existing love songs. (Or they might be doing it to practice their songwriting skills - just as a programmer might write a todo app to practice their programming skills - but it makes no sense to use an AI for that)
- mfabbri77 7mo agoYes. This happens because the training data contains countless SotA "to-do" apps. This argument does not scale well to other types of software.
- baxtr 7mo agoIsn’t most standard software these days a permutation of things already done before?
- mfabbri77 7mo agoIn my experience, the further you move away from the user and toward the hardware and fundamental theoretical algorithms, the less true this becomes. This is very true for an email client, but very untrue for an innovative 3D rendering engine technology (just an example).
- layer8 7mo agoAn email client is highly nontrivial, due to the complexities of the underlying standards, and how the real implementations you have to be compatible with don’t strictly follow them. Making an email client that doesn’t suck and is fully interoperable is quite an ambitious endeavor.
- mfabbri77 7mo agoThe point was to answer the question: "Can every piece of software be viewed as a permutation of software that has already been developed?" In my opinion, an email client is a more favorable example than a 3D engine. In fields where it is necessary to differentiate, improve, or innovate at the algorithmic level, where research and development play a fundamental role, it is not simply a matter of permuting software or leveraging existing software components by simply assembling them more effectively.
- Archer6621 7mo ago
- ozim 7mo agoEveryone at least heard stories of people who just want that button 5px to the right or to the left and next meeting they want it in bottom corner - whereas it doesn’t make functionally any difference. But that’s most of the time is not that they want it from objective technical reasons. They want it because they want to see if they can push you. They do it „because they can”. They do it because later they can renegotiate or just nag and maybe pay less. Multiple reasons that are not technical.
- skydhash 7mo agoAnd that’s why you make your code modular and impervious to such change. And I don’t mind if they want to spend their money by making me do stuff that’s not important.
- throwaway27448 7mo agoIn this case a chatbot is also unlikely to succeed in pleasing the user—and how could it?
- soco 7mo agoIndeed, because how could that LLM know what I didn't like about all other to-do apps? It will generate a new one more or less the same as the old one, but the user will be happy because "yay it's mine". Maybe. Or maybe not.
- Animats 7mo agoNot entirely. For some problems, it is. Web front-end development, for example. If you specify what everything has to look like and what it does, that's close to code. But there are classes of problems where the thing is easy to specify, but hard to do correctly, or fast, or reliably. Much low-level software is like that. Databases, file systems, even operating system kernels. Networking up to the transport layer. Garbage collection. Eventually-consistent systems. Parallel computation getting the same answer as serial computation. Those problems yield, with difficulty, to machine checked formalism. In those areas, systems where AI components struggle to get code that will pass machine-checked proofs have potential.
- quangtrn 7mo ago[flagged]
- smartmic 7mo agoI wouldn‘t say this is the core argument of No Silver Bullet. I wrote a short review of Brooks paper with respect to todays AI promises, to whoever is interested in more details: https://smartmic.bearblog.dev/no-ai-silver-bullet/ https://smartmic.bearblog.dev/no-ai-silver-bullet/
- jamiemallers 7mo ago[dead]
- bigfishrunning 7mo ago> When one prompts an AI to "write me a to-do list app", what they really mean is that "write me a to-do list app that is better that I have imagined so far", which does not really require detailed spec. What does "better" mean here? i suspect that "better" would be defined...in a spec