我来自科学生物学背景,我们也经常使用Python。
现在,我开始进行Web开发,我一直发现自己想知道为什么JavaScript是Web上主要的客户端语言。
JavaScript的优势是历史事故还是其他原因?另外,我很好奇是否将Python集成到客户端脚本中是否有障碍?
vote to close
如果您觉得这是题外话,可以这样做。如果其他人也有同样的感觉,他们或主持人将跟随您。
我来自科学生物学背景,我们也经常使用Python。
现在,我开始进行Web开发,我一直发现自己想知道为什么JavaScript是Web上主要的客户端语言。
JavaScript的优势是历史事故还是其他原因?另外,我很好奇是否将Python集成到客户端脚本中是否有障碍?
vote to close
如果您觉得这是题外话,可以这样做。如果其他人也有同样的感觉,他们或主持人将跟随您。
Answers:
JavaScript是在流行的Web浏览器中提供的第一种脚本语言,因此几乎是通用的。作为所有流行浏览器中唯一可用的编程语言,别无选择,只能将其作为主要的客户端编程语言。
Internet Explorer以允许可插入脚本引擎的方式实现了JavaScript(VBScript和JScript随附)。如果您愿意(像我一样)用PerlScript或PythonScript编写代码,则可以,但是所有客户端都必须安装该脚本语言,并且他们必须使用IE。您可以为内部项目执行此操作,但是它不可能在Internet上运行。
JavaScript最初是由Brendan Eich创建的。它最初于1995年9月随Netscape Navigator 2.0的Beta版一起发布为LiveScript,但在1995年12月与Sun Microsystems联合宣布更名为JavaScript。直到后来(1996年),JavaScript才提交给Ecma International,并最终成为标准化的ECMAScript。
其当前的市场主导地位很大程度上是由于历史惯性。
不确定,但这是一种轻量级的客户端脚本语言。我认为它的起源在于早期的Netscape浏览器(尽管我可能错了)。确实,即使它与java无关,它的名称在发行前也已更改为包含单词“ java”。这是当时流行的一种快速策略。
我相信这与历史有很大关系。
但是我也确信我不希望网站能够在我的浏览器上运行python等全功能的编程语言。安全隐患会使我远离任何此类站点(否则,我必须非常确定浏览器沙箱是不透气的)。
“ JavaScript的优势是历史事故还是其他?”
我个人认为,JS的成功与设计一样多,并且将继续不愿意承认,而不仅仅是偶然的事故,或者仅仅是因为它是操场上的第一个孩子。
尽管布伦丹·艾希(Brendan Eich)的名字是为了吸引Java开发人员,并且像Java的基于C的语法一样吸引了Java开发人员,但它还是www历史上最糟糕的决定之一,该决定主要取材于Scheme的实际语言机制灵感,这是Java开发人员似乎根本不喜欢的东西(我觉得这很有趣)。
JavaScript对OOP使用高度灵活的/粒状原型继承,它具有闭包,类型为100%动态,函数本身是一流的,因此它们像任何其他对象或数据类型一样可以被传递,并可以在不同的上下文中重复使用,甚至快速地应用于对象,就好像它们从一开始就被声明为实际对象成员一样。实际上,用于需要标准化大量专有垃圾或处理高度非线性UI问题的事件驱动体系结构的想法令人大跌眼镜。
在网络曙光的尽头,这是唯一一种通过实际的浏览器大战认真完成浏览器标准化任务的语言,在这种浏览器大战中,Netscape和IE试图故意做不同的事情,随后的10多年浏览器休战IE所做的事情有所不同,因为MS懒惰并根深蒂固地陷入了一些愚蠢的反竞争做法,导致浏览器停滞不前,如今,浏览器终于开始就HTML的同一通用规范达成共识, IE的CSS和DOM API仅比最新的开发落后2-3年,而不是10年,这是由于Google和Mozilla淘汰了JIT编译器,使IE的性能数字看起来如此可怜,MS最终被羞耻地适当改造了该死的浏览器。IE9是第一个真正将DOM API支持严重升级到Netscape在2000ish支持的级别的服务器。
JS以Java Applets和Adobe的Flash ActionScript形式出现了竞争。在认真的竞争者方面就此。MS试图推动VB,但失败了,因为...好吧... VB。另外,专有。实际上,Flash网站的数量比大多数人想象的要多。您只是无法通过搜索引擎找到愚蠢的东西。小程序做了自己的事,这很丑。真丑。JS是唯一真正解决由多个人在不同浏览器环境中工作的语言,这些人不同意谁在设置他们应该匹配的规范。
近年来,JS已经扩展到更广泛的应用领域。如果您确实想编写一个应用程序并使它能够在所有应用程序上使用,则它+ Web技术实际上是当前唯一可行的选择,它与其他Web技术相结合,可以在移动方面彻底解决所有其他解决方案。
因此,不,是的,我是一个超级粉丝,但我认为它不会在客户端意外破坏所有其他竞争者,而不是现在它在浏览器之外大受欢迎。在JS之前,没有很多不是主要是学术性的类似于Scheme的语言。这给了JS一些强大的优势,并且客户端的独特需求使这些优势逐渐变得清晰起来。