Tom Ritchford
2 min readJul 15, 2021

--

You write a series of devastating rebuttals, and then end up with an unfounded statement of faith.

It is my belief that machine learning on its own will never generate programs that write good programs for us.

I am hopeful that AI will eventually take over a lot of the work, but with respect to writing programs, ML suffers from two problems that I believe are insuperable. (AI is a lot more than just ML!)

The first is Sturgeon's Law - 90% of everything is crap. Unfortunately, that means that any ML program will be trained on a huge corpus of code, 90% of which is crap.

Now, I can see all sorts of possible, if arduous, ways around this, but there's another more serious issue, which is that ML isn't doing any symbol manipulation, it's a statistical model.

This is great for recommendation engines, but not good for writing correct code or doing mathematics.

I have taught a lot of students programming or mathematics over the years and one category stands out here - the "fake it till you make it" crowd. It's really tragic, because these are generally bright people who are good at learning but instead of actually doing the math or the programming, say, "This idea worked in a similar situation so I will mechanically imitate it without setting up a conceptual model of what's going on."

They can do surprisingly well at low levels this way, but they can't really even fix their own mistakes because they don't have a conceptual framework to do so.

ML by its very nature does no symbolic manipulation at all. You can't interrogate it as to why it did anything - the best you get is some sort of "confidence measure" and often not even that.

An ML has no way to "check its work" - it just spits out its best result(s) and you either accept them or you don't.

Errors in programming are incredibly expensive. I think ML will get to the point of being able to spit out code that's right more often than not, but to be really useful, it needs to spit out code that is nearly always right, and without some sort of AI model of programming languages, variables, data structures, and their state, it will never be able to get the right answer by "averaging" other people's previous answers to similar programs.

--

--

No responses yet