A lot of conversation surrounding programming languages is often, unfortunately, mired in declaring one programming language better than the other. There will probably never be just one single programming language to rule them all, and more importantly there shouldn't be. There is need for diverse kinds of programming languages to meet the diverse needs of software. As a professional developer you can never stop after you have mastered one programming language, you need to be as programmable as the computers you deal with.
Fact is, there is no ‘best tool’, just the best tool for the job. The same can be said of programming languages. Often the best programming language for the job isn't just a factor of the technical merits of a language, but of the nature of the software itself, the goals of the software and even how the software will be developed and deployed. The perfect example of this can be found in the way a relatively unknown service called OwnCloud was coded. It’s an open source project aimed at giving people control over their own data. The software has apps for cloud storage, calendar, music streaming, photo storage and more. It can also sync local files to the cloud like Dropbox. Best of all you can host it where you want, so you control where your data goes.
The developers of OwnCloud choose PHP for the project despite there being better and easier languages available. They had some very good reasons for their choice of PHP despite its poor reputation. PHP is often supported by even the cheapest of hosting provides, and in the cheapest of packages. This is great given OwnCloud’s goals of reaching a wide audience. It’s also great at attracting developers, since it is a popular language known by many developers, and easy to learn for others.
Just like the iPhone is a bad app platform if you want to reach Indian farmers, sometimes technical decisions need a non-technical context. For a software aiming for popularity it’s important to look at the lowest common denominator; in OwnCloud’s case it was PHP. Choosing Ruby or Python or even Node would be antithetical to the goals of the software.
The key is in finding the best language for the job. In some cases it's chosen for you – or strongly suggested – as is the case with Java for Android, or Objective-C / Swift for iOS. In other cases it is about the restrictions of the target environment, for instance embedded systems programming is often done in C and Assembly. For web development, there is little stopping you from using C / C++, but that’s usually a bad idea, you’d be better off with Python, Ruby, JavaScript or even PHP and Java. For scientific computing, you’ll probably want MATLAB, R, or Python; here MATLAB and R were designed for this purpose, but Python is useful because of the plethora of scientific computing packages available for it. In Facebook’s case they started with PHP, and once they were in too far, rather than recode everything, they decided to improve the PHP ecosystem with a PHP compiler, and now a new language called Hack based on PHP.
Through this article we aim to give you a brief introduction to most of the hottest programming languages of today. Below we have featured detailed guides on both old and entrenched languages such as C, C++ and Java, and also newcomers such as Rust and Swift. We have languages covering most of the popular paradigms listed so far. For each language we will explore how it came to be, its strengths and significance, popular and common tools for the language, and we mention a few places you can go to learn more about them. For each language we also include small code samples, one of a regular ‘Hello World’ program, and another of a simple insertion sort algorithm where ever possible, so you can have a richer taste of the language.
So with that in mind, what do we expect you to do with all the programming languages covered in this article? Explore them all of course! It is important to not tie oneself to a single paradigm, functional or imperative, static or dynamic, interpreted or compiled. They all have strengths and weaknesses that make them shine in their own domain. Fun fact: there is no such thing as an interpreted language or a compiled language; whether a language is interpreted or compiled is dependent on the nature of its implementation. It is quite possible to compile Python or Ruby, and also quite possible to interpret C / C++
Having a preference is fine, but being flexible is more important. No matter your feelings about a given language, it might have strengths that make it most suitable for the software you are developing, even if that strength is merely its popularity. On that note, let's give you a quick intro to the hottest programming languages of today so that you can make an assessment for yourself:
Getting started with coding | Getting into programming world was never so easy but the humongous scale of the Internet enables you to do so. | |
Everything you need to know to get started with Assembly | Assembly is the closest you’ll ever come to actually “talking” to a computer. | |
Everything you need to know to get started with C | No language can claim to have had as much of an impact on computing as C has since its inception. | |
Everything you need to know to get started with C# | C# was developed with the aim of creating a language that suited just about every development need. | |
Everything you need to know to get started with C++ | A language allowing higher level abstraction but still close enough to the hardware is what C++ aimed to be. | |
Everything you need to know to get started with D | Find out why Facebook uses copious amounts of D to code some of its key features. | |
Everything you need to know to get started with Processing | Processing is a programming language that’s visually delightful to work with. | |
Everything you need to know to get started with Erlang | Erlang is a programming language built for distributed systems from the ground up. Scalable, robust that’s Erlang for you. | |
Everything you need to know to get started with Haskell | We take a look at one of the most popular functional languages out there, Haskell. | |
Everything you need to know to get started with Java | The language that truly propagated the era of “write once and run anywhere”. | |
Everything you need to know to get started with Javascript | If you are interested in Web Development, JavaScript is one of the languages you must learn. | |
Everything you need to know to get started with PHP | The power behind the world’s most powerful websites. | |
Everything you need to know to get started with Python | Python is probably one of the best languages to start with if you are new to programming and it continues to be useful later as well. | |
Everything you need to know to get started with R | Everything you need to know about the R programming language. | |
Everything you need to know to get started with Ruby | Ruby is a language that takes the term object-oriented very seriously and was built from the ground up to be object-oriented. | |
Rust is very much in development, but if things go well it will have a bright future. | ||
Everything you need to know to get started with Swift | An alternative language to develop iOS and OS X applications removes the C(omplexity) from Objective-C. |