How to design a popular programming language
abstractfactory.blogspot.com
abstractfactory.blogspot.com
1. Find a new platform that will be a huge success in a few years.
2. Make your language the default way to program on that platform.
3. Wait.
Isn't that a bit like saying that you can start a startup by: 1. Find a new market that's untapped.
2. Make your product the best product in that field.
3. Wait.
Strictly speaking that is probably correct advice. It's just not very useful. It just begs too many other questions: How do I find an untapped market? How do I make it the best product in that field?> The network effects from language adoption are immense. Programming is, despite appearances, a deeply social profession. To write successful software quickly, you must exploit the skills of other programmers — either directly, by hiring them, or indirectly, by using library software they've written. And once a language becomes the most popular in a niche, the supply of both programmers and libraries for that language rapidly accumulates to the point where it becomes economically irrational to use any other language.
It reminds me a bit of something I wrote a while ago:
http://www.welton.it/articles/programming_language_economics
Java and .Net/C# are "anomalous" also because they have massive corporations pouring a lot of resources into them, which helps.
Programming is, despite appearances, a deeply social profession.I'm a little confused. Hasn't Ruby already passed this test, or am I just biased because I enjoy writing in Ruby? I was under the impression that Ruby and Python were largely equivalent in popularity and notoriety, as evidenced by Rails and Django, for example.
However, I would disagree on the comparison with Python which has a much larger community base than Ruby. Rails may be more popular than Django but Python has even penetrated desktop apps like Hg, Bazaar, Meld etc. which is one area Ruby is still to affect significantly. But having said that, Scala, Clojure and especially Go are not nearly as popular as Ruby or Python.
To my mind, Rich Hickey is the paragon of programming language creators. He scratched his own itch, he did a hell of a job, and now his language is quickly becoming popular with zero corporate support or explicit marketing.
Let's start by acknowledging one external factor that does affect the popularity of a programming language. To become popular, a programming language has to be the scripting language of a popular system.
I'm fairly language agnostic, but out of curiousity, what language doesn't .NET have that you want to work with? All my (language-y/syntaxy) needs are pretty much filled between IronRuby, IronPython, C#, and now F#.
- Nobody has figured out how to make cross-language
interoperability work well.
- The network effects from language adoption are immense.
False. Depends on the context. Does REST "work well?" Does the ability of JRuby apps to call Java libraries "work well?" The answers are too context-dependent.The 2nd is spot-on!