Hacker News new | ask | show | jobs
by userbinator 3617 days ago
Suppose you have an AI that generated some code for you, but it doesn't do exactly what you want. Now try to debug it...

what if programming wouldn't involve defining exact steps, but instead just roughly defining what we have and what we want and maybe giving a few hints, and having the computer generally do the right thing - wouldn't that be awesome?

I experience enough frustration with things like debugging generated code, ostensibly "smart" devices which seem to "have a mind of their own" (maybe that's the point, but it's not doing what I want), and getting Google's search engine to find exactly what I want with its pseudo-AI machine-learning algorithms doing completely inexplicable things with my queries, that I think "generally do the right thing" is not a good idea. Edge cases matter a lot.

3 comments

Don't we already have a similar situation today with the compiler and application stacks? I'm not writing my business logic in assembler -- I'm writing it in Java, maybe pulling in some third party libraries, using Spring, and then running on the JVM. All kinds of opportunities for things not to work as I expect and then I have to figure out why.
The difference is that, as the article points out, traditional programming languages are far more 'exact' - large systems can become difficult to debug, but that largely arises from the complexity of layered abstractions, whose behaviour is still exact. AI-based systems not only add the complexity of abstraction, but also with their inexactness.
> and getting Google's search engine to find exactly what I want with its pseudo-AI machine-learning algorithms doing completely inexplicable things with my queries, that I think "generally do the right thing" is not a good idea.

Actually Google works kind of OK now after they overshot seriously some years ago. Today if you use doublequotes around the search terms it actually seems to search for that exact term.

Which I think is a good solution: reasonable AI with easy fallback when you need it.

I guess an AI VM would need an exact modifier: don't attempt any unspecified cleverness on this variable/method/class.

Specifying some kind of runtime assertions on steroids could perhaps also alleviate some problems.

Debugging could be simplified by having the VM outputting all its assumptions.

Aw man, I was hoping we'd be rid of compiler flags by then
Yeah, I think this article is talking about something that isn't programming at all. There will always be programmers (unless we're talking about a real robot uprising situation) and if we enter a world where people can tell AIs to perform programming tasks effectively, that won't just be the provenance of programmers; it will reshape society in general.