关于 JavaScript 仍然存在很多争议,大多是因为它的名称,人们以为它是继承于 Java 的一门脚本语言。那么,JavaScript 到底是什么呢?它是一门脚本语言还是编程语言?为何每个人都在用它?它是如何优于或差于其他编程语言的?
读完这篇博客,你将能很好的理解 JavaScript 的由来,以及在技术讨论中不会感觉搭不上话。
曾几何时,互联网还刚刚起步,那个时候急需浏览器访问网页,而在这方面的 Mosaic 是领头羊。同时 Mosaic 也是第一个能在内嵌文字中显示图片(而不是在新窗口中显示图片)的浏览器,这在那时是相当牛逼,相当酷的!与此同时,几个家伙想想为任天堂创建一个在线游戏网络,并从 Mosaic 公司挖了几位工程师,但该工程最终延期。乐观的他们决定以正确方式使用资源,那就是构建最好的网页浏览器!他们将该公司命名为 Mosiac CommunicaTIon,产品于 1994 年发布,命名为 Mosaic Netscape。他们从 NCSA Mosaic 挖了大量员工后,将公司和产品重命名,但不久由于版权问题,他们开始叫做 Netscape Navigator,但内部依然叫做 Mozilla —— Mosiac Killer。
Netscape Navigator 取得了巨大成功,在发布的 4 个月里占据了 75% 的浏览器市场,短期内成为了默认浏览器。好景不长,很快他们面临巨头公司微软的竞争,所以他们选择和另一家巨头公司 Sun 合作!但事情并没有想预期中一样,他们创造了一种 HTML 的胶水脚本语言。这种语言可直接在网页中编写,易于 Web 设计师和兼职程序员使用。这种语言以 Mocha 的名称为开发,官方称作 LiveScript,但于 1995 年 12 月被重新命名为 JavaScript。通过现有热门语言的名称可以带来一定威望,但同时也让人对名称感到困惑。
在 Netscape Navigator(NN) 和 Internet Explorer (IE) 之间持续了相当长时间的浏览器大战。1997 年,在 IE4 浏览器发布且微软在旧金山开了一个通宵晚会后,微软这些家伙们在网景公司前的草坪上设置了一个 10 英尺高的字母“e”的 logo,上面附签着:”From the IE team … We Love You“,第二天一早,网景公司的人都到了办公室后,他们看到了这个巨大的 logo 并且他们毫不犹豫的把它打倒在地并且在上面放置了 Mozilla 基金会的恐龙吉祥物,上面写着带有当时市场占有率的标志 “Netscape 72, Microsoft 18”。
但从那开始,网景公司开始走下坡路因为他们的收入全部来自于浏览器,而微软开始提供免费的 IE 浏览器。此外,微软 Windows 系统在桌面操作系统上的市场份额超过 90%。微软将 IE 浏览器和 Windows 操作系统进行捆绑销售,因为用户把 IE 浏览器作为默认浏览器,所以微软很容易的占据了市场份额。网景公司无法做到这点以至于最终只能出售且 IE 浏览器以 96% 的份额统治了互联网。
JavaScript 在 ECMA InternaTIonal 的手中安全地存活了下来,并将其写进了标准规范中。微软也想要一个类似的 IE 脚本,但不希望与 Sun Microsystems 就商标问题进行交易,因此他们称其实现为 JScript。因此开发者不得不努力让他们的网站在所有浏览器中都能正常运行,而 IE 在当时被广泛使用,所以 JavaScript 开始成为跨平台和标准驱动的网络的障碍之一。
随着时间的推移,很明显微软无意在 Internet Explorer 中合作或实现适当的 JavaScript。后来,雅虎、微软、谷歌和其他一些组织聚在一起,组成了他们自己的小组委员会,设计了一个不那么雄心勃勃的 ECMAScript 更新(和 JavaScript 一样)。有一天,一个叫 James 的人创造了“Ajax”这个术语,它可以让你在后台加载数据,而不必重新加载整个页面。这是互联网历史上的一场革命,从那时起,每个人都对 JavaScript 疯狂。这使得综合框架和库的急剧增加,改进了 JavaScript 编程实践,以及在 Web 浏览器之外增加了 JavaScript 的使用。从那以后,JavaScript 一直在火热发展着。
几年后一个名叫 Ryan 的高手把 JavaScript 提升了一个层次。通常只能用于客户端脚本的 JavaScript 现在也可用于编写服务器端代码。不可思议!这就是 nodejs 的诞生,几乎在同一时间谷歌推出了基于 他们创造的 V8 引擎的 Chromium 项目,V8 不同于以往传统的技术,例如解释字节码或将整个程序编译为机器码并从文件系统执行。而是在执行 JavaScript 代码前将代码编译为机器码。这就产生了一个全新的开发者社区,他们现在可以只需要使用 JavaScript 就可以完成全栈开发。
有些人取笑 JavsScript 全栈开发人员这个说法,认为 JavsScript 不像其他语言那样复杂。有些人还有偏见,但是当 TypeScript 引入了 OOP(面向对象)编程后,其他语言能做而 JavaScript 不能做到的已经很少了。JavaScript 历史是伟大的,前途是光明的。如果这引发了你学习 JavaScript 的兴趣,你将扩大你对世界的认知。
技术专区
- AM335x uboot spl分析
- JavaScript 是脚本还是编程语言?看了这文章就懂了
- 浅谈SMOTE算法 如何利用Python解决非平衡数据问题
- 关于linux spi驱动的那些事
- 网络爬虫教程(1):音乐歌单编写