This question comes up all the time and to be honest there is no definite answer to this question. To be able to point out in a direction for anyone who is asking “Which programming language should I learn?” , “Which one is the best programming language?” or so one has to understand the types of programming languages.
Programming languages are divided into many categories but the one that always clarifies their capabilities is the programming language level categorization. So, programming languages are divided into Low, Medium, High and Very High levels. Nowadays it is not uncommon to hear terms like Super High, Ultra High etc. for programming languages which are even more high level than very high level programming languages but there is no such a thing in the books really 🙂
So what do they mean by level? Well to put it simply, it means how easy it is for us to understand it. Programming languages with higher levels are easier to understand and obviously low levels are more hard to grasp. Also, the lower the level of a programming language, the more powerful it is. I’ll tell you this though, don’t be deceived by the word “Powerful” because it is highly misleading in this context and if you continue reading you’ll know why.
I’m going to give you some examples and make it clearer for you so that you can decide for yourself which programming language is the best for you, and yes the correct version of the question in the title of this article is in fact “Which programming language is the best for me and my needs?”
Low Level Programming Languages
Examples: Assembly and Machine Language
Pros: You can do anything with this type of languages, if you are familiar enough with them.
Cons: It would take a great deal of effort to even do the simplest possible things because you have to write a lot of hard-to-understand codes.
Intermediate Level Programming Languages
Examples: C/C++
Pros: You can do many things with this type of languages because in most cases the operating systems are written using these types of languages. They are very well documented and they are almost as much easy to understand as High Level programming languages. Also there is a tremendous amount of resources for them.
Cons: It is not as easy to learn as High level programming languages. Also as time passes and processors are becoming faster the investment in tools and frameworks for these types of languages become lower and lower.
High Level Programming Languages
Examples: C#, Objective C, Java
Pros: You can do many things with this type of languages and they are very well documented and they are easy to understand.
Cons: It would be difficult to do anything other than the capabilities provided by the programming language and its framework.
Very High Level Programming Languages
Examples: Scripting languages (Java Script), Macros, MATLAB
Pros: They are very easy to understand and learn. In fact in some of them you don’t even do programming in the sense that you do in lower levels but you just write the needed tasks with very simple codes.
Cons: Nothing outside their limited range of capabilities can be achieved using these programming languages.
So that’s it. In case you’re wondering, I am using C++ (with Qt) 🙂 But I’m not recommending it of course, you have to choose it according to your needs.
Also I’d recommend reading these articles if you’re interested:
https://en.wikipedia.org/wiki/Low-level_programming_language
https://en.wikipedia.org/wiki/Intermediate_language
https://en.wikipedia.org/wiki/High-level_programming_language
https://en.wikipedia.org/wiki/Very_high-level_programming_language