Safari 将是下一个 Internet Explorer 吗?

Safari 将是下一个 Internet Explorer 吗?

Safari 将是下一个 Internet Explorer 吗?

在 2004 年的鼎盛时期,微软的 Internet Explorer(IE)约占浏览器市场的 95%。随着 Firefox 和 Chrome 越来越流行,对于 Web 开发人员而言,构建具有跨浏览器兼容性的网站变得越来越重要。

IE 给 Web 开发人员带来了很多麻烦,因为许多错误仅适用于 IE,并且在 W3C 对其进行标准化之后,有时在实施新功能时会滞后。

IE 如此流行,以至于即使微软自己通过 Edge 离开了它,它仍保持着持久的市场份额。在 2016 年,该公司终止了对 11 以下所有版本的支持。虽然微软将在 Windows 10 的整个生命周期中更新 IE 11,但他们仍在积极推动人们脱离 IE。Microsoft 服务将在 2021 年停止支持,当用户尝试在 IE 中打开某些网站时,Windows 将开始自动在 Edge 中启动某些网站。

尽管 IE 即将成为互联网历史的遗物,但有人声称 Safari 是新的 IE。让我们考虑一下 IE 和 Safari 情况之间的异同,以了解到 2020 年年底时这种比较的有效性。

市场份额

成为下一个 IE 意味着拥有足够大的市场份额,许多开发人员都不必担心。在台式机上,Chrome 无疑是领先者,约占 68%的市场份额。Safari 排名第二,约为 10%。单靠这是一个相当大的人口,但是开发人员不得不关注 Safari 的更大原因是因为它在 iOS 和 iPadOS 上的移动版本。

在绝大多数 iPhone 用户使用 Safari。但是,了解 Safari 的引擎 WebKit 是 iOS 上唯一允许的浏览器引擎也很重要。甚至 Chrome 和 Firefox for iOS 也必须在后台使用 WebKit 才能遵守 Apple 的 App Store 审查指南:

浏览网络的应用程序必须使用适当的 WebKit 框架和 WebKit Javascript。

因此,任何关心 iPhone 和 iPad 用户的 Web 开发人员都绝对必须关心 Safari。

但是,总体情况比过去使用 IE 的情况要好得多。Safari 仍然仅占浏览器市场总量的 19%。这与 IE 以前的类似垄断的主导地位相去甚远。

除非网站拥有庞大的 iOS 和 iPadOS 用户群,否则 Safari 的任何问题都不会像 IE 鼎盛时期独有的问题那样严重。“此错误影响了我们 95%的用户”,没有像 “此错误影响了我们 19%的用户” 那样令人震惊。

操作系统更新

IE 的另一个大问题是它与 Windows 新版本的关系。Windows 的每个版本最多仅支持 IE 的特定版本。例如,Windows XP 仅支持 IE 8,而 Windows Vista 仅支持 IE 9。

因此,即使新的 IE 版本解决了问题并实现了功能,仍然存在用户因未升级 Windows 而停留在旧版 IE 上的问题。Safari 处于类似情况,因为其更新也与操作系统更新相关。但是,有两个因素可以缓解这种情况。

首先是操作系统更新现在免费。过去,我们必须为新的 Windows 和 OS X 版本付费。既然他们是免费的,那么让人们升级的摩擦就更少了。

苹果公司也坚持不懈地推动更新,例如发布反复的更新提示。新的 iOS 版本在发布后很快就会达到较高的采用率,尤其是与新的 Android 版本的采用率相比。

苹果还可以支持数年前的设备,这也有帮助。例如,iOS 14 一直可以在 iPhone 上运行,直到 iPhone 6S 才问世 5 周年。因此,实际上,Safari 更新与操作系统更新并存不是什么大问题。

功能和错误

我可以使用提供的主要浏览器最新版本之间的支持功能比较吗?Safari 仍然缺少许多功能。过去,开发人员抱怨缺乏对 WebRTC 和 WebP 之类东西的支持,但是 Safari 现在有了。

Safari 仍然有一些保留,例如 Web 蓝牙和 Web USB。但是这些是相对高级的,不错的功能,而不是典型网站广泛使用的功能。苹果公司可能并不总是采用 W3C 标准,但其影响不应该像 IE 对于更关键的标准缓慢实施时那样严重。

Mozilla 的 2020 MDN 浏览器兼容性报告为我们提供了一些有关社区意见的见解。对于 “哪些浏览器 / 平台引起最多问题?” 的调查问题,移动 Safari 和桌面 Safari 紧随 IE 之后。

我们也有理由相信,由于 Bootstrap 的浏览器错误墙,Safari 往往比其他现代浏览器的错误更严重。Safari 列出了最多的问题,这可能是对总体情况的一个很好的估计,因为 Bootstrap 具有许多通常有用的组件。

相对而言,Safari 确实比其他现代浏览器造成更多痛苦。但是,只要存在竞争,总会有一种浏览器的开发性能比其他浏览器差。Safari 和其他浏览器之间的差距并不比 IE 差,而且差距很小,以至于我认为此时将 Safari 称为下一个 IE 是不公平的。

扩展名

Safari 也有自己的扩展框架。首先,有一个专有的.safariextz扩展系统。苹果在 2018 年完成了对 Safari App Extensions 的弃用。但是从版本 14 开始,Safari 支持 Chrome(及其衍生工具,如 Edge 和 Opera)和 Firefox 使用的 WebExtensions API。

尽管存在某些不兼容性,但这对于扩展开发人员而言是一大进步,因为至少所有主要浏览器的核心 API 都是相同的。进行跨浏览器扩展将更加容易。

结论

从表面上看,Safari 的情况似乎与我们以前使用 IE 的情况相似,但是由于存在重大差异,因此很难证明将 Safari 称为下一个 IE。即使 Safari 在修复错误和实现功能方面比其他浏览器慢,至少我们可以预期,这些更改将使其最终用户的速度比对 IE 用户的速度快得多。

处理 Safari 特定问题的痛苦与 Web 开发人员在支持 IE 用户时必须面对的痛苦不在同一个领域。维护跨浏览器兼容性将不可避免地会有一定程度的困难,但是现在的挑战要容易得多,特别是因为诸如 Can I Use 和 MDN 之类的资源使不兼容的情况更容易提前知道。

对我们来说幸运的是,没有浏览器能真正占据 IE 的地位。我不怪任何抱怨 Safari 的开发人员,但是现在为 Safari 开发与过去为 IE 开发存在明显的区别。我对此表示感谢。