Useful programming languages

by Forrest Sheng Bao

I have no interest on designing a *beautiful* programming language, but a *useful* one.

By ``beautiful'' I mean that users get bored before they can see enough benefits of a language. By ``useful'' I mean that users are growing their interest on the language in evaluating whether they should use it in the future, though sometimes they may have to spend a lot of time to learn it, e.g., LaTeX and its macros.

Therefore, I don't care how many great theoretical ideas are behind the design of a language. If more than 50% of your target programmers (those who you think that should solve their problems in your language) think your new language is not "useful," you are like MySpace now (just laid off almost half of their employees).

Please think about the reason we design a programming language. For use, right? Making programmers be happy about it, i.e., thinking that their life is easier. O/w, your language is a failure.

Designing a programing language is like designing commercial products, e.g., a blender in the kitchen. No one likes to read the manual for a whole day before they can get press the power button. Of course, a programming language takes more time to learn than a blender. But programmers are your customers and customers are always right. If they are growing frustration, confusion and impatience in learning your language, they won't ask you to refund their time but simply giving up your language at certain point.

If someone needs to read dozens of papers published in the past half century with great pains in order to use your language properly, this language shouldn't be designed from the beginning. Why do you design something that is apparently against your original goal, i.e., to make people use it?

An example. In WWII, Germans used the Tiger tanks while Americans used the Sherman Tank. Sherman tank sucks in almost all aspects. But Americans won in most of the tank-to-tank battles, because Sherman tank is easy to use. Anyone who knows how to drive a car can drive the Sherman tank. The Tiger tank is designed too sophisticated.

No comments: