"Machine programming" vs. "ML for code"
Because moving fast is not enough
A tale of two YouTube channels
Before I get to today’s main event — the work of Justin “Goju” Gottschlich of Merly.ai — I announce the Fastcode OSE channel on YouTube. As they say, “like and subscribe!” And maybe, someday, Fastcode will have as many followers as Goju Tech Talk.
Machine programming
Goju gave a great talk at September’s Fastcode Seminar, “A speedy tour of machine programming,” or MP for short. He explained MP as the automation of any aspect of software development. He differentiated MP from “ML for code,” which focuses on ML (“the shiny new thing”) and applies it to code, without concern for other aspects of software development.
Why do we need machine programming?
Goju highlighted the major pros and cons of ML for code:
This leads us to the reason we need MP: “It’s not sufficient just to move fast. We also need to move fast with grace, with correctness, with quality.”
Reasoning about machine programming
Goju explained the three pillars of machine programming:
Intention: discover the intent of the programmer; lift meaning from the software.
Invention: create new algorithms and data structures; compositional novelty.
Adaptation: evolve in a changing hardware/software world.
The hardest problem, where ML for code really struggles, is the space of adaptation — evolving an existing system to perform in a changing hardware/software environment.
To learn more about MP, I heartily recommend Goju’s talk, which is available on the Fastcode OSE YouTube channel.





