随笔-从一次软件安装到软件分发的商业思考

146 阅读7分钟

当一个开发者重装系统后,他需要的不是“兼容”,而是“进化”

又是一次新系统的安装。我坐在电脑前,熟练地打开浏览器,准备重建我的开发环境。作为一个经验丰富的开发者,我知道这将是一场漫长的战斗。

我需要安装Bazel(2403-165-bazel的用法-juejin.cn)。打开Bazel官网,安装说明 bazel.build/install/win… 还是那几行熟悉的字眼:

  • Check your system
  • Install Visual C++ Redistributable
  • Download binary
  • Rename to bazel.exe
  • Add to PATH

我叹了口气。很多年了,还是这一套。很多次手动修改环境变量,把可执行目录加入到 PATH 中?这难道不是安装过程自动该干的活吗?为什么我不能像在 macOS 上那样,brew install bazel 一键搞定?

我厌倦了这种“麻瓜式施法”。我们不是在“安装软件”,我们是在“配置系统”。

真正的“应用安装”应该是一个原子操作:点击 → 完成。而 Bazel 的流程是一系列手动操作。

在 Linux/macOS,apt install / brew install 是声明式的:“我要这个”。 在 Windows,你得命令式地告诉系统每一步怎么做。

也许有更现代的方式?我听说有个叫 winget 的东西。

我心想:“winget?这是啥?” 打开新标签搜索。

我输入命令:winget search bazel 看到结果:

名称     ID             版本   匹配       源
------------------------------------------------
Bazel    Bazel.Bazel    8.4.2             winget

惊喜!Bazel 居然在官方源里!

我继续输入:winget install Bazel.Bazel 命令执行,我看到:

  • 自动下载
  • 自动验证哈希
  • 自动安装 VC++ 依赖
  • 自动修改 PATH
  • 自动创建 bazel 命令别名

成功!我甚至不用重启终端就能用 bazel version

这,才是现代软件分发该有的样子。

但当我打开Microsoft Store,搜索“Bazel”时,结果却让我失望。没有。商店对开发工具的支持实在太弱了。

在中国,商店的访问困难和体验差更是雪上加霜。微软的“应用商店”战略,从未真正服务于开发者。

我对比了国内生态,在Windows的国产电脑腾讯官家中搜索bazel,也没有找到。当然,我们知道bazel这种工具是开发者专用,但我抛出一个思考:能不能把专业软件和普通软件都在一类平台上发行,入口便捷,用户体验好?

这背后,其实是一个巨大的商业和生态问题。

微软应用商店在中国的困境,远不止是“找不到软件”那么简单。

首先,是网络基础设施问题。微软的服务器大多部署在境外,访问速度慢、不稳定,甚至经常打不开。这在其他地区可能只是体验问题,在中国却成了“不可用”的硬伤。

其次,是本地化不足。微软对中文市场的投入有限,商店里充斥着英文应用和机翻描述。很多本土开发者也不愿意上架,因为审核流程复杂,分成比例又高。

更深层次的问题,是微软对“开放生态”的理解偏差。Windows 一直以来都是开放的,用户习惯于从官网下载安装包。微软强行推行“应用商店”,试图封闭生态,这与用户习惯格格不入。

对比苹果的 App Store 和谷歌的 Play Store,微软的策略显得犹豫不决。既想控制生态,又不敢彻底放弃开放。结果就是两边不讨好:开发者嫌麻烦不上架,用户嫌难用不买单。

中国的软件分发市场早已被各种“下载站”和“PC管家”占据。这些平台虽然体验参差不齐,但胜在“接地气”。它们知道中国用户需要什么:一键下载、自动安装、免费软件。

微软的“纯净”理念,在这里显得有些天真。在中国,软件分发不仅仅是技术问题,更是商业和文化问题。

那么,Windows 的软件安装体验为什么这么复杂?这背后有什么深层次的原因?

我认为,核心问题在于 Windows 缺乏一个统一的、方便的软件分发和管理系统。

拿开发者工具来说,Linux 有 apt/yum,macOS 有 brew/port,它们都提供了一种“声明式”的安装方式:你告诉系统“我需要什么”,系统负责“怎么获取”和“怎么安装”。

Windows 一直以来采用的是“命令式”方式。你需要手动下载安装包,手动点击“下一步”,手动处理各种依赖和环境变量。这不仅繁琐,还容易出错。

安全也是一个考量因素。Windows 的开放性让它容易成为恶意软件的温床。为了安全,微软不得不对安装过程进行各种限制,但这又增加了用户的操作成本。

商业利益的博弈也让问题复杂化。各种软件厂商为了推广自己的产品,会在安装包里捆绑各种“全家桶”。用户在安装一个软件时,不知不觉就装上了好几个不需要的东西。

winget 的出现,就像一束光,照亮了 Windows 软件分发的黑暗角落。

它提供了一种类似 brew 的体验:winget install。它有一个官方维护的软件源,保证了软件的安全性和可靠性。它能自动处理依赖关系,自动配置环境变量。

这不仅仅是技术上的进步,更是理念上的转变。微软开始意识到,一个现代化的操作系统,必须有一个现代化的软件分发系统。

我想象中的理想软件安装平台,应该具备以下特性:

  1. 统一的入口:无论是专业软件还是普通应用,都能在一个地方找到。
  2. 声明式的安装install foo 就应该安装 foo,而不是让我点击十几次“下一步”。
  3. 自动依赖管理:如果 foo 依赖 bar,系统应该自动安装 bar,而不是让我自己去找。
  4. 一键卸载:卸载软件时,应该能自动清理所有相关的文件和注册表项。
  5. 版本管理:可以方便地安装、切换和卸载不同版本的软件。
  6. 安全可靠:所有软件都经过审核,杜绝恶意软件。
  7. 开放生态:允许第三方源,就像 brew 有官方源和社区源一样。

微软已经在正确的道路上了。winget 是一个很好的开始,但还不够。它需要成为 Windows 的默认安装方式,而不是一个“可选的工具”。

Microsoft Store 也需要进化。它不应该只是一个“应用商店”,而应该成为一个“软件管理中心”。它需要整合 winget 的能力,提供图形化的操作界面,同时保持命令行的灵活性。

在中国市场,微软需要更多的本地化投入。不仅仅是翻译界面,更是要理解中国用户的需求,与本土的软件分发平台合作,共同打造一个健康的生态。

我们开发者需要的,不是一个“兼容”的系统,而是一个“进化”的系统。一个能让我们专注于创造,而不是浪费时间在繁琐的安装配置上的系统。

Deepseek在2025年春节火爆中国,也引爆了世界对于DeepSeek R1的关注, 实际上,有一个事实是,DeepSeek的火爆,一部分原因是它吃下了 ChatGPT 的攒下来的流量,ChatGPT并不对中国提供,普通大众难以访问,而DeepSeek 则可以方便的被中国每个人下载安装,软件的分发便利性其实是一个非常重要的商业构建的考量。

所以,不要轻视一个软件的安装。