Tim Cohen, IBM developerWorks
On June 17 of last year, Lauren Orsini, a journalist for ReadWrite, wrote an article titled, “How Many Languages Do Developers Need to Know?” A fair question, especially when you consider the fact that there are literally hundreds of programming languages in existence today.
The “computer-language babel,” as Orsini calls it, is mostly a byproduct of two things. The first is the fact that tech giants have been creating new programming languages since, well, tech giants have been around.
Take, for example, the programming language C. At the time, computer scientists Ken Thompson and Dennis Ritchie designed it to provide low-level access to memory, provide language contructs that mapped efficiently to machine instructions, and required minimal run-time support – all problems which, if solved, would be of benefit to AT&T Bell Labs, where Thompson and Ritchie ultimately created it. Today, C is one of the most widely used programming languages of all time.
The second reason for the babel is because companies continue to build new languages simply because they can, though most at least make an attempt to avoid reinventing the wheel until their needs necessitate it, as was the case with Facebook and their creation of Hack.
Hack—a superset of the scripting language PHP–was predominantly designed to improve code reliability, an extremely common goal for most tech companies these days. Facebook made every attempt to use an existing language, says Julien Verlaguet, one of Hack’s core developers. The problem? Facebook’s entire codebase (see:infrastructure) was written in PHP which, unfortunately, doesn’t play well with others.
That lack of integration meant loss of performance speed and a loss of performance speed is likely the last thing any developer wants, and voilà, Hack was born.
So, how many languages should developers know?
There are two sides to the debate: One argues that companies that design new languages to suit their own needs further adds to the fragmentation of developers’ attention, which can consequently slow the progress of development as a whole. Ultimately, this means that developers should only know a handful.
The other side argues that while it can be frustrating to keep up with all the new languages being invented, there is a heightened likelihood that one will crop up that fits your exact needs, and that the reverse scenario (i.e. a world where everyone used the same language for everything) would mean that you have a language that does everything poorly, but absolutely nothing well.
Undecided on which side you’re on? Simply want to educate yourself more on the matter at hand? Check out the following infographic on the 9 most useful programming languages according to Syracuse University’s School of Engineering & Computer Science – it’s sure to help pare down your decisions or bolster your wish to expand your programming horizons.
The views and opinions expressed in this article are those of the authors and do not necessarily reflect the policy or position of IBM— no official endorsement should be inferred or implied.