
How to design a popular programming language - fogus
http://abstractfactory.blogspot.com/2010/05/how-to-design-popular-programming.html
======
j_baker

        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?

~~~
lmkg
The 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.

------
davidw
I 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>

Java and .Net/C# are "anomalous" also because they have massive corporations
pouring a lot of resources into them, which helps.

~~~
lallysingh
Actually, I'll reduce that further:

    
    
      Programming is, despite appearances, a deeply social profession.

------
mcantor
_Incidentally, 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
I 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.

------
lukev
If 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
Hickey is the man. I've learned from and enjoyed all of his presentation
videos that I've encountered online.

------
loumf
Reminded me of this <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._

------
fr0man
Terrific 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
.. if you're willing to live in the set of languages coerced to fit in the
.Net object model.

~~~
fr0man
I'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
Haskell and Erlang.

~~~
fr0man
Fair 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
Erlang does, sure. You can find libraries to make erlang nodes in most
languages.

------
weeksie
Er, 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?

------
stcredzero

        - 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!

