3 ms·
By that logic, Ruby and Python are just as doomed because they're ultimately just elaborate abstractions on top of C (or at least their reference implementation
by chc 15y ago
By that logic, Ruby and Python are just as doomed because they're ultimately just elaborate abstractions on top of C (or at least their reference implementations are). The implementation language and output target of a programming language are not material to the language itself. C targets a wide array of machine codes, but you'd be remiss in saying it's "just an abstraction on top of x86," and thus doomed to fail. Likewise, Java can target JVM bytecode or Dalvik, but it is not "just an abstraction" on top of either of those. Clojure can target a dizzying array of output languages — JVM, CLR, JavaScript, Scheme, Lua, Python…
It just boggles my mind that because a language compiles to JavaScript, it's "just an abstraction on top of JavaScript" or "just sugar" or whatever. Like if you took the same language with the same semantics but didn't target JavaScript as your object code, the language would become more legitimate. How is that in any way a useful view of the world? Is Clojure also just an abstraction on top of JavaScript because it can target JavaScript?
- ma2rten 15y agoI would go so far to say that any programming language is an abstraction over another language and/or hardware instructions. Also any API is an abstraction over another API and/or hardware instructions. EDIT: I realized that technically my first statement is not correct: Any Turing complete language can be language can be compiled to any other Turning complete programming language. So it not an abstraction, but equivalent.