What Makes Programming Languages Successful?

July 1, 2010 § Leave a comment

Following up on my (subjective) list of what I like about Ruby, here’s a (relatively objective) list based on articles about what makes programming languages successful.

The characteristics widely-adopted languages seem to share:

  1. Generality (suitable for a wide range of problems)
  2. Extensibility (can easily be extended with new abstractions)
  3. Novelty (solves a certain domain of problems far better than existing alternatives)
  4. Familiarity (e.g., C-like syntax)
  5. Availability (low cost + ported to multiple platforms)
  6. Popularity (associated with an emerging, widely-used platform)
  7. Utility (readily-available libraries for common tasks / integration with existing tools)

The order is largely arbitrary, but roughly goes from “intrinsic” to “extrinsic” factors. While the terms themselves are rather vague, I find it useful as a framework for considering and comparing various currently-popular languages.

What’s particularly fascinating to me (with my admittedly sketchy knowledge of history) is how most successful languages apparently start out with only 2-3 of these items, but then attract an “early adopter” crowd who provides the others.

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

What’s this?

You are currently reading What Makes Programming Languages Successful? at iHack, therefore iBlog.

meta

%d bloggers like this: