Some programming languages are better at some tasks than others. Below I have presented my own assessment of how various languages stack up against each other for the following common classes of tasks:
Additionally, some programming languages are on the rise or on the decline, for a wide variety of reasons. So I have also provided an assessment of:
The rating scale is:
Python | Java | C# | C | C++ | |
---|---|---|---|---|---|
Programmer-bound | Excellent | Okay | Okay1 | Poor | Okay2 |
I/O-bound | Good | Good | Good | Good | Good |
CPU-bound | Poor | Good | Good | Excellent | Excellent |
Platform longevity | Good | Okay3 | Excellent | Excellent4 | Good |
JavaScript5 | PHP6 | NodeJS | Ruby | Go | |
---|---|---|---|---|---|
Programmer-bound | Okay7 | Okay8 | Poor | Good9 | Okay |
I/O-bound | Okay? | Okay? | Excellent | Good | Excellent |
CPU-bound | Good10 | Okay? | Good11 | Poor | Excellent |
Platform longevity | Excellent12 | Good13 | Good14 | Good15 | Okay |
Objective-C | Haskell | Perl | Fortran | Lua | |
---|---|---|---|---|---|
Domain | OS X, iOS | Academia | SysAdmin | Computation | Game Mods |
Programmer-bound | Good16 | Okay17 | Good18 | ? | Good |
I/O-bound | Good | Poor19 | Good? | ? | Good |
CPU-bound | Excellent | Good | Poor? | Excellent | Good |
Platform longevity | Good | Good20 | Poor21 | Good | Okay |
Normally Good, but still leans verbose, similar to Java.↩
Normally Poor, based on the language design, but has a good standard library and massive corporate support for tooling.↩
Normally Good, but Oracle is a poor steward for the language.↩
Cemented as the just-above-assembly language of all CPUs.↩
Specifically JavaScript used on the frontend in a web browser.↩
Is actually a Web Framework masquerading as a Programming Language.↩
Normally Poor, but has a huge number of external libraries and massive corporate support for tooling around inefficiencies in the language.↩
Normally Poor, but has easiest deployment model of any web framework.↩
Normally Excellent, due to massive community support, but degraded by platform instability and lack of language specification, which retards tooling development.↩
Normally Poor, but has highly performant VMs due to massive corporate support.↩
Normally Poor, but has highly performant VMs due to massive corporate support.↩
Cemented as the assembly language of the web browser.↩
Normally Okay, but being propped up by cheap web hosting providers and an army of amateurs.↩
Drafts off of JavaScript’s popularity.↩
Normally Okay, but being propped up by startups.↩
Normally Okay, but has a top-class standard library.↩
Normally Good, but degraded by impenetrable documentation and pervasive speculative generality.↩
Normally Excellent, but degraded by excessive redundant syntax.↩
Normally Good, but degraded by making I/O difficult to perform.↩
Normally Okay, but is being propped up by academia.↩
Normally Fail, but lives on as a preinstalled scripting language for Linux.↩