I recently saw this story on Slashdot about “Revolution 4.0“, which claims to make programmers more productive by providing an “easy English-like language” in which to write code. This sort of thing strikes me as profoundly wrong-headed, and I’d like to present an analogy to try to explain why.
Suppose someone proposed “Natural Language Mathematics”. “Why must we suffer these obscure symbols and this confusing notation?”, he might say. “Why can’t we use simpler, more understandable language when writing about mathematics?”
The answers to these questions, I hope, are obvious: Mathematical notation, opaque as it can be, is a tool for reasoning about somewhat difficult concepts; the formal notation makes it easier to do math, not harder. I believe that programming languages serve a similar function, and that, while there’s no reason to believe that we’ve developed the best possible language in any domain, it seems highly unlikely that an “English-like” language will be a step forward, however accessible it might seem at first glance.