iOS专宠WebKit,苹果正在扼杀Web应用创新?
整理 | 祝涛
出品 | CSDN(ID:CSDNnews)
著名的苹果博主John Gruber最近掀起了一场网络纷争,他建议网络开发者“不应该在网络浏览器中创建一个'本地式的应用程序’。” Gruber表示,他提出这个观点,与苹果在其iOS平台上垄断浏览器引擎招致越来越多的批评有关。从网友的角度看,这样的说法是在替苹果辩护。
苹果强迫谷歌、微软和Mozilla等浏览器厂商使用WebKit浏览器引擎,限制了Web应用在iOS上的发展。这就是为什么先进的网络应用程序PWAs的许多功能不能在iPhone或iPad上运行的原因。(编者注:Progressive Web Apps,简称PWAs,是指2017年2月4日,谷歌推出的“小程序”增强型网页应用,它无需下载安装,却可以和本地APP一样,放置在桌面上。)
不过,Gruber的观点中确实暗含着一个有趣的问题:在模仿本地应用的高级功能方面,Web应用应该走多远?要回答这个问题,首先需要了解Web应用已经走了多远。
Web应用简史
Web应用程序是一种可以通过Web访问的应用程序,最大的好处是用户可以很容易地访问应用程序——用户只需要有浏览器即可,不需要再安装其他软件。
在大部分时间里,Web一直是应用程序和网页的平台。1991年,Web只是一个以文档为中心的平台,但在1993年,有了CGI脚本后,Web就开始演变成一个应用程序平台。在90年代中后期,网景和微软都把他们的浏览器变成了网络应用程序平台,到21世纪初,我们有了Ajax应用程序——所谓的Web 2.0时代的一个关键驱动因素。
Gruber反对将Web作为应用平台的论点是随着苹果的iOS和谷歌的安卓系统的到来而产生的。它们的出现使得互联网转变为一个主要由智能手机驱动的应用平台。众所周知,Instagram在2010年发布时是一款只支持iOS系统的应用,而完全忽略了Web。直到今天,Instagram的网页浏览器功能仍然有限。因此,随着iOS和Android开始主导互联网市场,Web在一定程度上被甩在了后面。
然而,在近几年,将Web作为应用程序开发平台的手法“重现江湖”。这不仅得益于像React这样JavaScript支持的前端框架,还要感谢最近Web标准的进步。后者在很大程度上要归功于WHATWG (Web超文本应用技术工作组),这是一个由苹果、谷歌、Mozilla和微软共同运营的组织。WHATWG运行的是它所谓的HTML“生存标准”,然后被万维网联盟(W3C)采纳为官方网络标准。
问题是,虽然谷歌,微软和Mozilla都致力于将Web作为一个平台来推进,但苹果显然不想削弱其iOS的人气。它希望下一个诸如Instagram这样的火爆软件依然建立在iOS上,而不是作为PWA(Progressive Web App,渐进式接近原生APP的Web应用程序)发布。这让我们想到了苹果备受争议的决定——将iOS上的网页浏览器引擎限制为自己的WebKit引擎。
WebKit和Blink的区别
苹果的这个决定很大程度上是为了阻止谷歌的相关技术在iOS上运行。谷歌率先开发的Blink浏览器引擎是Chromium开源项目的一部分,是Chrome在其桌面、Android和除iOS以外的所有操作系统上的一个重要组成部分。相比之下,iOS用户可以下载的Chrome版本(使用的是WebKit而不是Blink)就相形见绌了。
Blink项目所声明的任务是“使Web成为体验信息世界的首要平台,并提供世界上最好的网络平台实现。”这意味着Blink希望自己的引擎能够与原生应用直接竞争,成为消费者在互联网上的“首选平台”。
虽然WebKit也是开源的,但它的目标并不是以应用程序为中心。WebKit被定位为“内容引擎”——这是一种微妙的方式,暗示人们Web浏览器应该坚守自己的路线,专注于内容,而不是去开发应用程序。
相比之下,Blink称自己为“渲染引擎”(排版引擎),这是一个更加开放的定义(应用程序和网页都是渲染的)。此外,如果在应用程序中使用WebKit,那么WebKit应该是配角,而不是一个主角。
Web应用为何要与本地原生应用竞争?
上述问题的答案很简单:Web应用应该被允许与本地应用竞争,因为Web是一个开放平台,允许开发者“一次编写,随处运行”。而反对Web应用的论点往往没有什么说服力。
像John Gruber这样的苹果粉丝认为,在iOS设备上,使用本地iOS开发平台创建的应用程序会更好。在他与Web应用粉丝的争论中,他提出“电池寿命、安全、隐私以及警惕Chrome主宰整个网络”是他支持苹果禁止第三方浏览器引擎的部分原因。他后来在帖子中进行补充,他认为“本地应用程序提供了更好的用户体验”。
Gruber没有提到的是,苹果禁止iOS上的第三方浏览器引擎正在抑制网络应用的创新。在Android上运行的PWAs已经提供了与Android原生应用一样好的用户体验。虽然在iPhone上,本地应用确实比PWAs更好,但这只是因为苹果不允许第三方浏览器使用所有的Web应用技术。
除了iOS浏览器引擎缺乏选择性,而且WebKit本身作为浏览器引擎是存在缺陷的。Alex Russell现在是微软Edge的合作伙伴项目经理,但在此之前,他曾担任谷歌Chrome的高级工程师多年。当他还在谷歌工作时,他发表了一篇关于WebKit的长篇评论,他认为:“苹果的网络引擎在兼容性和功能方面一直落后于其他公司,导致了其他平台与苹果原生平台的巨大差距。”
综上所述,在iOS上,原生应用比Web应用更具竞争力,其主要原因如下:
- 苹果阻止其他浏览器供应商使用他们自己首选的浏览器引擎;
- 苹果的WebKit在应用功能方面跟不上Chromium等应用。因此,Web应用无法与iOS应用竞争是苹果的问题,而不是Web的问题。
Web应用应该与原生应用一样吗?当然应该这么做,因为在Web上运行应用程序的历史悠久而丰富——可以追溯到1993年。由于智能手机应用程序的出现,Web应用程序在21世纪10年代初渐渐脱离了轨道。但现在,由于Web标准和围绕开源Web引擎的创新,Web再次成为一个万众瞩目的开发平台。也许下一个Instagram会建立在Web上。
参考链接:
- https://thenewstack.io/apples-browser-engine-ban-is-holding-back-web-app-innovation/