大家好,我是捣演。

昨晚正准备睡觉时看到微博上又在吵 Mac 是不是生产力。一个没忍住码了一条长微博分享了自己的一些体验。想了想发现正好可以整理一下投个稿。于是就有了这篇文章。

注意,这里并不想争论 Mac 到底是不是生产力。只是分享一些我用 Mac 以来从事过的工作、遇到的问题以及解决办法。

本文写于 2018 款 Intel i7 的 13 寸 MacBook Pro 上。正好也可以作为一个快照,等我的 M1 Max 到货之后再回来看看有什么不同。

一、

我从 PC 迁移到 Mac 是 2012 年。说来搞笑。虽然我大学修的是数字媒体艺术,但开始用 Mac 的契机却是寒假去了一家创业公司写 Node.js,那家公司为所有员工标配 Mac mini —— 更搞笑的是,这家公司允许我开学后把 Mac 带回学校,继续远程打工。于是我的大学生活就这么 Mac 了。

要说这一时期的唯一不适,稍微回忆了一下,也只是我之前熟练的 3ds Max 没有了。不过我的专业课里要学的是 Maya,而 Mac 上正好也有 Maya,所以没啥问题。Adobe 全家桶就更不用说了。在我大学的这段时期,Mac 剪个 1080p 的片子是没啥问题的。不过这段时期与其吹 Mac,倒不如说是我当时自己的 PC 配置太垃圾(奔四 1.8G 🤣)。

二、

后来公司给我换了台初代 13 寸 Retina MacBook Pro,继续带回学校白嫖。这段时期干过最大的项目,是 2015 年的时候做了一场学校音乐节的拍摄,12 个机位的后期剪辑。这里说回来,M1 出来的时候大家在吹它可以同时剪辑多少轨视频——其实多轨剪辑向来不是一个从无到有的「质变」,只是效率的提升而已。在 2015 年,也能做,无非是需要做代理(也就是让剪辑软件自动给你把素材转码成低分辨率的格式,最终输出的时候再自动套用原始质量的素材),这在 FCPX 上也不是什么难事。当然,你说 M1 Max 可以不用代理直接干,那当然是更好的事情。

音乐节上,插了个声卡做分轨录音

大学后半段做了一段时间的 Android App,也是官方支持的,没出啥岔子。就不展开了。

三、

毕业后也跳槽了,大概 2016 年的时候自己花钱买了一部也是 13 寸的 MacBook Pro,16G RAM 的。这段时期,Android App、Web 前端、后端、React Native 都有做。也不是事。多了个乐子是玩 Minecraft,作为一个 Java 游戏,也不是事。

也大概是这个时期,入坑做 Android 系统开发。彼时 AOSP 是支持在 Mac 上编译的。应该说,作为一个 BSD 家族成员,macOS 很多软件其实是和 Linux 生态是相通的。甚至为了编译 AOSP,我系统上有一些命令(coreutils,findutils,sed,tar,curl,openssl 等)都通过 Homebrew 由 BSD 版本替换成了 GNU 版本。

比较大的变化发生在 Android 9/10 的开发上。这时候 Google 开始在 Android 上推行 A/B 升级,而 AOSP 中生成 A/B 更新包涉及到的一些工具并没有提供 Mac 支持。当然了,这个问题后来也被我硬是给这些工具都适配 macOS 解决了(虽然 macOS 和 Linux 都是 POSIX 兼容的,但并不是所有开发者都会完全使用纯 POSIX API)。

遗憾的是,Android 11 开始谷歌已经把 macOS 支持去掉了。不过现在我已经不接触 Android 开发了,影响不大。

咦?我大学不是学的数媒么?这个说来话长了。不展开。

四、

前年开始,我去了一家硬件公司。这下好玩了。

敝司最早做的嵌入式软件,只支持 Windows 下 Cygwin 里编译。这段时期我干活基本上就用 Parallels Desktop 把工作目录共享到 Windows 虚拟机里,利用 PD 的融合模式开个 Windows Terminal 执行编译脚本(一个 .bat 批处理)。写代码还是在 Mac 下。

后来忙了几个项目之后终于抽出时间了,搜了一下发现这个方案的原厂其实提供了 Linux 的工具链(但是没有 Mac 的)。于是用 .sh 重撸了一版 for Linux 的构建脚本,再用 Docker 封装了一层环境,于是就可以在 Mac 下跑完整个工作流程了。

再后来自己也开始做一些硬件。你要说专业的话,Mac 上当然是没有 Altium Designer 和 SolidWorks 之类的软件的。但我觉得这是个伪命题:对于专业用户,这些软件应该是作为生产资料连电脑一起由公司提供的。这是一个先有需求,再选软件,再选硬件平台的过程。跟我自己个人电脑用的是 PC 还是 Mac 有什么关系呢?

就目前来说,我画 PCB 用的是 KiCAD,做结构用的是 Fusion 360。都是免费,都是跨平台。对于个人使用,是极好的。

一个鸽了的项目
之前设计的一个小硬件,有空再展开讲讲

这个时期我也开始遇到性能瓶颈了。具体来说就是换了一台 DELL U2720QM 的 4K 显示器,发现 Chrome 全屏滚动会有明显掉帧。而 KiCAD 和 Fusion 360 在 1080p 显示器上还好,在 MBP 自己的 Retina 屏或者在 U2720QM 上也会明显掉帧。于是有买了个 RX 5700 XT 的外置显卡。

对了,最近也开始玩一点游戏。当然看到这里你也会发现我本来就不是喜欢玩游戏的人。所以玩的也就《信号法则》《深圳 I/O》《都市:天际线》这几个。

前段时间在深圳出差期间把《深圳 I/O》第一章打通关了。然后鸽了…

总、

对我来说,我的绝大部分需求都能直接满足(比如 QQ,比如 Microsoft Office,比如 Adobe 全家桶)或者能找到替代品;有一些自己能力范围内能造轮子的,也算是给生态做贡献。至于 Mac 不能做的,跑虚拟机的体验也不差。作为开发者,和 Linux 的互通性也是很舒服的一点。

你要问我 Mac 上有什么痛点?还是有的:

1. 我刚开始用 Mac 那会儿,它甚至不支持在外置屏幕上显示状态栏(当然现在可以了);

2. Windows 上把窗口贴边可以很方便对齐排列成二等分、四等分布局,而 macOS 类似功能只能全屏模式下分割(而因为一些体验问题,我几乎不会在 Mac 上全屏使用任何软件);

3. macOS 的 Finder 始终没有 Windows 资源管理器那么强大(甚至没有文件夹缩略图 —— 哦,听说 Windows 11 也没有了)。

以上就是我的分享,欢迎讨论。第一次投稿,见笑。