受这个问题启发。
我经常看到人们将JavaScript称为低级语言,特别是GWT等工具包的用户。
我的问题是:为什么?如果你使用其中一个工具包,你就削弱了JavaScript编程中一些很好的特性:函数作为对象、动态类型等。特别是当它与jQuery或Prototype等流行框架结合使用时。
这就像称C++为低级语言,因为标准库比Java API小。我不是C++程序员,但我非常怀疑每个C++程序员都会编写自己的GUI和网络库。
受这个问题启发。
我经常看到人们将JavaScript称为低级语言,特别是GWT等工具包的用户。
我的问题是:为什么?如果你使用其中一个工具包,你就削弱了JavaScript编程中一些很好的特性:函数作为对象、动态类型等。特别是当它与jQuery或Prototype等流行框架结合使用时。
这就像称C++为低级语言,因为标准库比Java API小。我不是C++程序员,但我非常怀疑每个C++程序员都会编写自己的GUI和网络库。
它是一种高级语言,因其灵活性(例如函数作为对象等)而得名。
但是,任何通常编译的内容都可以被视为低级语言,因为它是编译的目标,由于JS在浏览器的DOM控制语言中具有独特的角色,现在有许多语言可以编译为JS。
可以编译为JS的语言(或其子集)包括:
这里的“Low”与“第一次世界大战中遭受的伤亡人数很少”以及“低脂冰淇淋热量较低”的句子中的意思相同。当有一个明显的比较点时,它是有意义的,但是在没有上下文的情况下,它只是荒谬的。
我不认为JavaScript是一种低级语言。它提供了许多功能和用户体验增强器。也许其他人之所以认为它是低级语言,只是因为用户可以在浏览器选项中关闭它,但实际上它是一种非常强大的语言,在几乎所有类型的浏览器上都可以运行网络...
这并不是低级的浏览器编程,它与Scheme或Python等函数式语言相当。
我认为JavaScript的主要缺点是缺乏命名空间或包装和没有线程。
相比于GWT和类似的工具包,它是低级别的,但在更大的范围内来看,它并不是一种低级语言。它提供的功能非常高级:闭包、动态类型和原型继承只是其高级功能的几个例子。
许多人认为它是低级的,他们更喜欢编写Java来生成JavaScript,而不是直接编写JavaScript(即使他们可能不公正地厌恶它)。现在很多人抱怨Java,但尽管缺乏静态类型检查,大多数人可能会认为Ruby和Python在大多数情况下更容易编写(Java是一种相当简单的静态语言-没有大型内置功能集,设计起来要困难得多,而简单的动态语言则相对简单)。
与Java相比,很少有人会将Python或Ruby称为低级语言,如果人们被迫针对Python或Ruby虚拟机进行开发,很难想象Java到Python/Ruby编译器会像GWT一样受欢迎。
总之,JavaScript存在形象问题(有时人们认为随着语言变得更低级或更高级,其难度也会相应增加或减少)。