9th
Is JavaScript the “assembly language of the 21st Century”? This seems to be the most frequent argument among those who think JavaScript needs to be wrapped in Python, Java, Objective-J, etc.
This analogy, in my view, totally misses the point of high-level languages and why people use them.
Developers initially moved to C from assembly because it freed them from the details of managing individual registers, a call stack, memory heap, and procedure glue code.
Today many developers are moving from C/C++ to even higher level languages like Python, Ruby and Java. These free you from even more details like memory management, static typing, and object messaging.
JavaScript, on the other hand, is a high level language. It has garbage collection, lambda functions, dynamic typing, object messages, and nearly every other feature you would expect in a modern high-level language.
When you wrap JavaScript in another high-level language, you don’t free yourself from managing low-level details; you just exchange one abstraction for another. You pay the cost of two high-level languages without gaining any benefits for your final product.
Does this mean JavaScript is perfect? Not at all. It is possible to add a meaningful abstraction beyond a high-level dynamic language like JS. It’s called an interface builder or UI designer. Every major desktop platform has one and its about time the web get a good one also.
Said designer would, ideally, boil down to JavaScript or something similar so that it’s easy to augment with your own views.
But that’s just my opinion.