程序员的成长之路

互联网/程序员/技术/资料共享

关注

阅读本文大概需要 3.5 分钟。

来自:量子位

MacBook换成ARM芯片后,它还是程序员的开发利器吗?

经过国外程序员半个多月来的尝试,一些常见开发工具的兼容状况也得到披露。

Xcode、VS Code、Homebrew……等常用工具能够完美运行吗?如果你还在因为这些问题犹豫要不要买,那么看了这篇文章或许能得到答案。

代码编辑器

Vim是通用二进制文件,因此它已经能在M1上直接运行。

VS Code可以通过Rosetta 2转换来运行,而insider版已经原生支持ARM平台的MacBook,相信正式版也不会太遥远。

Xcode

苹果第一方开发工具Xcode自然不必担心兼容性,而且它在M1芯片上的运行效率很高。

编译PSPDFKit PDF SDK,在2019年16英寸MacBook Pro上耗时7分31秒,在M1版MacBook Air上则耗时8分49秒,而后者是无风扇的。

不过Xcode在测试低于iOS 14版的应用程序时,会出现一些问题。WebKit会在内存分配器中崩溃,Xcode有时会定期卡死。

因此如果你要测试较低iOS版本程序,还是在Intel版的MacBook上运行,或者希望下一次Xcode更新时,苹果能解决这个问题。

Docker

现在Docker无法在M1芯片上运行,也无法通过Rosetta 2转换的方式使用Docker Desktop。

但是同样使用ARM芯片的树莓派却能做到。

所以在MacBook上运行Docker最好的方法是:运行ARM版Linux虚拟机,在虚拟机中运行Docker。

具体操作方法请参照这篇教程:
https://finestructure.co/blog/2020/11/27/running-docker-on-apple-silicon-m1

至于Docker官方何时将提供支持,可以注册Docker ID来获取最新进展。

Homebrew

Homebrew可以通过Rosetta 2转换的方式进行安装,方法也很简单,只需在过去的安装命令前加上arch -x86_64即可。

$ arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

这种通过转制的Homebrew在某些软件上可能有一些兼容性问题,因此建议安装另一个手动编译版:

$ sudo mkdir -p /opt/homebrew
$ sudo chown -R $(whoami):staff /opt/homebrew
$ cd /opt
$ curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew

第一种方式安装的Homebrew在/usr/local/bin目录下,而第二种方式安装的在/opt/homebrew目录下,后者不会自动添加到PATH环境变量中,因此需要手动设置:

export PATH="/opt/homebrew/bin:$PATH"

这样,你的Mac里就有了两个Homebrew:一个是Rosetta转换的,一个是原生的。原生的目录在前面,那么brew命令将默认运行这个版本。

如果想运行Rosetta转换版怎么办?我们可以单独设置一个ibrew命令:

alias ibrew='arch -x86_64 /usr/local/bin/brew'

目前,Homebrew尚未提供用于ARM Mac的预编译软件包,因此最好使用brew install -s 命令进行安装。

具体有哪些软件包不兼容,可以到GitHub项目页的issue中查询:

https://github.com/Homebrew/brew/issues/7857

其他常用软件

说到编程必备,怎么能少得了Chrome,现在Chrome 87版已经开始支持M1版的MacBook。

还有微软的Office三件套,若使用Rosetta 2转译,启动时间可能需要20秒。官方建议安装针对macOS Big Sur优化的16.43版。

微软官方表示,已经开始将Mac应用程序迁移到通用二进制文件,未来Office三件套的兼容性不成问题。

如果是基于Electron的应用程序,经过Rosetta 2转译后速度会变得很慢。原因可能是V8 JavaScript编译器似乎阻止了提前翻译。

现在最新版的Electron(Version 11)已经支持了M1芯片,还需要等其他开发者更新软件。

由于Rosetta 2转译的程序会变成只读文件,因此自动更新将被禁止,此类程序需要用户手动更新。

虚拟机和Windows

虽然VMware和Parallels可以在M1芯片的MacBook上使用,但是所有Mac虚拟化解决方案均不支持Apple Silicon。免费开源的虚拟机Virtualbox更是无法运行。

现在ARM版Windows可以仿真x86应用程序,而微软正在研究x64仿真。

最近模拟器软件CrossOver展示了在Mac上运行Windows软件的能力,但这只是运行单个程序,而非运行虚拟机和整个系统。

而且M1最高只支持16GB内存,对虚拟机来说显得有些捉襟见肘。

在运行并行测试时,Mac开始大量在硬盘和内存之间进行数据交换,性能确实下降了。对于运行的虚拟机,这会带来更多的问题。

结论

新款搭载M1芯片的MacBook速度快、运行安静,但是在软件方面还需要做很多工作,才能赶上搭载Intel芯片的MacBook。

你可以拿它作为第二台开发电脑使用,如果作为主力开发机,可能会遇到这样那样的问题。想要更好的兼容性需要等到明年软件厂商更新,或者是M2发布。

另外,最高16GB的内存对程序员来说可能还是不够,希望未来的Mac有32GB内存可选。

参考链接:
https://news.ycombinator.com/item?id=25238608
https://steipete.com/posts/apple-silicon-m1-a-developer-perspective/
https://soffes.blog/homebrew-on-apple-silicon
https://github.com/mikelxc/Workarounds-for-ARM-mac

<END>

推荐阅读:

入职腾讯第九年,我辞职了

手写RPC框架,理解更透彻,代码已上传Github!

5T技术资源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,单片机,树莓派,等等。在公众号内回复「2048」,即可免费获取!!

微信扫描二维码,关注我的公众号

朕已阅 

用 M1 MacBook 当主力开发机:程序员使用半个月后如是说相关推荐

  1. 程序员用 M1 MacBook 当主力开发机​是什么体验?

    转自:量子位 MacBook换成ARM芯片后,它还是程序员的开发利器吗? 经过国外程序员半个多月来的尝试,一些常见开发工具的兼容状况也得到披露. Xcode.VS Code.Homebrew--等常用 ...

  2. 识别喜欢开发的程序员

    识别一个程序员是否喜欢开发,在你遇到下面的情境时特别重要: 你要招募小伙伴 你要选择结对的开发人员 你想变得更好更强大(与优秀的人在一起事半功倍) 研发新产品,你要从公司内部抽调人手组建团队 你想判断 ...

  3. 基于 C# 和 js 开发的程序员升职记 remake 版

    基于 C# 和 js 开发的程序员升职记 remake 版 截图 视频 开发中用到的知识 项目地址 相关项目 Demo 截图 视频 基于C#和js的程序员升职记remake版 开发中用到的知识 vue ...

  4. Android开发之程序员必须要懂得Android的重要设计理念2(5.20更新版)

    上篇文章介绍了Android开发的设计理念的一部分,并没有得到博友们的多大认可,只看到了一位博友在下面留言期待下一篇文章的发表,为了这小小的唯一支持,我决定继续把后面的8个要点介绍一下,自己也潜心反省 ...

  5. 做了8年游戏开发的程序员对未来的忧虑

    编者按:这位做了8年游戏开发的程序员的忧虑或许不是个例,也可能是我们许多人正在经历或者将要经历的一个人生迷茫期.鉴于此,希望他的忧虑和对未来的思考也能对你在现在或者将来的选择上有所帮助. 我 22 岁 ...

  6. 踢翻这碗狗粮:程序员花 7 个月敲出 eBay,只因女票喜欢糖果盒!

    作者 | 年素清 责编 | 伍杏玲 出品 | 程序人生(ID:coder_life) eBay作为全球电子商务领头羊,是世界最大的市场和成功的在线公司之一,无数创业者通过在eBay的网上销售成就自己的 ...

  7. 《程序员的自我修养》后感【1】

    阅读<程序员的自我修养>后感,自我感觉对计算机内部的运转有了一个更清晰的认知. (我想用我的生活实例去结合这本书的知识,如若出现错误希望能够指点一二.谢谢!) 在我第一次接触计算机的时候, ...

  8. 吐槽java之《程序员的呐喊》读后总结

    <程序员的呐喊>读后总结 --关于java的批判 一.写在总结前面的一些废话 <程序员的呐喊>(后文简称呐喊),是一本非常有趣的散篇,全文都是作者对目前软件开发界的看法,主要翻 ...

  9. 程序员带半箱辣条参加东京奥运,网友:这不是辣条,是狗粮!

    整理 | 王晓曼 出品 | 程序人生(ID:coder _life) 7月23日,东京奥运会开幕在即,一条#程序员带半箱辣条参加东京奥运#的消息登上微博热搜,引发了网友们的热议. 程序员自带辣条参加奥 ...

最新文章

  1. 重磅日程公布!与百名大咖在线交流技术,2天20个AI论坛不可错过
  2. 网络通信程序做个瞬间的扫描判断
  3. matlab调用c函数语言,MATLAB调用C/C++函数的方法
  4. PHP设计模式系列 - 数据访问对象模式
  5. 【计算机网络】许多信道不能传输低频、直流分量的原因
  6. 有关二叉树方法java实现
  7. PowerVim - 强大的vim配置
  8. springcloud-config-client的那些坑
  9. 【Python】勒索病毒模拟
  10. 在线古诗自动生成器的设计与实现
  11. 赵鑫:强化学习在京东广告序列推荐中的应用
  12. [乐意黎转载]Sublime Text 有哪些使用技巧?
  13. 004.python基础知识之基本数据类型及基本运算符
  14. 快速排序(划分函数partition和主元pivot选取)
  15. uva 10859 放置街灯--Placing Lampposts
  16. 北川中学教师群体:一切都是为了学生
  17. 第六届高分子材料国际研讨会(PMS-BT 2019)
  18. 苹果手机解压缩软件_解压缩全能王app下载-解压缩全能王app手机版
  19. C语言绘画玫瑰花和爱心
  20. 【MindSpore易点通】安装教程

热门文章

  1. 写一副对子_一副对子的传奇故事
  2. 【转载】nuke命令行渲染方法-多线程渲染!
  3. connect 连接超时
  4. 工程项目成本为什么总是管不住?关键在管理方式
  5. 求1到100之间所有能被3整除的整数的和
  6. jQuery源码解析(架构与依赖模块)
  7. linux下socket编程(基础参考)
  8. apache、php安装
  9. shell 中的单行注释和多行注释
  10. Tuxedo-下载与安装1