After an email from Boris Zbarsky (Mozilla) of some months ago, I had to reconsider my personal knowledge of programming language levels. Actually, JavaScript is an higher-level programming language than C or C++, which are considered to be lower-level programming languages. There are many papers and articles available on the web that explain the existing differences between programming languages. As you know, being object-oriented is considered to be of an higher level, as explained in this lesson that states:
Object-oriented programming (OOP) is revolutionary concept that has changed the rules in computer program development. OOP is organized around objects rather than actions, data rather than logic. Historically, a program has been viewed as a logical procedure that takes input data, processes it, and produces output data. The programming challenge was seen as how to write the logic, not how to define the data. Object-oriented programming takes the view that what we really care about are the objects we want to manipulate rather than the logic required to manipulate them. Examples of objects range from human beings (described by name, address, and so forth) to buildings and floors (whose properties can be described and managed) down to the little widgets on your computer desktop (such as buttons and scroll bars).
Both JavaScript and C++ are object-oriented, but JavaScript is on a higher level of abstraction. Boris said that some popular methods of JavaScript frameworks are not easily reproducible in C++. We were talking about an hypothetical CSS selector that should select an element based on the presence of a given child element. I said, naively, that if JavaScript is able to do this, then also C++ should be able to do the same. He said that this kind of feature is very expensive in C++, because this language works on another level than JavaScript.
I was actually mixing up two distinct concepts: an high number of features and the language level itself. JavaScript has less features than C++, but it's considered to be on an higher level. Lesson learned. wink