Why programming language design is hard (and a few ways it can be made easier)
plsadventures.com
plsadventures.com
Point 7, dont create new syntax for old semantics, is worth remembering, unless you have a significant simplification. In fact taking an old language and making it simpler is a very good excuse for a new language.
One thing not mentioned in the article is the importance of libraries. A new language doesnt have a lot of chance for success if users have to write everything from scratch. If you can piggyback on top of an existing infrastructure, like java, your chances are better.
One can say the following for many languages:
[X] is, in the opinion of many, not such a well designed language. But it's very useful to many people, in large part because of its community.
I think such network effects are responsible for the "worse is better" idea with regards to languages. Worse is not better. But a large active community makes better when it comes to a programming language.
So here's another reason why programming language design is hard: to be successful, you need to become popular.
The point is, that design factors other than good can come into play with regards to popularity. C syntax and "normal" operator precedence have nothing to do with a language being good. (Unless the language is C.) They have everything to do with a language being familiar.
Obviously a language for which a design goal is "popularity", the design parameters are quite different, but I think the basic principles hold.