Most important programming languages

This short guide tries to be objective - but excludes Objective-C!

There are many attempts to identify important programming languages. There are even more blog posts and articles about the perfect language to start programming. Recently a lot of lists have been posted, with languages that could be extinct soon. Personally, I believe that once some code has been written in a certain language, that language will never die. It will probably get out-of-fashion, or code will eventually be rewritten in another language, but it will never truly die. A written word may be forgotten, but it won't disappear.

Similar arguments are possible for the other attempts. What language might be important is a matter of taste defined by personal preference, a company's (IT) strategy or available libraries and tools. Personal preference and learning capabilities, as well as a set of personal properties, determine what languages (if any) are good starting points into programming. There is no silver bullet. Nevertheless, while languages that are easier to learn than others exist, there is not a single language that fits for everyone.

So what am I trying to write up here? Well, I think this might be another attempt for listing the currently most important languages. But, this is far from completeness and every choice must be justified. If I exclude a language (and of course I will exclude a lot of languages), I will try to find some arguments for that. But one important fact should be already noted at this point: Important should not be identified locally here, but globally. Locally, e.g., in someone's company, a language listed here might not be important at all, or the most important language of this particular company has been completely ignored in this post. However, globally this special company does not make a good representation of all companies.

Included

The order of the following languages has been chosen arbitrarily. Really, I did not introduce any metric to measure their importance. I only consider these six languages more important than others - at least at the moment.

C++

This is definitely the most important language. I will exclude C in this list. Reason? C is still more important than C++, but C++ allows programmers to fully use C (its not a strict subset, but close enough). So why not start using C++? Once we'll need some features of it, we already won. In the end C++ will give us amazing libraries, with low level access and great performance. The stack based programming model embraces robustness and effectiveness. There are practically no limits with C++!

Java

Okay, I am more of a C# fan-boy, but this not about fancy language features or elegant programming. This is about reality. The reality is that Java is taught at Universities for more than 20 years. People believe that true OOP is what Java gives us. Additionally Java offers a lot of great possibilities. There are many wonderful (open-source) projects building upon Java or the JVM (i.e. compiled to Java bytecode). The performance is acceptable and finally Java is catching up in features. A lot of companies invested quite a lot in Java, and even though I do not believe in cross-platform with Java (frankly, here is more where I see C# or JavaScript shining) it is definitely here to stay.

JavaScript

Another language starting with Java - but writing ECMAScript just does not feel right. Since most people are associating JavaScript with the web, the name seems to be pretty legit. The web is big. It is gigantic. Everyone accesses web resources all the time. Companies like Facebook or Google have enormous valuations, even if they do not produce any real value. In the end the web without client-side scripting would be a lot less fun. It would also probably be dead by now. Static web resources are nice, and the origin of the web, however, the whole many is in client-side scripting. Advertising, tracking, web applications, games, interactions, ... they are all based on JavaScript. With the release of V8 and the arrival of node.js JavaScript seems to be everywhere.

Python

Many consider Python the most important language. It is used to teach children how to program. It has a number of scientific libraries making it a great tool in academic research. It is easy to communicate with native libraries or offer a Python API for a native library. However, Python itself is interpreted and quite slow. Nevertheless, it seems to be among the most popular scripting languages and is also used a lot for (server-side) web-development. I don't like it much, but I respect it.

Swift

Here is, where Objective-C could be placed. There are a lot of reasons for putting Objective-C on top of Swift. The most important one could be: Objective-C is still the currency to program with on Apple systems. Any Swift application will still need to communicate with (at least some) APIs that are written in Objective-C. However, I believe that Apple really wants Swift to be successful. Therefore I assume that we will see a transformation of many existing APIs to be fully Swift-like. In the end it all will feel quite natural. The language gained already much momentum and I believe that many people switched from Objective-C to Swift. Not to forget the newcomers that have been attracted by its momentum. The only thing needed to really shine is platform-independence.

C#

Now I have to be biased. This is most probably the best language around. Why? The language has many outstanding features, is consistent and elegant to write. With the Mono framework cross-platform development is not only possible, it is also promoted. The CLR is well-performing and makes accessing native APIs possible. C# is well-placed on many locations, where it can shine. If one does not require the high performance of C++, but demands a familiar, but more structured, environment, that allows rapid prototyping, while encouraging structured, readable code, C# is the right choice. As an example: Blizzard (probably creator of the best games, from a code-quality perspective) uses C++ for its engine and C# for the tools used by these games. Also the tight integration into the Microsoft stack makes C# a crucial language for anything related to Windows.

Excluded

Now the hard part comes. Essentially everything that is not included is excluded (obviously). Nevertheless, the ones I will mention here have not been mentioned before (like Objective-C), but deserve to be mentioned in some way.

PHP

There is not much to say here. PHP always looked like a Perl for starters specialized on web development to me. However, the language matured. That process was not ideal, since the language was not designed for the upcoming purposes. I don't know how many web projects failed due to using PHP, or many realized at some point that a major rework had to be done. On the other side - that happened with other languages as well. PHP is still important, but I would prefer other languages and many companies are currently rethinking their strategy. I do not regret, however, having learned and used PHP for a long time. Coming from Perl it seemed like a good choice at that time.

Fortran

I don't know why I mention this. I could also name COBOL or others. All these languages have their area of expertise. Fortran is still very strong in numerical applications. Its really hard to beat Fortran there. However, most codes don't need to do that. And nowadays most codes (written in C++) are actually faster, since C++ might be a better choice for doing (maybe not even homogeneous) parallel computing. As a matter of fact libraries and language extensions get to be released on C/C++ first. Even though talking to the APIs is possible via Fortran, it might be a rather inflexible route.

Haskell

I could have written "functional languages". They are fun! I love F# and what the team behind F# at Microsoft Research has created. These languages do a lot of things right. For instance concurrency: We can only provide determinism in concurrent applications by using immutable types. Recursion is another topic. However, while all these concepts are nice in an academic concept, they rarely play a role in practice. Therefore I would exclude functional languages.

Visual Basic(.NET)

Alright. You got me on this one. I have no clue why, but anyone with good arguments other than "some code is still running somewhere, that has been written in VB.NET!" should convince me to favor VB.NET over C#. Yes, Microsoft is still releasing updates for both, however, it seems that C# is more discussed, more actively developed and has a far greater community. It is certainly not dying, but I would never regard it as important as C#.

Dart

I could have written "Go" or "Rust" or anything else that is a fancy GP system language here. I love what Google did with Dart. I hope that someday we will see Dart as an alternative to JavaScript. On the other side, it seems to be hopeless at the moment. Therefore I consider TypeScript as a transpiler equally important as Dart. Speaking of transpilers CoffeeScript is considered even more important ranked very high on GitHub. All these other languages are cool to play around but lack adoption or a real use-case. I can see why I would want to write TypeScript for tanspiling to JavaScript, but I also see why its optional. If it changes in the future, I could be on board.

Julia

Julia is worth an article on its own. I also want to include D in the discussion. These languages produce high-quality assembler output and have neat features. Julia is a mathematically driven language that combines features of MATLAB, C++ and Python. It is designed for parallelism and cloud computing. D on the other hand is more structured than C++ and contains great features. Its template system is even more advanced than the one embedded in C++, allowing template meta programming directly, i.e. encouraging it, with features like static_if (conditionals). I would love to use at least one of both languages, but who has the time?

Created . Last updated .

References

Sharing is caring!