Last night at the Sydney Go Users’ meetup, Jason Buberel, product manager for the Go project, gave an excellent presentation on a product manager’s perspective on the Go project.
As part of his presentation, Buberel broke down the marketplace for a programming language into seven segments.
As a thought experiment, I’ve taken Buberel’s market segments and applied them across a bunch of contemporary languages.
Disclaimer: I’m not a product manager, I’ve just seen one on stage.
Language | Embedded and devices1 |
Systems and drivers2 |
Server and infrastructure3 |
Web and mobile4 | Big data and scientific computing |
Desktop applications5 | Mobile applications |
Go | 0 | 0 | 3 | 2 | 1 | 16 | 1 |
Rust | 1 | 1 | 0 | 2 | 0 | 26, 11 | 0 |
Java | 214 | 0 | 2 | 3 | 3 | 27 | 3 |
Python | 1 | 0 | 312 | 3 | 3 | 26, 10 | 0 |
Ruby | 0 | 0 | 3 | 3 | 0 | 16 | 0 |
Node.js (Javascript / v8) | 113 | 0 | 0 | 2 | 0 | 0 | 28 |
Objective-C / Swift | 0 | 3 | 2 | 29 | 0 | 3 | 3 |
C/C++ | 3 | 3 | 3 | 2 | 3 | 3 | 2 |
Is your favourite language missing ? Feel free to print this table out and draw in the missing row.
Scoring system: 0 – no presence, lack of interest or technical limitation. 1 – emerging presence or proof of concept. 2 – active competitor. 3 – market leader.
Conclusion
If there is a conclusion to be drawn from this rather unscientific study, every language is in competition to be the language of the backend. As for the other market segments, everyone competes with C and C++, even Java.
Notes:
- The internet of things that are too small to run linux; micrcontrollers, arduino, esp8266, etc.
- Can you write a kernel, kernel module, or operating system in it ?
- Monitoring systems, databases, configuration management systems, that sort of thing.
- Web application backends, REST APIs, microservices of all sorts.
- Desktop applications, including games, because the mobile applications category would certainly include games.
- OpenGL libraries or SDL bindings.
- Swing, ugh.
- Phonegap, React Native.
- Who remembers WebObjects ?
- Python is a popular scripting language for games.
- Servo, the browser rendering engine is targeting Firefox.
- Openstack.
- Technically Lua pretending to be Javascript, but who’s counting.
- Thanks to @rakyll for reminding me about the Blu Ray drives, and j2me running in everyone’s credit cards.