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一样,放置在桌面上。

iOS专宠WebKit,苹果正在扼杀Web应用创新?_第1张图片

不过,Gruber的观点中确实暗含着一个有趣的问题:在模仿本地应用的高级功能方面,Web应用应该走多远?要回答这个问题,首先需要了解Web应用已经走了多远。

Web应用简史

Web应用程序是一种可以通过Web访问的应用程序,最大的好处是用户可以很容易地访问应用程序——用户只需要有浏览器即可,不需要再安装其他软件

在大部分时间里,Web一直是应用程序和网页的平台。1991年,Web只是一个以文档为中心的平台,但在1993年,有了CGI脚本后,Web就开始演变成一个应用程序平台。在90年代中后期,网景和微软都把他们的浏览器变成了网络应用程序平台,到21世纪初,我们有了Ajax应用程序——所谓的Web 2.0时代的一个关键驱动因素。

iOS专宠WebKit,苹果正在扼杀Web应用创新?_第2张图片

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/

你可能感兴趣的:(ios,html,Web,苹果,谷歌)