| ▲ | yuedongze 14 hours ago | |||||||
It's nice to see a wide array of discussions under this! Glad that I didn't give up on this thought and end up writing it down. I want to stress that the main point of my article is not really about AI coding, it's about letting AI perform any arbitrary tasks reliably. Coding is an interesting one because it seems like it's a place where we can exploit structure and abstraction and approaches (like TDD) to make verification simpler - it's like spot-checking in places with a very low soundness error. I'm encouraging people to look for tasks other than coding to see if we can find similar patterns. The more we can find these cost asymmetry (easier to verify than doing), the more we can harness AI's real potential. | ||||||||
| ▲ | felipeerias 12 hours ago | parent | next [-] | |||||||
Thinking about the relationship between creation and verification is a good way to develop productive workflows with AI tools. One that works particularly well in my case is test-driven development followed by pair programming: • “given this spec/context/goal/… make test XYZ pass” • “now that we have a draft solution, is it in the right component? is it efficient? well documented? any corner cases?…” | ||||||||
| ▲ | Yoric 12 hours ago | parent | prev [-] | |||||||
Note that in the case of coding, there is an entire branch of computer science dedicated to verification. All the type systems (and model-checkers) for Rust, Ada, OCaml, Haskell, TypeScript, Python, C#, Java, ... are based on such research, and these are all rather weak in comparison to what research has created in the last ~30 years (see Rocq, Idris, Lean). This goes beyond that, as some of these mechanisms have been applied to mathematics, but also to some aspects of finance and law (I know of at least mechanisms to prove formally implementations of banking contracts and tax management). So there is lots to do in the domain. Sadly, as every branch of CS other than AI (and in fact pretty much every branch of science other than AI), this branch of computer science is underfunded. But that can change! | ||||||||
| ||||||||