Crockford is half-right. We need to get rid of spaces too. I understand that linear text is a very versatile way to express programs, but it really lacks expressive power. Basically almost all of its expressive power comes from the syntax of the language you're using. Maybe that's a small part of why we have so many languages. Imagine if code were written in something like HTML, and when you edit it, your CSS (or CSS-like) settings determine how it looks. In fact you might have different CSS settings to emphasize different things in the code, with some parts being visible only in certain views. Imagine tools which could analyze the code in some way, perhaps involving external data such as a run profile, or a repository history, and generate a new view.
I understand that this would require a lot of tooling. I also think that any approach that doesn't work for all popular languages is not going anywhere. But there are a lot of concepts which are common across programming languages. Obviously one of the tools that would be needed is one that takes a linear text file in some language, and uses knowledge of that language to produce a marked-up output. We already have editors which understand something about specific languages, but they need to also understand the markup. For compilation, I think it should be possible to have a tool to strip out the markup, which works for any language.
Jupyter Notebooks are an interesting development in programming expressiveness. But their focus seems to be more on expressing the integration of the program code and the results of running the program. I actually think that's a great way to present scientific results. But when it comes down to code blocks in a notebook, it's back to linear text. It's ironic really, since the linear text actually is embedded in markup.
Look, I know it took the prokaryotes a long time (~1 billion years) to evolve into eukaryotes, but it was worth it, wasn't it? And what I'm proposing is not nearly as difficult.