记住这两兄弟,他们可能是Web史上最大的错误(文末送书)

Java技术迷

共 3080字,需浏览 7分钟

 ·

2022-06-27 08:59

粉丝福利:文末送书

上个世纪90年代,有两个兄弟,他们看到互联网风起云涌,马上就要爆发,决定投身其中,干出一番事业。


他们俩仔细研究了当时互联网的入口,即浏览器,发现了一个重大的问题:


浏览器能做的事情太有限,就是展示文字+图片的网页,最多执行一点儿可怜的JavaScript


相比于功能强大、界面漂亮,有极强交互的桌面应用程序,这实在是太简陋、太差劲了!


两兄弟想到:能不能把桌面应用程序“搬”到浏览器中呢?


以后大家只要打开浏览器,就可以听音乐、看视频、玩游戏、办公、做图像处理......桌面能做的一切,浏览器都可以干。 


具体该怎么实现呢? 


插件!!




给浏览器装插件,然后从网络上下载代码来执行。



1



不过,两兄弟走了不同的道路,老大绑定了微软,改名为ActiveX


老二去了Sun,和Java眉来眼去,改名为Applet


他们的目的也确实达到了,不信你看看这些应用,哪里像一个网页,完全就是桌面应用(90年代)嘛



如果这么发展下去,就没有后来的Vue,ReactJS什么事情了。


前端工程师用的编程语言不会是JavaScript,而是C#/VB.NET/Java。


坏就坏在两兄弟有着致命的缺陷。


两兄弟当中,老大ActiveX的能力最强,能访问计算机的所有资源——这是程序员喜欢的能力,确是用户害怕的能力。


想想看,你打开一个包含ActiveX控件的网站,按照IE的提示把ActiveX从网络上下载到浏览器,结果这个ActiveX控件把你硬盘上的文件删除了,吓人不



更有些流氓ActiveX控件,赖到你浏览器中,怎么赶都赶不走,如3721。


所以,如果是公司自己开发的ActiveX控件,运行在局域网中,这是个不错的选择。


如果一旦进入广阔的、野蛮的互联网,ActiveX就太吓人了。


老二Applet则聪明得多,他宣称自己运行在Java沙箱中,根本没法访问本地计算机的资源。


但是Applet需要Java运行环境(JRE),JRE又大又复杂,如果浏览器没有JRE,需要网络下载,非常缓慢。


Java的GUI界面也非常丑陋,吓跑了无数人。


再加上ActiveX和Applet不是开放标准,没法获得其他大佬的支持,两兄弟慢慢淡出了大家的视野,在浏览器中运行复杂应用的第一次努力失败了。


Web页面继续平淡无奇,运行在浏览器中的依然是HTML+CSS,和一点儿简单的JavaScript。



2



转折点是Google的GMail, Google Maps,大家发现:卧槽,用JavaScript也能做出交互这么良好的应用啊,还用啥Java,用啥VB, 用啥C++啊! 



于是,JavaScript火了。 


浏览器要执行的JavaScript越来越多,负担越来越重,响应越来越慢。


Google又把两兄弟的理想给捡了起来:Web不仅仅是网页,而是应用。


只不过,此应用再也不是封闭的ActiveX, Applet,而是开放的JavaScript、HTML、CSS。


Google还为这种应用专门打造了一个浏览器Chrome,用V8引擎把JavaScript编译成类似Java的字节码,高效率执行。



JavaScript一路狂飙,jQuery、Angular、React、Vue等框架如雨后春笋冒出。


相应地,Web能做的事情也越来越复杂,很多应用都可以在浏览器中运行了。



3



但是JavaScript毕竟是个动态语言,无论如何优化,面对性能要求很高的应用时,还是力不从心。


例如3D 游戏、CAD、软件模拟/仿真、虚拟和增强现实、计算机视觉、图像/视频编辑以及许多其他需要本机性能的应用,在Web中运行是非常吃力的。


此外,下载、解析和编译非常大的 JavaScript 应用程序的成本可能令人望而却步。


浏览器需要一种能力:


1.执行一种特殊的代码,要能达到接近本机的速度


2.一定得安全,可以在安全沙盒中运行,还有有浏览器的同源策略和权限策略。


3.和浏览器中的其他Web技术(如JavaScript)协作


这就是浏览器的汇编语言:Web Assembly(WASM)


不过,这次不再用两兄弟时代的插件了,而是在浏览器中内置了一个虚拟机(VM),既能执行JavaScript,又能执行WASM。




JavaScript负责简单的交互,WASM负责高性能的部分。两者密切配合,完美。


并且,各种编程语言都可以写代码,编译成WASM:




以后你想用某个应用,只需要浏览器中输入网址,立刻开始使用,不用安装。


和别人分享也非常的方便,发个link就行了。  



4



不知道ActiveX和Applet两兄弟看到此处会何感想,他们最早提出了在Web中运行桌面应用,绝对是先驱,就是过于超前,成先烈了。


但是Web技术还是沿着他们俩的愿景走了下去,浏览器的能力越来越强,也许真的有一天,所有的应用都被搬到了浏览器中。


那将是一场伟大的变革!

👇👇👇👇👇

赠书福利来袭啦

联合北京大学出版社为大家送福利

鸿蒙HarmonyOS应用开发从入门到精通》本书采用全新的HarmonyOS 2.0版本作为基础,详细介绍了如何基于HarmonyOS来进行应用开发。辅以大量的实战案例,图文并茂,读者易于理解掌握。案例的选型偏重于解决实际问题,具有很强的前瞻性、应用性。本书适合加入HarmonyOS生态 的开发者阅读

《人工智能算法基础》当前AI图书市场,理论知识与实践经验的脱节,是很多书籍的缺点。本书立足于理论,从实例入手,将理论知识和实际应用结合,目标是让读者能够快速地熟悉人工智能中经典算法

《人工智能原理与实践》要深入理解人工智能,必须全面理解底层各类机器学习算法的基本原理。只有全面掌握机器学习的基础知识,才能更好地理解、提高和驾驭人工智能的各种应用。本书内容系统、全面,理论知识覆盖面广,且保留了推导过程。实践案例中,深入浅出地讲解和展示了机器学习应用的具体流程

《Vue.js框架与Web前端开发从入门到精通》从Vue.js框架技术的基础概念出发,逐步深入Vue.js进阶实战,并在最后配合一个网站项目和一个后台系统开发实战案例,重点介绍了使用Vue.js+axios+ElementUI+wangEditor进行前端开发和使用组件进行Vue单页面网页复用,让读者不但可以系统地学习Vue.js前端开发框架的相关知识,而且还能对业务逻辑的分析思路、实际应用开发有更为深入的理解

《架构基础:从需求到架构》本书与任何编程语言无关,目的是提升读者的设计思维、培养读者的设计能力、开启读者的架构思维。同时,本书也是一本设计方案指南,开发人员、设计人员、架构人员均可参考本书,针对遇到的场景进行参考性设计
截止时间:2022 年 6 月 27 日 16:00  整  
 兑奖时间:2022 年 6 月 28 日 16:00截止 

#留言有礼# 以上的书你喜欢吗?分享一下你想要这本书的理由!或者你对本文的见解,活动截止时小编选出10位幸运小锦鲤,中奖者可获得实体书籍一本,我们包邮赠送~

  

1、2点睡10点起不算熬夜?

2、被捧上天的Scrum敏捷管理为何不受大厂欢迎了?

3、离大谱!win10/11又爆多个离奇Bug,速看避坑!

4、你为什么不交女朋友,是因为不想吗?!

5、微软欲闭源VS Code的C#扩展惹众怒

6、上能写代码,下要“揍”黑客,还有什么不是程序员的“锅”?

点在看

浏览 17
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报