The importance of simplicity


From: Leo A. Meyerovich and Ariel S. Rabkin. Empirical Analysis of Programming Language Adoption. OOPSLA 2013.

This entry was posted in General. Bookmark the permalink. Both comments and trackbacks are currently closed.


  1. Kabe
    Posted September 12, 2013 at 12:29 pm | Permalink

    All this shows it that the respondents “want to get stuff done”, but don’t know what role simplicity plays in that. People I talk to think simplicity in a programming language means less-features, and therefore less power. So who is going to chose “languages that are less powerful” in a survey? We are asking the wrong questions.

  2. Posted September 12, 2013 at 12:31 pm | Permalink

    As a PL designer, that aspect of the result made me sad 🙁

    However, take heart! The figure reports perceived importance, and respondents are probably not gauging latent factors such as whether simplicity fosters library creation.

    (Then again, who cares: Google has deep enough pockets to pay for the important efficient standard libraries without relying upon language simplicity.)

  3. Posted September 12, 2013 at 2:05 pm | Permalink

    What good is language simplicity when you can just keep hiring rockstars?

    • Posted September 12, 2013 at 3:45 pm | Permalink

      And when you run out of domestic rockstars bribe politicians to let you import foreign rockstars!

  4. Dercsár
    Posted September 12, 2013 at 3:19 pm | Permalink

    No worries. Call it ‘manageability’ (instead of simplicity) and they’ll love it!

  5. Posted September 12, 2013 at 4:16 pm | Permalink

    I can see how this would be the result. I myself value simplicity a lot in a language–but I also value availability of libraries, familiarity (syntax I’m used to), run-time speed, development speed, and so forth, roughly just as much as simplicity. So I wouldn’t remove those other good things in favor of simplicity, but as a language designer I would (and do) try to get as much simplicity as possible without sacrificing other benefits.

    From a user perspective, simplicity might not be the most important thing, but it is very important for language designers and for advanced users (or rather, users who *want* to be advanced: if it’s simple, users can understand it better and accomplish advanced things more easily. e.g. I’m having trouble learning C# 5 async effectively because although the basic concepts are straightforward enough, the feature relies on complicated and poorly-documented runtime libraries.)

    It’s hard to put into words why simplicity is so important. But on some level, it really, really is.

  6. Gary Miller
    Posted September 12, 2013 at 10:28 pm | Permalink

    A nice eloquent argument for Simplicity by Rich Hickey.

    I like that he is trying to introduce the word Complect to PL lexicon.

    I notice that in the MOOC survey data simplicity comes about halfway down the list.
    So there is hope.

    • Posted September 13, 2013 at 7:42 am | Permalink

      Introducing new words that are synonyms of familiar ones is not simplification. Complect = intertwine. It’s a good way to get attention though.

      There is a lot of fresh thinking and tasteful design in Clojure. I like it. But the overheated rhetoric and cult of personality are off-putting.

    • J.K.
      Posted September 13, 2013 at 7:33 pm | Permalink

      Most of Hickey’s writing is nothing more than attention-whoring. Consciously trying to coin a term is possibly the most attention-whorish thing imaginable.

  7. Posted September 13, 2013 at 5:42 pm | Permalink

    Do people have difficulty distinguishing simple vs. simplistic? When things really are ‘simple’, how often do we think about it? How often do people sell ‘simplistic’ using the word ‘simple’? How much would you trust a language advertised as ‘simple’?

    I think it isn’t hard to see why simplicity rates poorly. As a prospective language user, even I’d rate it pretty low. As a language designer, OTOH, it’s important to me. I’ll just need to remember to keep ‘simple’ out of my language but obvious in the demonstrations…

    Simplicity is a fine goal for language and designers,

  8. Mayson Lancaster
    Posted September 15, 2013 at 2:31 pm | Permalink

    Love the ideas of Subtext: especially live coding. The most enjoyable programming I’ve done is with live-ish environments, especially ones where the environment itself is live. I.e. where you can modify the behavior of the environment without leaving the environment. Combine that with a simple, but powerful, language, and miracles of programming become possible.

    • Posted September 24, 2013 at 8:24 pm | Permalink

      Does subtext support live coding? I can’t imagine Jonathan Edwards writing music in real time in front of an audience.

      • Tycho
        Posted October 15, 2013 at 6:35 am | Permalink

        It’s an integral part of the language; for instance check this latest screencast;

  • Subscribe to Blog via Email

    Enter your email address to subscribe to this blog and receive notifications of new posts by email.