RedMonk just released its programming language popularity rankings, with some surprises. R remains popular despite its somewhat narrow range of utility compared to the more broadly useful Python. Dart has shaken free of its doldrums and is climbing the charts. And Ruby seems poised on a precipice to rapidly decline in popularity.
What isn’t surprising is just how many of the newly popular programming languages depend on a big corporate backer. From TypeScript (Microsoft) to Go and Dart (Google) to Swift and Objective C (Apple), many modern programming languages attain their status through the influence of corporate dollars. It’s for this reason that Rust, a security-minded systems language, stands out. It’s not backed by one big company but by several.
Is that a feature or a bug?
SEE: Rust: What developers need to know about this programming language (free PDF) (TechRepublic)
The lonely hacker
Walk through the top 20 languages, however, and many have had corporate backing, including Java (Sun Microsystems, now Oracle), C# (Microsoft), C++ (AT&T), TypeScript (Microsoft), C (Bell Labs) and more. As Bjarne Stroustrup, creator of C++, has written, there’s a good reason for big companies to make big investments in building and sustaining programming languages: “When I first developed C++, AT&T built systems of greater complexity and with greater reliability requirements than most organizations. Consequently, we had to influence the market and help set standards that meet our needs—or else we wouldn’t have the tools to build our systems.”
SEE: C# designer Torgersen: Why the programming language is still so popular and where it’s going next (TechRepublic)
So it’s partly a matter of scale and resources. Google, for example, created Go to help it build its internal systems. But it also needed something like Go because it was pushing those systems well beyond what more mainstream enterprises yet needed. Apple, too, with Objective C and then Swift, designed programming languages that would help developers be more productive with mobile applications. This wasn’t altruism: The company was ensuring a steady stream of apps that would run on iOS. (Ditto Kotlin, which was developed by JetBrains but embraced by Google to fuel Android development.)
Rust, however, is different.
Strength in numbers
Rust was developed at Mozilla, but it has moved into a foundation. One that no single company controls. Software engineering leader Karthik Hariharan suggests this is a weakness: “Rust still has one major roadblock in lack of a large corporate sponsor with a vested interest in supporting the ecosystem.” But I agree with Matt Wilson’s reply: “This is a feature, not a bug, of Rust….There are *multiple* sponsors with a vested interest in supporting an open, independent, collaborative, participatory community.”
SEE: Meet the hackers who earn millions for saving the web, one bug at a time (cover story PDF) (TechRepublic)
These multiple sponsors, including Microsoft, Google and AWS, can be fierce competitors. But a similar dynamic plays out in Linux, for example, where hardware and software vendors collaborate on the code (and then try to bludgeon each other in the market). With Rust, the community is governed by shared principles, including:
“Memory safety must never be compromised
Abstraction should be zero-cost, while still maintaining safety
Practicality is key”
Though, of course, there are exceptions, it seems reasonable to imagine a programming language getting better through more, not less, diversity in perspectives. A company like Microsoft has a huge footprint, which helps it to chart a broad course for TypeScript, but it’s even better if multiple “Microsofts” can collaborate to bring their unique perspectives to bear on any open source project, but particularly a language. It also ensures that no single entity can control the language, which is a feature, not a bug.
Will it work? So far, it seems promising. Already core contributors to Rust are spread across a number of companies, including sponsors of the Rust Foundation mentioned above and others like Facebook. If it does work, it may create a new model for language development.
Disclosure: I work for AWS, but the views expressed herein are mine.