引:
MacBook based on M1发布已有大约两周。
目前已有大量实测表现了M1芯片配合macOS Big Sur在日常使用,视频剪辑,图片编辑,音频处理,甚至部分游戏(古墓丽影)的恐怖性能。M1在这些方面配合macOS吊打i9可能真的不是吹的
但是开发者和计算机专业学生所考虑的并不只是这些,接下来汇总一下我这几天从各种来源搜集到的M1 MacBook在相关使用场景的表现
绿色标注即表示此处无坑请放心食用
红色标注即表示此处有坑请三思后行
目录
1. VS Code
2. Web Dev 前端
3. Android Dev
4. .net core
5. homebrew包管理
6. 系统级虚拟化
7. Python 3.9
8. Java with IntelliJ IDEA
1. VS Code
VS Code应该算是无人不知无人不用的代码编辑器了。想必大家关心的首当其冲便是VS Code在M1 MacBook上的兼容性了
VS Code本身目前并未更新原生支持M1的版本。目前提供给macOS最新的stable build依然是x86_64版,所以首次运行必然需要Rosetta完成一次转译。从相关评测来看,Rosetta转译后的VS Code本身在M1 MacBook上运行相当流畅,除了首次运行需要大概半分钟的启动(Rosetta的转译过程),之后的运行并无二致。
2. Web前端
Web前端开发似乎可以放心的入手M1 MacBook,node.js和npm在M1 MacBook上的运行似乎和Intel MacBook没有什么区别。
油管作者DevChannel制作了一个实测视频,利用git clone了一个项目(Total 789 (delta 431), reused 605 (delta 251), pack-reused 0)到M1 MacBook上,证明了git在M1上可以正常运行(意料之中)。
接下来成功的完成了一次npm初始化(added 2030 packages from 921 contributors and audited 2030 packages in 35.521s)。证明了npm在M1上的正常运行。
执行npm run build,成功
执行npm start,成功
3. Android 开发
安卓开发肯定要用到Android Studio,Android Studio的运行出现了严重问题
Android Studio自身的安装似乎没有任何问题, 但是在安装components时出现了无法安装Intel HAXM的问题(意料之中)
该components主要功能在于优化虚拟化的运行速度,依赖Intel VT-x的Hardware level Virtualization。显然M1是不可能支持的。
无法使用HAXM对功能理论上没有影响,但是对速度的影响十分严重。Android studio也并没有给出十分可行的解决方案(四个,都是在搞笑的,比如用另外一台机器做testing,还有一个更搞笑,让你开个可以运行在ARM处理器上的安卓虚拟设备,并且告诉你会比HAXM慢10倍)。。。
从油管博主的演示视频来看,虽然没有HAXM理论上对功能没有影响,但在完成安装后的使用情况来讲,可以说根本无法使用。创建项目还好,可以正常创建,且并没有看出和Intel MacBook的明显速度区别。然而刚点击“文件”时就开始大风车转呀转。下方状态栏显示Indexing,且十分缓慢,在初始化过程中前台耗时最长的是gradle,从创建项目到左侧项目文件面板正常列出所有文件为止,共耗时超过3分钟,并且至此,还有两个进程在后台运行。这种龟速我反正忍不了。点击显示正在运行的两个进程,竟然发现这么长时间过去了,Android studio还在对文件进行indexing,以至于项目run都run不了。最终在五分钟左右的时候indexing才完成。
此时终于可以尝试运行项目,点击run后,gradle开始build,build目标为pixel_3A_API_30_x86。该过程耗时将近两分钟,不过最终还是完成了。
折腾了这么半天,最终却不能运行。在virtual devices列表里找到生成的虚拟设备后,点击运行,失败,提示无法启动AVD。
不要忘记,上述整个过程还只是一个刚创建的模版项目,可以想象如果是一个稍微有些功能的项目,会是多么惨不忍睹。
4. .net core
油管上看到一个运行.net webapp的演示视频,从演示来看,.net在M1上运行正常,所以.net开发者似乎可以放心使用
5. Homebrew
Homebrew 算是macOS上的apt了,很多功能用homebrew安装是真的省心,然而
"Homebrew is not (yet) supported on ARM processors!"
这是homebrew安装时蹦出的第一句话,告诉你homebrew目前暂时不支持ARM处理器。不过接下来也告诉你确实可以在Rosetta下安装。具体效果未知,目前只找到了这一个讲homebrew的视频,并没有完成安装。
Homebrew确实也给ARM处理器的设备提供了一个选项,不过翻译过来是这么说的“如果你知道自己在干啥,并且做好了毫无游戏体验的准备,那你就试试这个吧”(链接我就不提供了)
Homebrew的问题似乎不是特别严重,至少可以看出Homebrew已经将适配M1 MacBook的计划提上日程,也许过不了多久就能看见可以在M1上运行的Homebrew了呢
6. 系统级虚拟化(Docker)
这。。。。。
Docker不想理你,并向你抛出了异常
7.Python 3.9
Python 3.9自身可以在M1下正常运行,第三方库的测试目前没有找到。
有些人可能喜欢用PyCharm,但是实测表明PyCharm无法正常使用。所以,如果你不是PyCharm用户,很幸运,目前为止没发现什么坑。
8. Java with IntelliJ IDEA
我没有找到一个实际项目的实测,只找到了一个Hello world的演示
从结果来看,是好的,可以证明,在不涉及内核级操作,没有外部库的情况下IntelliJ和Java都可以在M1上正常运行。
总结
对于靠敲代码吃饭的人来说,M1 MacBook显然是没有准备好成为一个合格的生产力工具的。目前来讲,M1只有在最基本的一些开发场景能做到在功能上与Intel based无异。而稍微复杂一些的场景可能就会出现各种问题。
对于相关专业学生来说,M1 MacBook的问题似乎没有那么严重,不过依旧不推荐购买。个人建议,在学习过程中,老师让你怎么配置开发环境,你就怎么来,除非,除非你真的知道自己在干什么,而且你有能力识别开发环境不同导致的结果差异(我不认为大多数学生具备识别并理解处理器架构不同这种程度的开发环境差异所导致的结果差异)。
我的建议是,等待明年的M2芯片,并且祈祷绝大多数开发工具能兼容Apple Silicon芯片。