加载中...

本篇要回答的问题:作为界面开发框架,浏览器到底带来了哪些本质变化?由它衍生出的两支力量——中国特色的小程序与海外版的 PWA,差别和未来又在哪?

上一讲我们站在应用架构角度讲了桌面原生程序(Native App)的 MVC 设计,讨论范围还只是单机软件。本讲开始跨入网络,从浏览器讲起,看 B/S 架构如何改写界面开发的玩法。

浏览器

从商业价值看,浏览器带来的三点重大进步:

进步 含义
软件服务化 交付从单机软件转向云服务,社会分工巨变,任一环节都可能成长为吞噬上下游的超级节点
随时发布 极大改进迭代效率,可快速试验想法,不必因质量召回而束手束脚
跨平台 消除操作系统差异,一份代码到处运行

把重心放到界面开发框架这个视角,浏览器带来的本质变化有四点:

浏览器作为界面开发框架带来的变化

# 本质变化 说明
1 窗口系统被颠覆 一个网页只是一个窗口,无父子窗口;所有元素(input/image/div/canvas)都是虚拟视图,通过统一机制做事件分派
2 绘制机制变了 从调 GDI 绘制界面,变成 HTML+CSS 声明界面——这是本质差别
3 语言限制 长期只支持 JavaScript;突破方案有代码转换器(如 Go→JS)、WebAssembly;Dart 想取代 JS 但失败
4 B/S 架构 Server 端从单用户变多用户,Browser 端仍单用户但没有了数据(数据都在 Server 端)

关键洞见:HTML+CSS 不该理解为 View 层,而是 ViewModel 层——真正的 View 层被浏览器干掉了。改 HTML DOM 时浏览器自动更新 View,局部更新优化你不必关心,浏览器已经做完。这事的价值超乎想象,大幅提升了桌面应用开发效率。

对比维度 GDI HTML+CSS
本质动作 绘制界面 声明界面
局部更新优化 开发者自己做(难点) 浏览器自动完成
对应 MVC 角色 View 层 ViewModel 层

小程序

2016 年 9 月微信小程序(最初叫"应用号")开始内测。作者当天与七牛团队的内部对话点出了几个关键判断:

关键判断:微信实际上升级了浏览器内核的标准,符合"新一代浏览器"的定义;移动时代最佳的浏览器是 IM,不再是传统浏览器——因为 IM 封闭性更强、用户不易跳出,这样的土壤才能构建 App 生态。

为什么微信小程序必然成功?因为有 7 亿人同时使用的操作系统极少,它是当时世界上最大的单一来源操作系统。随后支付宝、快应用、今日头条小程序跟进,小程序成为真正意义上的"国产操作系统",对抗 Android/iOS。

小程序与传统 Web 开发的根本不同:

维度 传统 Web 小程序
形态 一个个 Web 页面构成 一个应用(Native 程序在线化,而非 PC Web 移动化)
上架 自由发布 需提交审核,厂商掌生杀大权
下线风险 厂商可下线已有上亿用户的 App,让其一无所有

关键判断:厂商可掐掉一个 App 的全部(苹果只能掐新增)——这带来"操作系统厂商权限边界在哪"的伦理与法律问题。风险如此之高,所以所有厂商在拥抱微信的同时,必然时刻想着如何逃离微信。刀刃永远是两面的。

小程序当前最大问题是标准不统一:各家接口快速迭代,难建统一标准,更谈不上"一次开发到处可用"——这与 Android(厂商多但接口/工具链一致)不同。

PWA

Google 在推自己的移动浏览器方案 PWA(Progressive Web App),可理解为"海外版的小程序"。它始于 2015 年,早于微信小程序,并得到苹果、微软支持。

对比维度 小程序 PWA
演进思路 与 Web 差异较大 兼容 Web、逐步改造升级
关注焦点 撬动庞大用户市场(甚至出小游戏) 更技术化,重在断网下与本地应用一致的体验
中心化 AppStore 有,封闭操作系统 无,更像技术标准,不怕被掐脖子
商业闭环 符合"账号-支付-应用市场" 没有账号、没有支付,作为 OS 太传统

关键判断:技术上相似,但以操作系统视角看两者有代差——小程序符合现代操作系统"账号-支付-AppStore"的商业闭环,PWA 没有账号也没有支付。作者推测最终把 PWA 发扬光大的很可能是 Facebook(大概率也会放弃包袱重新出发)。

总结

浏览器作为界面框架,最深刻的一击是用 HTML+CSS 这层 ViewModel 接管了 View 层与局部更新;由它衍生的小程序与 PWA,本质都是"软件服务化 + 跨平台"的移动浏览器之争,区别在于是否构成"账号-支付-应用市场"的操作系统闭环。

先把"是什么"回答清楚

概念 一句话说明
浏览器界面框架 无父子窗口、虚拟视图统一事件分派、HTML+CSS 声明界面
HTML+CSS 是 ViewModel 层,不是 View 层;View 由浏览器实现
小程序 Native 程序在线化,依托 IM 这个新一代"操作系统",有商业闭环但标准不统一
PWA 海外版小程序,兼容 Web、技术化、无账号无支付、无中心 AppStore
WebAssembly 打通各类语言与 Web 桥梁的尝试

一句话速记

浏览器把 View 层吞了、留下 HTML+CSS 这层 ViewModel 给你;小程序是有"账号-支付-AppStore"闭环的新一代 OS,PWA 是没有闭环、更像技术标准的海外版。

几条值得记住的判断

  • 移动时代最佳的浏览器是 IM——封闭土壤才能长出 App 生态。
  • 刀刃永远是两面的:拥抱微信的同时,每个厂商都在想怎么逃离。
  • 小程序与 PWA 有代差,差在是否构成操作系统的商业闭环。

思考题

如果你要为自己的产品选一条移动端落地路径:小程序(背靠流量与闭环,但随时可能被掐全部)还是 PWA(自己说了算,但没有账号/支付/应用市场)?决定权重应该放在"流量"还是"控制权"上?

公告栏
这是我的个人知识库。
记录技术,也记录生活 —— 读过的、试过的、想明白的,都堆在这儿。
最新文章
网站资讯
文章数目 :
5
已运行时间 :
本站总字数 :
15.7k
本站访客数 :
本站总访问量 :
最后更新时间 :
全局知识图谱
当前页面 已访问 文章 标签
ESC 关闭 · 滚轮缩放 · 拖拽移动 · Ctrl+G 开关