Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why is JavaScript sometimes viewed as a low level language?

Inspired by this question.

I commonly see people referring to JavaScript as a low level language, especially among users of GWT and similar toolkits.

My question is: why? If you use one of those toolkits, you're cutting yourself from some of the features that make JavaScript so nice to program in: functions as objects, dynamic typing, etc. Especially when combined with one of the popular frameworks such as jQuery or Prototype.

It's like calling C++ low level because the standard library is smaller than the Java API. I'm not a C++ programmer, but I highly doubt every C++ programmer writes their own GUI and networking libraries.

like image 271
Macha Avatar asked Nov 28 '22 05:11

Macha


2 Answers

It is a high-level language, given its flexibility (functions as objects, etc.)

But anything that is commonly compiled-to can be considered a low-level language simply because it's a target for compilation, and there are many languages that can now be compiled to JS because of its unique role as the browser's DOM-controlling language.

Among the languages (or subsets of them) that can be compiled to JS:

  • Java
  • C#
  • Haxe
  • Objective-J
  • Ruby
  • Python
like image 51
Nosredna Avatar answered Dec 09 '22 21:12

Nosredna


Answering a question that says "why is something sometimes called X..." with "it's not X" is completely side stepping the question, isn't it?

To many people, "low-level" and "high-level" are flexible, abstract ideas that apply differently when working with different systems. To people that are not all hung up on the past (there is no such thing as a modern low-level language to some people) the high-ness or low-ness of a language will commonly refer to how close to the target machine it is. This includes virtual machines, of which a browser is now days. Sorry to all the guys who pine for asm on base hardware.

When you look at the browser as a virtual machine, javascript is as close to the (fake) hardware as you get. That is the viewpoint that many who call javascript "low-level" have. I think it's a pointless distinction to make and people shouldn't get hung up on what is low and what is high.

like image 43
neorab Avatar answered Dec 09 '22 21:12

neorab