Visual Beauty: a theory of which programming languages survive
I have a theory about why some programming language win and others lose. Programming languages have by-and-large a similar form, despite wars over the merits of various languages, at least post-C. Once you learn a given language’s idiosyncrasies, above a certain quality threshold, they really are relatively similar up-to library availability.
But they differ widely in the prettiness of their syntax.
And here I am talking about visual beauty, not elegance in the sense of expressing an idea in a succinct way. I mean the way the code looks on the screen.
I’ve written LISP for — at this point — more than 15 years of Emacs use (I’m still young, I swear!) and have even done a C project that could be extended with Guile. But I have no doubts about why LISP/Scheme were beat. It looks ugly as all hell. It is elegant in other ways, but visually, it has no variation in its form and so, no beauty.
One of it’s elegant features is the regularity of its syntax which partially enables the Code is Data aspect of the language. But this same regularity is what makes it ugly, flat. Variety in forms attracts the human eye. LISP doesn’t have that.
This is why Rust will never succeed. It is ugly. C is beautiful, arranged on the screen. Of course, people can write ugly C, but they don’t have to. It’s a simple language with a pretty syntax. It has variety and it allows the user substantial freedom to make it beautiful to their own eye (curly braces go on their own line — always). The different parts of the language are clearly distinguished. It is not a mess of symbols.
This is why Python won. I can think of no reason not to prefer Ruby at the language level. But Python did away with end’s which, while very useful for a programmer scanning code and trying to figure out the blocks and a chief reason I like Ruby more, they do clutter the screen and diminish visual beauty.
In fact, once you start with this thesis in mind, it is impossible not to see how much of observed language success is explained by the general consensus about Visual Beauty.
Of course, there is C++. No theory is perfect.