4 ms·
How to design a popular programming language
- davidw 16y agoI like the quote about network effects: > 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 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.
- lallysingh 16y agoActually, I'll reduce that further: Programming is, despite appearances, a deeply social profession.
- mcantor 16y agoIncidentally, this theory predicts that all the new(ish) programming languages attracting buzz these days — whether Ruby, or Scala, or Clojure, or Go, or whatever — will fail to attract large numbers of programmers. 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.
- dragonquest 16y agoI do agree that Ruby has passed this test since there are quite a few Ruby projects out there, a ton of startups and even some big names showing interest in it. There are webhosts out there which specialize in Ruby deployments which is a big win if you see Ruby as a web language. 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.
- runevault 16y agoI'm not a ruby fan, but anyone who says it hasn't attracted a large number of programmers is either insane or delusional. I don't think it's passed python yet but it's still REALLY popular.
- kscaldef 16y agoI would tend to agree, and I would also add that I'm pretty sure there's significantly more PHP programmers and jobs than either of Ruby or Python. Singling out Python as the article does seems a little bizarre to me.
- dagw 16y agoLooking at it from a purely web perspective then Ruby and Python look quite equal with RoR probably even having and edge. However Python is used just about everywhere; finance, GIS, visualization, statistical and numerical analysis, data mining and so on and so forth. In fact I don't think I've seen a major company in any field that doesn't use Python somewhere in its organization. Conversely I don't think I've seen any company use ruby for anything other than web stuff.
- zokier 16y agoTIOBE index places Ruby at 12th position and Python at 7th.
- weeksie 16y agoEr, that should be "How to design a popular systems programming language." Since web stuff isn't dependent on a platform the language of choice can be very fluid. Remember when nearly all webapps were written in Perl?
- j_baker 16y ago1. 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?
- bobbyi 16y agoIt's also reminiscent of Steve Martin's two-step plan for how to make a million dollars and not pay any taxes.
- lmkg 16y agoThe article isn't actually meant as a guide. It's meant as a commentary on what makes programming languages popular, and the conceit of a "guide" format is just a rhetorical device.
- antipaganda 16y agoYou can quite happily make your language the DEFAULT way to program on a platform even though it isn't necessarily the BEST way to program on that platform. Just ask Steve Jobs.
- fr0man 16y agoTerrific post, but he's overlooking the .NET framework. It has successfully made "cross-language interoperability work well." Granted, you're limited to windows programming, but that's not his point. Moreover, you could even argue that C# has overtaken VB as the dominant language for programming on the .NET platform.
- lallysingh 16y ago.. if you're willing to live in the set of languages coerced to fit in the .Net object model.
- fr0man 16y agoI'm not saying I don't like to get out of the .NET box; I do. But the point was within a single framework you have multiple languages that work well together. 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#.
- lallysingh 16y agoHaskell and Erlang.
- fr0man 16y agoFair enough. I do nearly 100% web development, so I haven't messed with those yet. They still don't give you anymore language interoperability than anything else, though.
- lallysingh 16y agoErlang does, sure. You can find libraries to make erlang nodes in most languages.
- lukev 16y agoIf I were to design a programming language, I'd design it to be good, and to be easy to integrate with existing projects/codebases, and let popularity worry about itself. 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.
- frou_dh 16y agoHickey is the man. I've learned from and enjoyed all of his presentation videos that I've encountered online.
- loumf 16y agoReminded me of this http://www.paulgraham.com/popular.html http://www.paulgraham.com/popular.html 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.
- stcredzero 16y ago- 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!