"Popular vs. Good" in Programming Languages 
- In langsmiths@yahoogroups.com, Daniel Ehrenberg wrote:
> What are your goals with this language? Are you trying
> to be popular, or are you trying to make a good
> language?
My goals are probably the same as just about every other language designer: to create a better language for me to create the types of programs that I typically need to create. What is perhaps slightly different for me is the types of programs that I typically need to create. I write large enterprise class applications for: financial institutions, the telecom industry, huge inventory systems, CRM and e-commerce. This is probably the sort of thing that about 90% of the world's programmers work on I'm guessing. (In short: the types of programs that nobody would every write for fun.) The types of programs that I write are far too large for me to write on my own so I need to make my language acceptable to the masses if I want to be able to use it. As a result, I want to make a language which is useable by 90% of the worlds' programmers (and some percentage of the world's non-programmers). Language experts design languages for their own needs, and because they're always writing languages, we end up with many languages which are excellent for language experts to write languages in. Languages for their own needs and for their own kind. Unfortunately, the offerings for non-language designers to create non-languages in, is drastically under-served.
Computer languages are actually for people, not computers. The computer is happy with machine code. If you make something which is for people but then most of the people don't like it, then you've failed. Could you imagine a Chef saying "do you want me to make good food, or food that people like?" It sounds like a ridiculous thing to say in the context of food (or clothing, or anything else supposedly designed for people) and yet it seems to be the common belief in the design of programming languages.
I wouldn't say that being "good" and being "popular" are mutually exclusive. A popular language is more likely to have better compilers and tools, be available for any particular platform, and more likely to have some desired functionality already implemented by someone else. Pragmatically, a language which lets me *not* write something because it has already been written by someone else, is better than a language which lets me write it any number of times faster. I'm more likely to be able to buy a book about a popular language, or to write a book about a popular language and get paid for it. I'm more likely to be able to find a job or conversely to hire developers for a popular language. Popularity is a feature, and in many cases, the most important one.
See the discussion that
followed.