灵感来自 这个问题.

我经常看到人们将 JavaScript 称为低级语言,尤其是在 GWT 和类似工具包的用户中。

我的问题是:为什么?如果您使用这些工具包之一,您就会失去一些使 JavaScript 非常适合编程的功能:函数如对象、动态类型等。尤其是与 jQuery 或 Prototype 等流行框架之一结合使用时。

这就像调用 C++ 低级一样,因为标准库比 Java API 小。我不是 C++ 程序员,但我非常怀疑每个 C++ 程序员都会编写自己的 GUI 和网络库。

有帮助吗?

解决方案

它是一种高级语言,因为它具有灵活性(作为对象的函数等)

但是任何通常被编译成的语言都可以被认为是低级语言,因为它是编译的目标,并且 现在有很多语言可以编译成JS 因为它作为浏览器的 DOM 控制语言的独特作用。

可以编译为 JS 的语言(或其子集)包括:

  • 爪哇
  • C#
  • 哈克西
  • Objective-J
  • 红宝石
  • Python

其他提示

回答一个问题,说“为什么有时会被称为X ......”用“它不是X”是完全侧面的问题,不是吗?

对很多人来说,“低级别”和“高级别”是灵活的,抽象的想法,在使用不同的系统时应用不同。对于那些并非过去的人(对于某些人来说,没有现代的低级语言),语言的高度或低级通常是指与目标机器的接近程度。是。这包括虚拟机,其中浏览器现在是几天。对于那些在基础硬件上为asm而烦恼的人们感到抱歉。

当您将浏览器视为虚拟机时,javascript与您获得的(假)硬件一样接近。这是许多人称之为“低级别”的观点。有。我认为这是一个毫无意义的区别,人们不应该被挂在低点和高点上。

"低"这里的句子与“第一次世界大战中遭受的伤亡人数低”句子中的含义相同。和“低脂肪冰淇淋的卡路里含量低”。当有明显的比较点时,这是有道理的,但是脱离背景,这简直荒谬。

很多人都这么说,因为JavaScript提供的对象和结构就像你能得到的一样简单。要开发任何类型的实际功能,您必须使用外部库。低水平是一种不好的方式,因为它已经具有计算机科学的意义。更好的说法可能是它没有内置库。

将它与Java进行比较,实际语言实际上并没有做很多事情。尝试在没有ArrayList的情况下创建数组,或者在没有IO库的情况下访问文件系统。大多数语言不仅仅是基础知识,它们还带有这些额外的功能。

使用JavaScript,我们获得的唯一真正的力量来自浏览器引入的API,而不是语言的一部分。浏览器提供了DOM操作和Ajax等功能。

总结所有这些可能会更好地说,使用像Java这样的语言,您可以开始做一些认真的工作而无需下载第三方库,但是使用JavaScript,您必须下载库或写一个属于自己的库。

我不认为javascript是一种低级语言。它提供了许多功能和用户体验助推器。也许其他人可能只是因为用户可以在他们的浏览器选项中将其关闭,但它是一种非常强大的语言,几乎可以在几乎所有类型的浏览器上运行Web ...

不是,它可能与普通浏览器编程中的低级相同,但它与Scheme或Python等功能语言相同。

我认为缺少Javascript缺少名称空间或包装而没有线程

与GWT和类似的工具包相比,它是低级别的,但在较大的方案中它不是低级语言。它提供的功能非常高级:闭包,动态类型和原型继承只是其高级功能的几个例子。

许多更喜欢编写 java 来生成 javascript 而不是编写 javascript 的人认为这是低水平的(即他们公平或不公平地不喜欢它)。现在很多人抱怨 java,但尽管缺乏静态类型检查,大多数人可能会认为 ruby​​ 和 python 在大多数情况下更容易编写(java 是一种相当简单的静态语言 - 如果没有大型构建,很难很好地设计) -在功能集中然后是简单的动态语言)。

与 java 相比,很少有人会认为 python 或 ruby​​ 是低级的,如果人们被迫以 python 或 ruby​​ 虚拟机为目标,很难想象 java 到 python/ruby 的编译器会像 gwt 一样流行。

最后,JavaScript 有一个图像问题(人们有时认为语言变得越来越困难,因为它们变得更底层,反之亦然)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top