为什么JavaScript有时被视为低级语言?

时间:2009-07-30 20:37:14

标签: javascript definition low-level

this question的启发。

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

我的问题是:为什么?如果您使用其中一个工具包,那么您将从一些使JavaScript非常适合编程的功能中脱颖而出:作为对象的功能,动态类型等。特别是当与一个流行的框架(如jQuery或Prototype)结合使用时

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

8 个答案:

答案 0 :(得分:12)

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

但是,任何通常编译的东西都可以被认为是一种低级语言,因为它是编译的目标,而there are many languages that can now be compiled to JS因为它作为浏览器的DOM控制语言的独特作用。

可以编译为JS的语言(或它们的子集):

  • 爪哇
  • C#
  • HAXE
  • 目的-J
  • 红宝石
  • 的Python

答案 1 :(得分:3)

回答一个问题,说“为什么有时会被称为X ......”并且“它不是X”完全是一边踩着问题,不是吗?

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

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

答案 2 :(得分:2)

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

答案 3 :(得分:2)

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

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

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

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

答案 4 :(得分:1)

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

答案 5 :(得分:1)

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

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

答案 6 :(得分:0)

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

答案 7 :(得分:0)

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

与java相比,很少有人会将python或ruby称为低级别,如果人们被迫瞄准python或ruby vm,很难想象java to python / ruby​​编译器会像gwt一样受欢迎。

在关闭时,javascript会出现图像问题(人们有时会认为语言变得越来越困难,因为它们变得越来越低,反之亦然)。