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.
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.
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++!
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.
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.
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.
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.
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.
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.
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.
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#.
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?