跨平台桌面开发,Electron还是WebView2(中篇)
这一周继续聊跨平台桌面开发这个事情。
在这篇文章中,我暂时会放下Electron与WebView2的一个对比,而聊一聊跨平台这个对于程序员群体来说不陌生的词。 一)趋势是什么
一个趋势是:跨平台开发几乎是在各个技术方向都会持续发展的
跨平台这个词,对于程序员来说,应该是不陌生的。因为这个概念不只在某一端存在,后端,前端,移动端,桌面端几乎所有方向都对跨平台有需求。
后端
在后端,Java是跨平台的,当你用Java来编写后端服务时,并不需要考虑操作系统,因为它几乎支持主流的操作系统。现在,编写一个后端服务,选用Java仍是主流。虽然可能它的跨平台特性已经不是程序员最在意的点了。
移动端
而在移动端,类似React Native,Flutter也是非常有名的跨平台移动开发,它们与移动原生开发方式之间一直是竞争与共存。
前端
而前端因为依托于浏览器,天然就是跨平台的。事实上,很多应用或服务早期纷纷选择从原生应用迁移至前端WEB方式的一个非常重要的原因就在于它是跨平台的。
桌面开发
桌面操作系统很长一段时间一直是Windows一家独大,所以桌面开发一直是Windows独占,直至现在为止,很多专业级的软件仍然是Windows独占的。
而Linux桌面操作系统与MacOS桌面操作系统,早些年几乎可以忽略不计,压根不需要考虑这两种系统。但随着近些年它们的慢慢流行,特别是苹果的MacOS的以其杰出的工艺,流畅的体验,叠加苹果手机的流行,其市场份额增长非常之快,在特定的诸如编程,设计等行业人群中使用范围较广,这使得开发支持MacOS系统这个点变得越来越重要。
以国内为例,众所周知,腾讯的软件一向不太关注Linux操作系统,但这些年,其对MacOS系统的支持可谓是迅速而且有力,许多软件都有了MacOS版本而且还不是Linux QQ这种粗制烂造型,大多属于非常用心,质量也非常上乘。
所以,在桌面开发领域,跨平台的需求也越来越高。
这也是Electron及早期的NW.js能迅速发展起来并得到非常广应用的原因所在。 二)痛点是什么
无论是哪一端,跨平台技术之所以频繁出现与不断发展,其根本原因就在于编程的一个重要痛点在于:
为了让同一个服务能在所有设备上运行,程序员不得不编写与维护非常多不同版本的程序
每一个程序或软件后面的服务,都有一个非常迫切的需求,就是期望它的用户无论何时,无论何地,无论使用任何设备,都能方便友好的使用这个服务。
也是因为这个原因,Web发展起来了,因为Web的优势就在这,只要你的设备上有浏览器,就能访问。
但Web毕竟性能有限,且浏览器这种形式并不利于用户忠诚度的培养,它存在天然的弱点。一些简单的操作服务使用Web并无问题,但稍微有点要求的,Web可能就并不是非常适合。
所以,一种趋势不可避免地流行起来:
对不同设备或系统进行抽象,基于某一种特定的编程语言,编写出能与原生程序相媲美的,又能跨平台的技术便层出不穷了
对吧,Java是使用JVM来抽象不同的操作系统,React Native则是使用虚拟DOM以及转换成原生控件的方式来实现跨平台,而Electron则是通过性能较好的Chrome内核+NodeJS原生调用能力的搭配来实现跨平台桌面开发。
总而言之,这种跨平台的技术不会消亡,只会有新的技术层出不穷,而它们与原生开发一定是相互竞争,配合与共存的。相互之间无法取代。 三)重点是什么
那再回到跨平台技术上来说,一个良好的跨平台开发的技术或框架,重点是什么。
或者换种方式说,哪些特性使得它更易于流行起来?
我个人认为有以下的几个点:
编程语言的流行度
跨平台开发技术能不能流行起来的一个非常重要的点就在于,使用了什么样的编程语言。
以移动端跨平台开发技术来说明,一个React Native,一个Flutter,这两个是比较知名主流的跨平台移动开发技术。React Native使用的是前端React技术,而Flutter则是Google的D语言。
显而易见的是,虽然Flutter是使用skia引擎在底层重绘一套UI,其性能相比React Native这种模式更佳,但React Native更易于被接受。
在流行度上,React Native始终比Flutter更流行,一个最重要的原因也在于:
使用已熟知的前端编程语言,比起重新学习一个D语言更易于被接受,维护成本更可控。
这个问题在跨平台桌面开发中也是类似,跨平台桌面开发技术也不是Electron最开始出现,比如著名的QT很早就有了,但比起Electron这种使用前端编程技术来说,显然在编程语言的门槛上和程序员群体上都存在困难,这也是Electron能后来居上的原因所在。
因为,大多数程序员群体,相比较另外学习一门什么语言去做什么,使用自己熟悉的语言来做什么是更容易,意愿也更高。
而从公司或团队的考量上看,选择偏门的小众语言存在成本上的顾虑,比如人员招聘是否容易?
性能
跨平台技术在尝试解决不同平台不一致,它或多或少会损耗性能。这也决定了几乎没有任何一个跨平台技术能取代原生开发。
这是一个取舍的问题,对于一个程序来说,究竟性能有多重要。对于比较看重性能的程序来说,原生开发可能是最优选择。
但跨平台的性能损耗也有高低之分,并不在同一水平线上。
以Flutter为例,之所以使用了D这种并不大众也不流行的编程语言但仍然吸引很多关注,与React Native一较高下的关键原因在于它的实现机制在性能上是优于React Native的。
而Electron或WebView2这样的技术,之所以受到极大的关注与使用,一个重要的原因也在于Chrome内核的性能是不断提升的,今天的浏览器的性能及JS解析运行能力已远远优于过去。虽然不可能和原生程序相比,但对于一些性能要求并不是非常高,而对于跨平台有较高要求的程序来说,选择牺牲一点性能,来达到跨平台的目的,不失为上策。 四)Electron VS WebView2
其实,无论是Electron,或是WebView2,都是基于浏览器内核+前端技术的跨平台桌面解决方案,这也是为什么要把它们放在一起聊的原因。
Electron是先行者(当然,严格说来,NW.js出现的更早,但今天它的流行度已远远落后于Electron了),而WebView2则是后来者。
那做为后来者的WebView2究竟做了哪些改进?它又有多大的能力来挑战Electron呢?
下一篇,继续聊。
OPPOK10系列正式官宣,看完配置后一众网友都沸腾了4月18日,OPPO官微更博,正式宣布OPPOK10系列即将于4月24日正式发布。众所周知,作为OPPO旗下定位轻旗舰的K系列,历来都是2K价位的明星机型,硬核特性加之高性价比的结
滴灌通中国投资发展中心总经理李辉小微经济在中国经济的最基层,但最活跃每经记者王帆每经编辑杨夏不久前的3月31日,港交所前总裁李小加创办的滴灌通宣布完成7000万美元B轮融资,融资总金额达到1。2亿美元。在过去,受限于单体规模小且分散,财务难透明抗风
科学家研发火星加油站据西班牙阿贝赛报网站4月16日报道,人类技术已经到达火星。20年来,我们已经拥有多辆研究其表面的火星车,以及不断在太空绕火星运行并研究它的航天器。下一步将是第一次把人送上火星,踏足
最大的彗星被发现,直径80英里,重500万亿吨,科学家是威胁4月12日,国际研究小组得到一个重大发现,用哈勃太空望远镜发现了迄今为止最大的彗星,其宽度达80英里,质量约为500万亿吨,是平常所见彗星的10万倍之多,它的名字为C2014UN2
巾帼风采黄玲玲在元宇宙追光的女科学家春日午后,晴空万里。北京理工大学校园里,粉色海棠正开得灿烂。穿过中心花园,在教学楼,记者见到了追光的科学家黄玲玲。短发,浅灰色套头衫深色牛仔裤白色运动鞋,一身学生打扮的黄玲玲是光电
北斗系统已经面向全球开放,我国为何还用GPS?知道原因后很无奈科技改变人们生活,这句话真实不假。例如在出行上,科技对生活的改变是非常明显的。仔细回想,你有多长时间没有在路上遇见问路的人了?以前我们要去一个地方,没有导航,在没有详细的地图下,只
俄罗斯科学家找到了提高钻井设备耐用性的方法彼尔姆理工大学的科学家提出了一种提高油田和钻井设备可靠性的综合方法。他们将新的技术和设计解决方案应用于螺纹连接的制造和组装。俄罗斯科学家找到了一种提高钻井设备耐用性的方法结果发表在
多个首次!空间应用系统取得丰硕成果来源央视新闻客户端在今天(17日)国新办举行的新闻发布会上,中国载人航天工程空间应用系统副总设计师中国科学院空间应用工程与技术中心研究员钟红恩介绍,核心舱在轨运行将近1年时间,空间
w10系统关闭垃圾广告方法汇总Win10系统关闭垃圾广告方法汇总使用Win10系统的朋友一定会发现,Win10系统会有很多广告,如开始菜单上的一些应用推荐锁屏上的一些广告,还有一些消息通知等等,那时不时弹出的流
家居好物分享多功能无线充台灯,是音箱是支架还是充电宝?前言最近看到这样的话题讨论你有没有买过很值的东西?,我立马就来了兴趣。作为经常余额不足经济来源少之又少的大学生,虾米锻炼出一套省钱小妙招。当你想买一个小物件时,加上多功能三个关键字
苹果的下一步如今苹果已经完全摆脱intel,全套产品都用自己的芯片。首先是MacBook系列产品,然后是部分iPad。接下来很有可能是iPhone,再接下来呢?我觉得很有可能是软件层面上,也就