文章


JavaScript:入门历史

由Gabriel Lebec
最后更新2019年3月12日

为初学者提供的Javascript历史信息图

JavaScript网络上最流行的语言是什么?课程的重点是什么Fullstack学院——但事情并不总是这样的。Fullstack学院教练加布里埃尔Lebec向我们讲述了这种语言的起源和成长过程,它现在为应用程序和机器人提供了动力,但它始于20多年前的网景和太阳微系统公司。研究完历史之后,请继续关注我们的JavaScript系列的第二部分,即为什么初学者可以从学习JavaScript中受益。

什么是JavaScript ?它从何而来?

JavaScript实际上是互联网的语言。它著名的起源通常被简化为“Brendan Eich在十天内为网景创建了JavaScript !”虽然这是真的,但这一点传说值得仔细研究。

programmer-with-old-computer

背景:浏览器变得智能

1993年,开发人员马克•安德森帮助伊利诺伊大学的国家超级计算应用中心推出了Mosaic:一个用户友好的图形化软件web浏览器.互联网正在从一个基于文本的业余爱好者的领域演变为主流计算机用户的多媒体世界。

安德森随后成立了私人的马赛克通信公司,并在1994年发布了一款名为马赛克导航的商业浏览器(在解决了一场诉讼后,该名称更名为Netscape)。网景航海家大获成功,网景的首次公开募股也创下了新纪录。

微软的回应是Internet Explorer,这是一个不祥的预兆。安德森知道,Navigator必须推出新功能才能保持主导地位;Web浏览器需要超越显示静态文档,而运行真正的交互式软件。

Java vs JavaScript(第一部分)

1995年,网景公司与微软的另一个竞争对手太阳微系统公司达成协议,后者正在首次推出一种主要的编程语言,Java.Java借用了C / c++的语法,但是编译后的Java字节码是可移植的——它可以在不同的操作系统上按原样运行。同时安装了Navigator和Java虚拟机的用户可以将Java程序作为独立的“小程序”执行,包含在网页中(但与网页分离)。

Java的封闭特性意味着仍然需要一种“脚本”语言来增强web页面——动画下拉菜单、验证表单条目等。由于Sun将Java定位为复杂嵌入式程序的专业选择,因此这种配套语言被设想为设计人员和页面作者的一种小型可接近的解决方案。最重要的是,它可以直接写入HTML文档中,并由Navigator浏览器本身进行解释。

就在1995年初的这个时候,Brendan Eich被网景公司签下合同,在一个极端的期限内设计这样一种语言。提供给Eich的要求,以及他实现这些要求的决定,最终将对网络的本质产生不成比例的巨大影响。

team-learning-javascript-coding-bootcamp

JavaScript是如何设计的

设计一门语言是一种挑战,也是一种机遇。编程语言可以用新的方式表达旧的思想,并普及替代的方法。

影响

可以读了计算机程序的结构与解释“,,是麻省理工学院里程碑式的教科书,以语言方案为特色,它将极简的功能集与惊人的功能和灵活性结合在一起——它用很少的资源做了很多事情。在Scheme中,过程可以处理和生成“普通”数据(数字、文本等),也可以处理和生成其他过程函数式编程

网景公司聘请Eich来实现“浏览器方案”,然后给了他一个自相矛盾的规定:他想出的任何东西都必须“看起来像Java”。Eich最终使用基于java的语法来表达基于scheme的功能,创建了一个快速的概念验证。然后,他继续在这个已经不太可能的组合中,融入了一种独特的风格面向对象编程(OOP)。

一个独特的语言

在面向对象编程中,数据和过程被封装在一起成为“对象”,这些对象通常是通过抽象类的层次结构定义的。Java是现有的最面向对象的语言之一,类的概念不可分割地贯穿始终。但是Java中的面向对象编程有一种Eich所避免的包罗万象和死板的风格。相反,他选择了一种独特的面向对象编程风格——动态和轻松原型继承系统灵感来自于语言自我.对象可以随意创建并链接到其他对象(称为原型)。这种原型继承向语言添加的语法相对较少,但能够模拟经典的或可选的继承模式。

这种新语言结合了:

  • Java的表面和控制结构
  • 来自Scheme和Self的核心功能和面向对象行为
  • 特点是极简主义,但灵活

Eich创建了一个满足需求的工具(“看起来像Java”、“小”、“可接近”),但其潜力可能比任何人预期的都要大。它在内部被称为Mocha,更名为LiveScript,最后——尽管它与java没有多少相似之处——被称为JavaScript。

为什么JavaScript如此流行?

JavaScript一开始并不受欢迎。Java开发人员将其视为非工程师的小实体—“UI胶水”与稀疏工具和“奇怪的”继承系统—设计人员和作者仍然在努力操作页面元素,如表单字段。

尽管存在这些问题,JavaScript还是迅速发展起来,新工具和网页功能的开发速度超过了实际Java小程序的交付速度。1996年,微软被迫将JavaScript支持反向工程到Internet Explorer的“JScript”中,但这种尝试并不完美,导致了JavaScript和JScript之间的各种不兼容。

新名称:ECMAScript

网景公司意识到,要想让一个互动的动态网页获得成功,JavaScript必须在不同浏览器之间保持一致,因此他们要求Ecma国际标准组织对该语言进行编码。1997年,该组织为“ECMAScript”(ES)(通常被称为JavaScript的语言)制定了平台无关的规范。

在接下来的十年里,ECMAScript经历了一系列的修订和衍生。ES2(1998)和ES3(1999)带来了许多重要的特性(例如“异常”,一种处理代码中错误的标准方法),继续着JavaScript从单纯的“脚本胶水”向成熟的应用程序语言的转变。

Java vs JavaScript(第二部分)

与此同时,Java小程序却日渐式微:

  • 用户不喜欢让Java虚拟机保持最新
  • 他们被Java的安全提示吓退了
  • 他们讨厌在访问某些页面时必须启动大型Java程序。

简而言之,JavaScript与web无缝集成,而Java则笨拙笨拙,常常与页面内容分离。出乎意料的是,Eich的小mashup并没有支持Sun的强大Java取代它。

JavaScript的进化

JS仍然缺乏一种“大”语言通常应该具备的某些特性,因此ECMAScript 4试图通过大量的补充来弥补这些不足:java风格的类和接口、带注释的静态类型、改进的作用域和变量类型等等。来自微软、Opera、雅虎的开发者!, Macromedia就JS应该朝什么方向发展展开了争论,而像Macromedia的ActionScript for Flash等衍生语言则增加了不确定性。ES4陷入了开发地狱,最终被放弃。

尽管路上有坎坷,但JS太根深蒂固,太有用了,不能走上越来越不相干的Java和Flash小程序的道路。2005年,杰西·詹姆斯·加勒特(Jesse James Garrett)通过普及AJAX引发了一场复兴,AJAX是一组技术,它使javascript驱动的网站感觉更像快速的原生应用程序。jQuery和MooTools等功能强大的新库将浏览器的不一致性抽象出来,使应用设计模式变得更容易。JS不仅成为了事实上的网络语言,而且还被用来构建桌面风格的产品,如Gmail和谷歌地图。

ES5(一个比倒霉的ES4更温和的更新,最初命名为ES3.1)于2009年发布,Ecma社区再次为ES6添加了一个新的JS特性的愿望清单。这导致了另一个漫长的共识过程,跨越了漫长的6年,并几乎使ECMAScript的规模翻了一番。

woman-learning-javascript-coding-bootcamp

常数通量

到2015年,JS已经成为web不可或缺的一部分,成为尖端浏览器应用程序的核心。开发团队使用一系列框架和技术来填补JavaScript功能的空白,负责Ecma标准化过程的委员会认识到,社区的发展速度超过了6年的发布周期所能满足的速度。需要一个新的系统。

新系统允许同时提出、研究和批准特性。Ecma每年都会发布被认为已经准备好的功能。ES6正式发布为ES2015,从那时起,ES2016和ES2017只提供了增量更改,并得到了浏览器供应商的持续支持。

谁使用JavaScript ?

有些人可能会说JavaScript“幸运比优秀好”。在正确的时间和地点开始,它已经成长为行业中使用最多的语言之一。事实上,2017年GitHub“Octoverse”报告将其列为使用最多的第一名,以惊人的230万次GitHub回购(是第二名Python的2.3倍),而NPM包注册表,一个可下载JS代码的主要来源,使其他语言的注册表相形见绌。

JavaScript的优点

然而,这种指数级增长并不仅仅是与网络整合的结果。从一开始,JavaScript就击败了Java、Flash和其他竞争对手,因为:

  • 它可以很快学会
  • 它使开发人员能够快速构建东西,
  • 它跑得快
  • 它有一个真正“好部分”的子集。

JS代码现在可以在手机应用程序、机器人、太空机构等中找到。

JavaScript的缺点

JS也有一些众所周知的缺点:

  • 娱乐式强迫惊喜,
  • 对一个合适的模块系统似乎无休止的等待
  • 像大多数语言一样,编写JS代码需要纪律和训练。
  • 无法控制较低级别的层(例如内存或线程)

但是社区已经通过一个充满活力的代码、文档和教育资源的生态系统积极地解决了这些问题。

JavaScript的可预见的未来看起来很光明。

请继续关注第二部分,即为什么初学者可以从学习JavaScript中受益。

了解更多并阅读Fullstack学院评论在课程hth华体会体育app苹果报告。检查Fullstack学院的网站。

关于作者

加布里埃尔小时候自学编程,然后在大学里学习数学和工作室艺术。在2014年进入Fullstack Academy之前,他曾做过几年的教师、医学研究员和自由网页设计师。Gabriel自2015年起担任Fullstack Academy的讲师。

相关的帖子


指南


咨询职业教练

没有技术背景的我能从事网络安全工作吗?

招生聚光灯


如何为炼金术做准备

关于炼金术师的录取,你需要知道什么!

课程关注的焦点


在DigitalCrafts学习数据分析

了解DigitalCrafts如何帮助新兵在数据分析领域启动职业生涯!