加载中...

本篇要回答的问题:从 PC 到移动再到 IoT,桌面平台一路怎么演进?跨平台工具的下一个机会在哪?以及一个容易被忽视的趋势——儿童编程教育,和桌面开发的终局有什么关系?

上一讲我们给了跨平台与 Web 开发的具体架构建议。本讲原计划用实战例子收尾"桌面软件开发"一章,但因准备内容较多而延后,先谈作者个人对桌面开发未来趋势的判断。

桌面平台的演进与未来

谈未来先看过去。一条主线:跨平台方案不断被意料之外的对手颠覆

时期 主流平台 跨平台方案 结局
PC Windows/macOS/Linux QT、wxWidgets 败给意外对手——PC 浏览器(顺带干成了跨平台 + 软件服务化)
移动初期 各方押注 WinCE / Symbian —— 赢家是谁都没预料的 Android 和 iOS
当下 Android/iOS + 手表/电视/汽车/IoT React-Native、Flutter、SwiftUI… 未定

关键洞见:浏览器并不是为跨平台而来,却顺手干成了跨平台——因为浏览器厂商虽多却遵循相同规范,“支持浏览器就支持了所有 PC 用户”,这太诱人。

作者倾向按交互方式给操作系统分类来预判未来:

市场 主流交互 补充交互
服务端 经典命令行(长期维持简约) ——
桌面/笔记本 鼠标指针(精确位置)+ 键盘 部分机型多点触摸
移动 多点触摸 + 键盘 语音助手渗透
IoT 语音助手为主(Amazon/Google 领先,Siri 落后) 部分设备引入多点触摸

IoT 设备会两极分化:一类专用设备最大诉求是裁剪能力、AppStore 非重点;一类通用设备受语音技术限制开放性差,有机会就带触摸屏退化成移动系统设备。

跨平台工具的机会评估:

方案 思路 作者评价
React-Native 基于 Web 技术,横跨 PC/iOS/Android,“Learn once, write anywhere” 声明式探索方向不错
QT 已支持几乎所有桌面 OS 没意识到兼容 Web 的重要性,错失机会
Flutter 把 OS 要求最小化,界面系统完全在用户态自建(类比 Go 重写进程/IO 子系统) 谨慎态度:交互范式差异 + 软件体积是软肋
SwiftUI 苹果出品,极简体验 或代表跨平台开发的可能方向,值得关注

关键判断:今天的跨平台重点是跨 Android/iOS/Web/小程序/PWA;PC 桌面优先级反而可缓(Web 能顶)。Flutter 的体积问题尤其要命——客户端尺寸对新用户转化率至关重要(微信小程序最早限 4M,后放宽到 8M),这和不在意尺寸的 Go(服务端)环境完全不同。作者更倾向尺寸轻盈的跨平台工具。

关键洞见:跨平台又一次印证了"每一次统一的努力都变成新的分裂"——手机系统之争刚有眉目,移动浏览器(小程序 vs PWA)之争又起,统一的 Web 分裂成多个技术阵营。

儿童编程教育

一个容易被忽视但与桌面开发密切相关的趋势:

语言/工具 出品方 备注
Logo(海龟作图) —— 儿童编程鼻祖
Scratch MIT,2007 已到 3.0,越来越活跃;3.0 基于 Blockly 源码改造,Google 协同开发
Blockly Google 缺社区基础,不温不火
App Inventor Google(基于 Blockly) 教儿童学 Android 开发
Swift Playgrounds 苹果 Swift 启蒙教程,面向儿童

关键判断:桌面开发的终极目标,是让儿童可以轻松编写出生产级的应用。这不是痴人说梦——iOS 出来前没人信能造出三岁小孩都会用的电脑,但苹果做到了。桌面开发技术的演进与儿童编程教育相向而行,终将汇聚于一点

总结

桌面平台史是一部"跨平台方案不断被意外对手颠覆"的历史:PC 浏览器灭了 QT/wxWidgets,Android/iOS 击败 WinCE/Symbian,如今终端多元化(PC/移动/IoT)让跨平台需求达到历史最高点。作者押注轻量 + 声明式的跨平台工具,并指出桌面开发的终局是与儿童编程教育合流。

先把"是什么"回答清楚

概念 一句话说明
平台演进主线 跨平台方案总被意料外的对手颠覆(浏览器灭 QT,Android/iOS 灭 WinCE/Symbian)
按交互方式分类 服务端命令行 / 桌面鼠标+键盘 / 移动触摸+键盘 / IoT 语音
QT 的错失 支持了所有桌面 OS,却没兼容 Web/小程序/PWA
Flutter 软肋 交互范式差异 + 软件体积(影响新用户转化)
儿童编程合流 Scratch/Blockly/Swift Playgrounds,终局是让儿童写生产级应用

一句话速记

跨平台方案总被意外对手颠覆;今天重点是跨 Android/iOS/Web/小程序/PWA,押注轻量+声明式工具;桌面开发的终局,是与儿童编程教育合流——让八岁孩子做出生产级应用。

几条值得记住的判断

  • 浏览器不是为跨平台而来,却顺手干成了跨平台——遵循统一规范的力量。
  • 软件体积是 Flutter 类用户态自建方案的致命软肋,直接影响转化率。
  • QT 错在没意识到兼容 Web 对跨平台工具的重要性。

思考题

作者断言"桌面开发的终极目标是让儿童轻松写出生产级应用"。如果这个终局成立,今天我们做架构时强调的"厚 Model 层、正交解耦",哪些会被声明式/可视化编程进一步抽象掉,哪些反而会变得更重要?

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