首页 > 国内新闻

从一无是处到逆袭翻红,JavaScript经历了什么

文章作者:来源:www.kuisparlay.com时间:2019-10-11



2019-09-19 01: 53: 31每日果粉

全文为3989字,预计学习时间为8分钟

匹诺曹正在等待生活。资料来源:Pixabay

如果在1999年进行预测,JavaScript将成为20年来世界上最受欢迎的语言之一,并且它并没有想象或发疯。

二十世纪初的JavaScript不仅不具备专业语言的功能,设计人员甚至没有将其视为一种严肃的编码工具。毕竟,Web应用程序开发人员早已习惯于使用基于applet嵌入式系统的成熟工具。

但是在1995年,网络浏览器公司Netscape具有远见,意识到他们需要为每个人提供一个更简单的选择。但是,情况很困难。与Microsoft的竞争非常激烈,与Sun Microsystems的战略伙伴关系也即将结束。时间很紧急。他们聘请了布伦丹艾希(Brendan Eich)在极为严格的时间表内创造了一种新语言。他在10天内完善了JavaScript的第一个版本,并及时添加了这个令人愉悦的浏览器:

Netscape2:JavaScript的首次出现

Eich真正想做的是创建一个由浏览器托管的学术编程语言版本,例如Scheme,但是Netscape的想法是不同的,即使它们不同,他们也希望使用类似Java的语言。 Java和JavaScript的名称是如此相似,以至于混淆了很多年。

根据市场订单,我想使其成为Java的低调版本。这只是一种愚蠢的底层语言,不是吗?仅Java的帮助。布伦丹艾希(Brendan Eich)

滚动按钮时代

在最初的五年中,JavaScript只是对不适合Java编程的人们的帮助。这些人包括外行,爱好者和没有时间从事复杂工作的人,包括网页设计师。新的熟练工人类别负责使Web用户界面看起来平滑并支持图形。他们想要比标签更精致,比旋转球的GIF图像更现代的东西。

在专业领域中,为用户界面创建胶水,将设计的网页放在一起是JavaScript的主要工作,并且每当您需要交互式按钮,弹出菜单和动态图像效果时都使用JavaScript。

谁想要一个翻转按钮?每个人都想要它。

翻转按钮大约在2000年

不久之前,JavaScript在世界上一些最不重要的工作中大量使用。每次鼠标通过时交换图像。

“开发人员将通过代码自动执行发光按钮,然后将代码与页面一起分发。”尽管这个想法看起来很疯狂,但每个人都一次又一次地做到这一点。 (CSS现在提供这种技术,使用样式设置和动画而不是预先生成的图像文件,这样更易于维护。)随着JavaScript的发展,很少有人会想到它。许多编码人员更喜欢使用服务器端编程语言,该语言可以根据命令生成正确的JavaScript。 JavaScript可以驱动应用程序中的业务逻辑的想法与尝试用Excel宏替换数据库存储一样荒谬。

沙盒囚犯

当今对JavaScript的负面评价通常是由于语言本身的局限性 OOP修补功能,安全性弱,DOM模型麻烦,==与===混淆等等,但是这些都不是JavaScript早期的编程工具。对原因保持乐观。毕竟,有很多“丑陋”的编程语言,但这是因为时间和地点的重要性。 (候选对象包括BASIC,COBOL,SQL和PHP。)正如网站占据着世界一样,JavaScript是唯一一种在所有浏览器中都具有本机支持的语言,而JavaScript无疑被时间和地点所占据。

JavaScript的真正限制是严格控制的环境,在该环境中,沙箱将代码保留在适当的位置。沙箱可将JavaScript与桌面环境隔离开来。例如,JavaScript代码无法直接访问文件系统,监视器或任何硬件。更严重的是,它切断了服务器上的所有JavaScript,例如存储客户列表和产品目录的数据库以及运行业务逻辑的服务器端代码。 JavaScript承受着独自生存的压力,自然会在页面上仅留下旋转按钮。

使用XMLHttpRequest对象打开管道

奇怪的是,Microsoft确实保存了JavaScript。当时,微软并不像今天。应该庆祝每个操作系统的开源开发。取而代之的是,它就像一个裸露关节的开源战斗机,以“拥抱,扩展和扑灭”的思想消耗了竞争对手。

就是这样正如全世界都对使用过渡按钮感到疯狂一样,Microsoft的团队正在研究一种方法,以使Outlook的前端更具响应性。他们一直在构建一个名为Outlook Web Access的产品,如下所示:

Outlook Web Access 2000

微软团队的目标是相对温和的,他们想要创建一种比在浏览器中运行更高效的电子邮件阅读器。最重要的是,他们不想每隔几秒钟刷新一次整个页面。相反,他们使用允许页面在后台静默检查新邮件的技术。这个目标似乎并不那么令人震惊,但请记住,当时还没有发明Gmail。实际上,整个公司只有几年的历史。

微软团队使用称为XMLHttpRequest的ActiveX组件创建了一个小型管道。 XMLHttpRequest的基本思想很简单。它为JavaScript代码提供了发出网络请求的方法。就像浏览器可以联系服务器并发出请求一样(例如,“嘿,请给我该页面!”),JavaScript代码可以使用XMLHttpRequest对象发出自己的请求(例如,“嘿,请给我发送信息”)另一个Some邮件”)。

突然,网页可以利用服务器的所有资源。如果我需要从数据库中提取数据怎么办?呼叫服务器以进行请求。如果我需要服务器执行计算,安全性测试和超级机密验证检查,该怎么办?同样,只需调用服务器。最重要的是,呼叫工作在后台进行,并且页面保持不变。

XMLHttpRequest不是没有怪异的。首先,它的名字很奇怪,大小写不一致,对于像JavaScript这样的区分大小写的语言来说,这可能令人头疼。其次,名称表示您的代码将发送和接收XML信息。实际上,信息几乎可以是任何纯文本,HTML块或序列化为JSON的JavaScript对象。但是也许最大的问题是XMLHttpRequest是用ActiveX生成的,这意味着它只能在Windows系统上运行,并且只能是IE浏览器。

这些都没有阻止它。在短短几年内,其他浏览器也提供了自己的XMLHttpRequest工具。代码中的对象是相同的,但是ActiveX没有问题。

尽管创建了XMLHttpRequest,但是Microsoft并没有在自己的Web开发中迅速利用它,并且他们不愿意在基于Web的公共电子邮件系统Hotmail中使用它。相反,他们等到Google使用XMLHttpRequest震惊在线开发社区时,首先是2004年的Gmail,然后是2005年的Google Maps。这是圣杯的真实体现:这是一个基于Web的程序,可以响应桌面应用程序而运行。

Google Maps 2005

走向现代化

XMLHttpRequest是更改JavaScript流程的关键因素,但是仍然存在一些拐点。

JavaScript语言已经冻结了多年,问题是市场领先的IE浏览器已在操作系统时间轴上升级。换句话说,它使用起来很慢。开发人员被迫编写代码,检查浏览器版本,然后尝试进行调整。

在2006年,开发人员发现了jQuery形式的解决方案。尽管jQuery在今天已经有些过时了,但是如果您想花时间来构建功能而不是解决浏览器兼容性问题,那么它是十年前的必备工具。

Google在2008年发布了新的JavaScript引擎V8。尽管jQuery首次为开发人员提供了广泛的兼容性,但V8的性能确实很棒。此外,由于V8引擎是一个独立的开源组件,因此其他项目也可以使用它。很久以后,这为诸如Node.js和Electron之类的创新打开了大门。

然后,在2008年,HTML的第一个工作草案出现了。它不涉及JavaScript本身,但是与新一轮的JavaScript API结合在一起。突然之间,开发人员有了用于存储本地数据,管理浏览器历史记录,使用音频和运行后台任务的工具,Web和桌面功能之间的差距再次缩小。

现代JavaScript

JavaScript的成功是否是其在浏览器中的特权地位的必然结果?还是只是fl幸,需要运气和完美的时机?

可以肯定的是, JavaScript被迫打开自己的路径。在他的一生中,JavaScript并不是人们最喜欢的,其他人则支持Java applet,然后是Flash,甚至是Silverlight。 JavaScript面对这些挑战者并击败了他们。

也许最公平的评估是JavaScript证明了每个开发人员都知道的东西。换句话说,新技术中最重要的因素是其覆盖范围。如果您的技术具有更高的覆盖率,则一开始不一定是最好的。您所需要的足够好。

JavaScript的未来将沿着快速分支的道路前进。现在,我们可以在服务器上运行JavaScript(感谢Node.js)并驱动桌面应用程序(感谢Node.js和Electron)。我们有一种非常相似的语言,例如将TypeScript编译为JavaScript,它使开发人员能够以合乎道德的方式为网页编写代码。将来,WebAssembly可能会完全打破语言限制,使开发人员可以使用JavaScript引擎来使用他们想要的任何高级语言。

现在该承认,尽管存在许多缺陷和不一致之处,但JavaScript确实很棒。 Brendan Eich将JavaScript放在Netscape Navigator中。我们将整个世界塞入浏览器,结果是一个现代化的网络。

押注JavaScript是正确的。布伦丹艾希(Brendan Eich)

发表评论喜欢

让我们分享AI学习与发展的干货

编制小组:李时珍,于树民

相关链接:

如果您需要转载,请在后台留言并遵循转载说明

全文为3989字,预计学习时间为8分钟

匹诺曹正在等待生活。资料来源:Pixabay

如果在1999年进行预测,JavaScript将成为20年来世界上最受欢迎的语言之一,并且它并没有想象或发疯。

二十世纪初的JavaScript不仅不具备专业语言的功能,设计人员甚至没有将其视为一种严肃的编码工具。毕竟,Web应用程序开发人员早已习惯于使用基于applet嵌入式系统的成熟工具。

但是在1995年,网络浏览器公司Netscape具有远见,意识到他们需要为每个人提供一个更简单的选择。但是,情况很困难。与Microsoft的竞争非常激烈,与Sun Microsystems的战略伙伴关系也即将结束。时间很紧急。他们聘请了布伦丹艾希(Brendan Eich)在极为严格的时间表内创造了一种新语言。他在10天内完善了JavaScript的第一个版本,并及时添加了这个令人愉悦的浏览器:

Netscape2:JavaScript的首次出现

Eich真正想做的是创建一个由浏览器托管的学术编程语言版本,例如Scheme,但是Netscape的想法是不同的,即使它们不同,他们也希望使用类似Java的语言。 Java和JavaScript的名称是如此相似,以至于混淆了很多年。

根据市场订单,我想使其成为Java的低调版本。这只是一种愚蠢的底层语言,不是吗?仅Java的帮助。布伦丹艾希(Brendan Eich)

滚动按钮时代

在最初的五年中,JavaScript只是对不适合Java编程的人们的帮助。这些人包括外行,爱好者和没有时间从事复杂工作的人,包括网页设计师。新的熟练工人类别负责使Web用户界面看起来平滑并支持图形。他们想要比标签更精致,比旋转球的GIF图像更现代的东西。

在专业领域中,为用户界面创建胶水,将设计的网页放在一起是JavaScript的主要工作,并且每当您需要交互式按钮,弹出菜单和动态图像效果时都使用JavaScript。

谁想要一个翻转按钮?每个人都想要它。

翻转按钮大约在2000年

不久之前,JavaScript在世界上一些最不重要的工作中大量使用。每次鼠标通过时交换图像。

“开发人员将通过代码自动执行发光按钮,然后将代码与页面一起分发。”尽管这个想法看起来很疯狂,但每个人都一次又一次地做到这一点。 (CSS现在提供这种技术,使用样式设置和动画而不是预先生成的图像文件,这样更易于维护。)随着JavaScript的发展,很少有人会想到它。许多编码人员更喜欢使用服务器端编程语言,该语言可以根据命令生成正确的JavaScript。 JavaScript可以驱动应用程序中的业务逻辑的想法与尝试用Excel宏替换数据库存储一样荒谬。

沙盒囚犯

如今,对JavaScript的负面评价通常是由于语言本身的局限性所致,例如 OOP修补功能,安全性较弱,DOM模型繁琐,===与====混淆等等,但是这些并不是为何JavaScript在早期没有被视为编程工具的原因。毕竟,有许多“丑陋”的编程语言,但这只是因为在正确的时间和地点才变得重要。 (候选对象包括BASIC,COBOL,SQL和PHP。)就像网站一样,JavaScript无疑是唯一在所有浏览器中都具有本机支持的语言。

JavaScript的真正限制是严格控制的环境,在该环境中,沙箱将代码保留在适当的位置。沙箱可将JavaScript与桌面环境隔离开来。例如,JavaScript代码无法直接访问文件系统,监视器或任何硬件。更严重的是,它切断了服务器上的所有JavaScript,例如存储客户列表和产品目录的数据库以及运行业务逻辑的服务器端代码。 JavaScript承受着独自生存的压力,自然会在页面上仅留下旋转按钮。

使用XMLHttpRequest对象打开管道

奇怪的是,Microsoft确实保存了JavaScript。当时,微软并不像今天。应该庆祝每个操作系统的开源开发。取而代之的是,它就像一个裸露关节的开源战斗机,以“拥抱,扩展和扑灭”的思想消耗了竞争对手。

就是这样正如全世界都对使用过渡按钮感到疯狂一样,Microsoft的团队正在研究一种方法,以使Outlook的前端更具响应性。他们一直在构建一个名为Outlook Web Access的产品,如下所示:

Outlook Web Access 2000

微软团队的目标是相对温和的,他们希望制造一种比在浏览器中运行更高效的电子邮件阅读器。最重要的是,他们不想每隔几秒钟刷新一次整个页面。相反,他们使用允许网页在后台静默检查新邮件的技术。这个目标似乎并不那么令人震惊,但请不要忘记当时还没有发明Gmail。实际上,整个Google公司只有几年的历史。

微软团队使用称为XMLHttpRequest的ActiveX组件创建了一个小型管道。 XMLHttpRequest的基本思想很简单。它为JavaScript代码提供了发出网络请求的方法。就像浏览器可以联系服务器并发出请求一样(例如,“嘿,请给我该页面!”),JavaScript代码可以使用XMLHttpRequest对象发出自己的请求(例如,“嘿,请给我发送信息”)另一个Some邮件”)。

突然,网页可以利用服务器的所有资源。如果我需要从数据库中提取数据怎么办?呼叫服务器以进行请求。如果我需要服务器执行计算,安全性测试和超级机密验证检查,该怎么办?同样,只需调用服务器。最重要的是,呼叫工作在后台进行,并且页面保持不变。

XMLHttpRequest不是没有怪异的。首先,它的名字很奇怪,大小写不一致,对于区分大小写的语言(例如JavaScript)来说,这可能令人头疼。其次,名称表示您的代码将发送和接收XML信息。实际上,信息几乎可以是任何纯文本,HTML块或序列化为JSON的JavaScript对象。但是也许最大的问题是XMLHttpRequest是用ActiveX生成的,这意味着它只能在Windows系统上运行,并且只能是IE浏览器。

这些都没有阻止它。在短短几年内,其他浏览器也提供了自己的XMLHttpRequest工具。代码中的对象是相同的,但是ActiveX没有问题。

尽管创建了XMLHttpRequest,但是Microsoft并没有在自己的Web开发中迅速利用它,并且他们不愿意在基于Web的公共电子邮件系统Hotmail中使用它。相反,他们等到Google使用XMLHttpRequest震惊在线开发社区时,首先是2004年的Gmail,然后是2005年的Google Maps。这是圣杯的真实体现:这是一个基于Web的程序,可以响应桌面应用程序而运行。

Google Maps 2005

走向现代化

XMLHttpRequest是更改JavaScript流程的关键因素,但是仍然存在一些拐点。

JavaScript语言已经冻结了多年,问题是市场领先的IE浏览器已在操作系统时间轴上升级。换句话说,它使用起来很慢。开发人员被迫编写代码,检查浏览器版本,然后尝试进行调整。

在2006年,开发人员发现了jQuery形式的解决方案。尽管jQuery在今天已经有些过时了,但是如果您想花时间来构建功能而不是解决浏览器兼容性问题,那么它是十年前的必备工具。

Google在2008年发布了新的JavaScript引擎V8。尽管jQuery首次为开发人员提供了广泛的兼容性,但V8的性能确实很棒。此外,由于V8引擎是一个独立的开源组件,因此其他项目也可以使用它。很久以后,这为诸如Node.js和Electron之类的创新打开了大门。

然后,在2008年,HTML的第一个工作草案出现了。它不涉及JavaScript本身,但是与新一轮的JavaScript API结合在一起。突然之间,开发人员有了用于存储本地数据,管理浏览器历史记录,使用音频和运行后台任务的工具,Web和桌面功能之间的差距再次缩小。

现代JavaScript

JavaScript的成功是否是其在浏览器中的特权地位的必然结果?还是只是fl幸,需要运气和完美的时机?

可以肯定的是, JavaScript被迫打开自己的路径。在他的一生中,JavaScript并不是人们最喜欢的,其他人则支持Java applet,然后是Flash,甚至是Silverlight。 JavaScript面对这些挑战者并击败了他们。

也许最公平的评估是JavaScript证明了每个开发人员都知道的东西。换句话说,新技术中最重要的因素是其覆盖范围。如果您的技术具有更高的覆盖率,则一开始不一定是最好的。您所需要的足够好。

JavaScript的未来将沿着快速分支的道路前进。现在,我们可以在服务器上运行JavaScript(感谢Node.js)并驱动桌面应用程序(感谢Node.js和Electron)。我们有一种非常相似的语言,例如将TypeScript编译为JavaScript,它使开发人员能够以合乎道德的方式为网页编写代码。将来,WebAssembly可能会完全打破语言限制,使开发人员可以使用JavaScript引擎来使用他们想要的任何高级语言。

现在该承认,尽管存在许多缺陷和不一致之处,但JavaScript确实很棒。 Brendan Eich将JavaScript放在Netscape Navigator中。我们将整个世界塞入浏览器,结果是一个现代化的网络。

押注JavaScript是正确的。布伦丹艾希(Brendan Eich)

发表评论喜欢

让我们分享AI学习与发展的干货

编译器组:李世臣和于树民

相关链接:

如果您需要复制,请在后台留言并遵守复制标准。