看网上很多言论盛赞 M1 的兼容性,买之前我搜了下 B 站相关视频https://www.bilibili.com/video/BV1TK4y1L7DU (只是用作举例),觉得兼容性还不错
到手后用了一周发现是过于乐观了。
M1 对 X86 二进制文件的兼容性挺好,现在很多 App 甚至都有原生 ARM 版本。所以很多 app 和 x86 二进制文件都能完美运行。主要的问题出在涉及**C/C++**的编译流程上,老版本库尤其如此。在网上看到的很多人说 M1 兼容性好的操作是使用最新版。不得不说开发者社区很热情,很多开发工具 /库的最新版已经完美适配了 M1 。安装和使用都没有问题
老版本就是另外一种情况了。若干年前应该不会有人想到自己写的针对 X86 构建流程,有人会尝试在 arm 上去构建。所以涉及到**C/C++**编译的老版本软件很有可能会构建失败
我尝试安装 ARM 版的 python, 3.7 以下的版本还没有安装上。对老项目执行了pip install -r requirements.txt  numpy,scipy,pandas,cryptography 等接近十个涉及到 C 的库全部不兼容,惊奇的是把这些库升级到最新版都能正常安装,只有一个库不支持, 但是也有人放出了支持的 wheel 包。最后要想使用这些库,我还得对升级后项目做一个大测试
设想一下,以前用 x86 ,很多 github 项目拷贝下来就能正常运行的,用了 M1 后可能就不行了~~
因此个人还是觉得 M1 适合视频工作者 /移动端,前端开发人员。他们的工具不太涉及到老版本工具的 C/C++构建流程
综上,我在办公室放了一台台式机,安装了 Exsi, 虚拟了 ubuntu 和 windows ,ARM 不支持的时候走远程开发流程
用了一下 jetbrains gateway ,可惜,体验并不好
希望各位开发大佬下单的时候考虑一下自己工作流的兼容性,尤其是老项目的兼容性
也希望远程开发工具能给力啊,毕竟谁不想拿个轻薄本连强大的服务器远程开发呢~~~
|      1Jooooooooo      2021-11-20 14:28:25 +08:00 我旧版本的 mac 升了个 monterey 还有好几个软件都失效了 | 
|  |      2qdwang      2021-11-20 14:28:28 +08:00 不兼容的东西是有很多。。。不搞视频的。。。还不如等 12 代酷睿笔记本。。。。而且 macbook 现在笔记本都沉的像石头。 | 
|      3wangkun025      2021-11-20 14:28:49 +08:00 想一下大家都有兼容性问题,就看开了。 ubuntu 也跑不了很多 Windows 程序。Windows XP 也跑不了一些 Windows10 的程序。 | 
|  |      4F281M6Dh8DXpD1g2      2021-11-20 14:33:38 +08:00  1 我都用了一年了,毫无问题 | 
|  |      5aec4d OP @wangkun025 不是这样的,苹果开发 x86 生态经营了很多年,很多库都是完美兼容 x86 ,所以很多开发工作在苹果 x86 上没有阻碍,但是切换到 M1 部分老库可能就有问题了。此时个人是没办法解决的。选择合适自己当下工作流的生态,切莫单纯认为 M1 能完美兼容以前的 X86 | 
|      6wangkun025      2021-11-20 14:40:47 +08:00 @aec4d 有一些在 X86 上也有问题的。比如无法安装某个较老版本的软件,原因是 xcode 提供的库的版本太新了。 我使用过一段时间 M1 ,没遇到任何问题。 当然不是说 M1 没问题。 但我还是建议升级。对我来说,效率远远大于那点兼容性。 | 
|  |      7cheng6563      2021-11-20 14:46:33 +08:00 换个思路,Mac 本来就升个大版本一堆不兼容的,这样用 M1 不就是正好。 | 
|      8fireleaves      2021-11-20 14:47:41 +08:00 goalng 开发,用到了 cgo 以及一些 lib 库,有一些通过 brew 安装之后即可直接使用,也有一些偏门的需要自己编译,折腾了一天,现在所有的依赖都解决了。 结论:确实是做不到和 x86 一样的开箱即用,但是问题不大 | 
|  |      9Aviciii      2021-11-20 14:53:20 +08:00 低端码农,目前还没遇到兼容性问题,就是感觉系统有些不稳定 | 
|  |      10ZeoKarl      2021-11-20 14:57:09 +08:00 via iPhone  9 我认为只要新版的能兼容就好了,你要求几年前甚至十几年前写的东西适配未来的东西不现实啊🧐 | 
|  |      11jfdnet      2021-11-20 15:06:34 +08:00 macos 的向后兼容性都差的一 p 不要说这都硬件换架构了。不适合自己的东西不要买。 | 
|      12yangzzzzzzzt1      2021-11-20 17:15:05 +08:00 兼容性感觉是个大坑,很多陈年老库不知道有多少暗坑等着踩,可能我下一个笔记本会投奔 windows 本 | 
|  |      13disk      2021-11-20 17:42:08 +08:00 能兼容最新的就不错了,我听人谈到过个别库 x86 版免费,arm 要收费,不知道是不是真的 | 
|  |      14aec4d OP @nieyujiang 如果继续用 x86 ,那就是兼容几年前甚至十几年前写的东西啊 | 
|      16Biggoldfish      2021-11-20 18:12:29 +08:00  5 @nieyujiang 说得好,于是 Apple 的工厂里得用 Mac 装着 Windows 来制造 Apple 设备,那些辣鸡工业软件竟然不每年都更新来适配高贵的又带来 breaking change 的 Mac OS 成何体统 | 
|  |      17niubee1      2021-11-20 19:08:11 +08:00 python2.7 编译成功了的 | 
|  |      18tmux123      2021-11-20 19:13:58 +08:00  2 以稳定性为理由不升级依赖版本,就要有对应的觉悟,毕竟社区没有义务去做兼容 /移植。 见过有的前端项目为了保证一致性,整个 node_modules 提交到 git 仓库里,限制死 nodejs 版本,只能用 windows 开发。有条件的用远程服务器,虚拟机环境都是一模一样的。 不过话说回来,技术债迟早要还的,这是是 M1 ,下次肯定还会有别的东西。 | 
|      196i3BMhWCpKaXhqQi      2021-11-20 19:22:59 +08:00 好虚,python 哪个库,具体哪个应用不能用,或者慢,能清楚一点吗? | 
|  |      20zhouwb      2021-11-20 19:26:56 +08:00 via iPhone  7 这是常识吧?毕竟平台换了,软件一定要适配,就算 x86 架构也有很多软件需要适配新系统,再说 windows 也有这个问题了,win11 就有很多兼容性问题啊,大家所谓的兼容大多数软件,当然指的是新版本适配后的,不会是旧版本,既然楼主还在用很多旧版本东西,就不该买 arm 架构,要么 win 本要么 intel 版本的 mac ,但是也大概率会遇到兼容性问题,时代在进步,不可能停滞不前,也不可能永远向后兼容,当初 windows 的向后兼容导致系统臃肿无比,各种无用东西充斥系统,是我当初抛弃 win 的原因之一,至于旧东西就该用旧设备来,比如我们单位还有 win2000 的系统,软件无法升级,只能找旧机器做 win2000 来运行,最后奉劝所有人,任何一个东西都不适用所有人,买之前考虑好自己的需求,防止后悔,装逼的当我没说 | 
|  |      21bipy      2021-11-20 19:32:44 +08:00  1 Python 推荐换用 miniforge 来管理依赖,https://formulae.brew.sh/cask/miniforge  可以解决一些 pip 无法安装的包比如 scipy 目前遇到的无法安装且无法替代的包只记得有 z3-solver | 
|      22explorerproxy      2021-11-20 20:19:23 +08:00 我 typc-c 转 hdmi2.1 都有问题 | 
|  |      23lululau      2021-11-20 20:22:26 +08:00 都是讨论软件是不是兼容特定硬件,M1 哪来的兼容不兼容之说😂 | 
|  |      26aec4d OP  1 @zhouwb 是的,想清楚很重要,我只是觉得网上对 M1 的兼容性过于乐观了。即使新版本已经对 M1 做了兼容,但是大项目开发很多时候新版本不是想上就能上的 | 
|  |      27coolmint      2021-11-20 22:04:18 +08:00 做 Android, iOS, Flutter 的下个月收到货后试试,希望没有太大问题,当然视频生产力也是我最看重的一点。 | 
|  |      28zhouwb      2021-11-20 22:11:33 +08:00 via iPhone  1 @aec4d 非常赞同,即使是做新的东西,研发的基础组件也未必都是新的,这里面不光是开发的问题,还牵扯到人财物等很多问题,尤其是大项目,真的不是说换新就换新啊 | 
|      29berchtesgaden      2021-11-20 22:44:28 +08:00 @Biggoldfish 好奇,是 Apple 的工厂,还是富士康的工厂? | 
|      30berchtesgaden      2021-11-20 22:46:58 +08:00 看完楼主的长篇大论,感觉是 M1 Mac 作为刚刚发布一年的新架构电脑,兼容性真好。 | 
|      31wishyy      2021-11-20 22:53:39 +08:00 @Biggoldfish 说一万遍了不嫌腻吗 | 
|  |      321002xin      2021-11-20 22:54:41 +08:00 我以为自己回到了十几年前 | 
|      336i3BMhWCpKaXhqQi      2021-11-20 23:01:58 +08:00 什么时候技术讨论都走意识流了? 没人否认 M1 的问题,我也遇到了一些,但空对空的没什么意义。 blocked ,不用再回我 | 
|      34gjquoiai      2021-11-21 00:22:57 +08:00 emm 我只好说你对自己的开发环境了解不够,或者说没有事先测试过 arm 架构 | 
|  |      35ganbuliao      2021-11-21 02:20:02 +08:00 用了半年是有一些兼容性的问题,但是用作开发环境的话还好大部分都能解决 | 
|  |      36Vegetable      2021-11-21 02:26:20 +08:00 感觉很多人没抓住重点。 你买个电脑,公司的代码不能运行,你能擅自切换依赖到最新版吗 | 
|  |      37ophunter      2021-11-21 03:06:36 +08:00 心疼楼主,楼主碰到脑残了 | 
|  |      39minamike      2021-11-21 06:29:53 +08:00 via iPhone 只能说没你自己想的那么好  对大多数 intel 芯片 mac 转换过来的用户来说兼容性挺好的了 | 
|      40holulu      2021-11-21 06:47:15 +08:00 兼容性好不好应该是根据自己的使用场景决定的吧,跟其他人有什么关系? | 
|  |      41sidkang      2021-11-21 07:38:46 +08:00 是的,同意楼上的意见,楼主不妨对自己涉及到不兼容的库都列一列更有意义,并且不兼容是指 arm 运行,还是 rosetta2 运行也失败,也可以说说看~ | 
|  |      42hello2090      2021-11-21 07:55:56 +08:00 @Vegetable 公司的代码不是用公司的电脑开发的吗?为啥要自己买?公司的程序 m1 上跑不了公司会给你 m1 吗? | 
|  |      44MengiNo      2021-11-21 08:50:18 +08:00 via Android  1 不是很明白这种技术债务为什么要赖工具。就好比买了个 win11 电脑跑不起 金庸群侠传 要怪电脑不兼容一样。 | 
|      45All2B9S      2021-11-21 08:51:03 +08:00  1 兼容性确实是个问题,我就是因为学长和教授说 arm Mac 有兼容性问题最后买的二手 Intel Mac 。个人认为这应该是现阶段的最优解了。二手不贵,性能也够用,应该能挺到 arm Mac 解决所有兼容性问题的时候。 | 
|  |      46lucifer9      2021-11-21 09:00:42 +08:00 有没有试过用 `arch -x86_64` 来跑 | 
|  |      47aec4d OP  3 好家伙,很多人理解的兼容性就是新版本适配了 M1 ,那就是兼容性牛逼了。再下佩服!还有说技术债的,我一个搞开发的,一个项目依赖上百个库,人力也有限,我还要追着更新库的版本?但愿你们在使用的过程中不会遇到一定要用旧版本才行的时候,即使遇到了你也能自己解决 | 
|  |      49loading      2021-11-21 09:13:08 +08:00  2 从回帖上还是看到盲目的果粉,兼容性都不谈就光说升级,如果一台电脑连主人的主要业务都无法支撑,要来干啥? | 
|  |      50loading      2021-11-21 09:20:05 +08:00 同一台 m1 ,一千个用户就有一千多哈姆雷特,我是在等我的工具链适配好才会升级,要么就是工作换了,工具链能在 m1 跑了。说到底这台电脑只是工具而已。公司旧业务跑在旧平台,支撑几千万资产的业务,谁能随口就换掉? | 
|  |      51ColorfulBoar      2021-11-21 09:22:15 +08:00  6 推荐 Mac 用户熟练掌握 doublethink: x86 应用能跑 -> Rosetta2 很强大 x86 应用不能跑 -> 开发者适配不行 同理: macOS 应用运行飞快 -> MacBook 性能好 macOS 应用运行缓慢 -> 开发者优化不行 | 
|      52kunkunzhang      2021-11-21 09:47:38 +08:00 前端还好,我用 m1 超过半年了基本没啥问题,后端涉及到编译的东西感觉还是差点意思 | 
|      56pupboss      2021-11-21 10:24:50 +08:00 via iPhone  1 你喷的点不对,兼容性问题大不了找替代品,大不了找旧机器。而 M1 目前我认为最大的问题是莫名其妙死机,莫名其妙紫屏,运气好的时候一周一次,运气不好的时候一天三次 | 
|  |      58felixcode      2021-11-21 10:53:30 +08:00  2 基础库的兼容性问题客观存在,楼上这些人就别误导没买的人了。 难不成到时出了兼容性问题,骂公司骂领导骂项目?骂技术债? 或者到时一个个 @你们这些人找解决方案? | 
|  |      59Leonard      2021-11-21 11:17:30 +08:00 买前了解一下自己需要的工具支持情况怎样再买吧,M1 体验再好,用不上也是白说 | 
|  |      60ruib      2021-11-21 11:49:23 +08:00 via iPhone 用到的库多了确实难免遇到兼容性问题,像 pyOpenSSL 的 native 版就用不了。目前是另外用 Rosseta 版 Terminal 单独配了一套开发环境,没遇到兼容性问题了,楼主可以试试 | 
|  |      61ngn999      2021-11-21 11:53:20 +08:00 现在最常用的软件还没支持 Apple Silicon 的有: Dropbox, Discord, Binance, Alacritty. 其他的都没问题了. | 
|  |      62lucifer9      2021-11-21 11:59:31 +08:00 各位如果是用公司给配的电脑,公司允许换 M1 了,然后出现各种兼容性问题,那该骂 IT | 
|  |      64736531683      2021-11-21 12:09:08 +08:00 你列举的这些难道不是 arm 的问题? arm 的 pip 是有专门的源的,或者我推荐你安装 miniforge 之类的。arm 端确实很多坑,不过未来是趋势,移动设备都兼容 arm | 
|  |      65devinww      2021-11-21 12:13:46 +08:00 每个人的情况不同,也不好说啥,目前个人 java 反正感觉没啥问题 | 
|  |      66felixcode      2021-11-21 12:21:57 +08:00 via Android @lucifer9  所以作为公司 IT ,有点脑子的就应该只让公司里用 intel ,谁让用 m1 谁 SB ,或者谁要用 m1 就去签个免责声明。 | 
|  |      67janxin      2021-11-21 12:27:10 +08:00 其实主要是你不能假定开发者在开发的时候能预想到之后自己的程序最终要跑在 ARM 上...很多还有老版本不兼容 Windows 的呢... | 
|  |      68oscargong      2021-11-21 13:31:50 +08:00 Python 试试 conda-forge | 
|  |      69shadownet      2021-11-21 13:44:36 +08:00 @wangkun025 兼容性和跨平台,这是 2 个问题。还有你说的 windows xp 跑不了 win 10 的程序,这并不是一个问题,很少有系统能“向上”兼容,特别是这种版本跨越特别大的版本。 建议再看看书 | 
|  |      70bao3      2021-11-21 13:49:35 +08:00 via iPhone @felixcode 没有人误导他,ARM 100% 会出现和 X86 的兼容问题,官方买 macbook 是 14 天退换的,谁也坑不了谁。 | 
|      71MrKrabs      2021-11-21 13:50:24 +08:00 那你直接用 rosetta 跑 x86 不就好了,说不定还比 arm 快呢 | 
|  |      72niubee1      2021-11-21 13:55:23 +08:00  1 也没有很多人想象的那么差,我试了试编译 python2.7 ,其实坑都不在 rosetta2 ,而是新版本的 MacOS 更换了 OpenSSL 和 zlib 的版本和安装地址,你需要自己去设置编译参数指向正确的地址即可。 | 
|      73wangkun025      2021-11-21 13:59:33 +08:00 @shadownet ……为什么你会认为我不知道你说的这些呢,唉。 | 
|      75xuegy      2021-11-21 14:07:57 +08:00 我就说一个问题:sigfpe 到现在还没办法。而且不是 CPU 不支持,是 Clang 不支持,简单来说就是苹果把半成品直接拿出来卖了,外表光鲜亮丽,实际上根基还不牢。 | 
|  |      77bao3      2021-11-21 16:27:14 +08:00 via iPhone @felixcode 要是工作用的东西,生产力工具,自己就换了 CPU 架构,然后不用 rostta2 ,14 天的工作里没有兼容问题,那确实得想想问题到底在谁。 | 
|      78tanrenye      2021-11-21 20:43:10 +08:00 也不只是 Mac ,苹果的东西就这样,你必须在他的范围做事,就很爽,一旦你超出他的范围,就很难受,买苹果的东西,真的要调查清楚再下手 | 
|  |      79aec4d OP @ruib 是拷贝一个 iTerm2 以 Rosetta 模式运行,然后 x86 的 homebrew 安装在另外一个目录? x86 和 arm 完全隔离两套? | 
|  |      80lizytalk      2021-11-21 23:22:50 +08:00 via iPhone 你的需求说实话非常小众,很少有非得用旧版不可的。开发者积极适配新版本对大部分人已经够了 | 
|  |      81ruib      2021-11-21 23:55:08 +08:00  1 @aec4d 是的,homebrew 两种架构默认的安装目录就是不同的。然后我在.zshrc 里放了下面这段: # Multiple Homebrews on Apple Silicon if [ "$(arch)" = "arm64" ]; then eval "$(/opt/homebrew/bin/brew shellenv)" else eval "$(/usr/local/bin/brew shellenv)" fi 希望对你有帮助 | 
|  |      82psklf      2021-11-22 09:25:49 +08:00 @aec4d 有道理,工作中不知道什么时候需要编一个 10 年前的工具,然后一堆乱七八糟依赖都需要编译,ARM 平台面对这种情形到底好不好用还真不知道。 | 
|  |      83ssbg2      2021-11-22 10:20:53 +08:00 JAVA 为主的服务器端开发还是可以的 | 
|  |      84RikkaFlame      2021-11-22 18:19:28 +08:00 要是 WIN 本的屏幕和音响能跟上,我是真的一点也不想用 macbook. | 
|  |      85paopaosa      2021-11-22 19:26:38 +08:00 所以还是要结合自己实际的工作内容进行选择,14 天内还可以退货。 | 
|  |      86Rooney1      2021-11-23 00:12:26 +08:00 噗 我也是看了 b 站的视频加上论坛一片称赞。。。 | 
|  |      87dope7      2021-11-23 09:14:18 +08:00 前几天公司给了台 Mac mini m1,这几天用下来,确实是遇到很多 m1 上出现的兼容性问题。。我 自己也买了新的 mbp ,等了快一个月了还有一星期发货,开始有点纠结了 | 
|  |      88dblpx      2021-11-23 16:10:14 +08:00 emmm……关于楼主提到的 Python ,我甚至搭建好了 torch 环境,并训练了几个小的神经网络了……并没有什么问题…… | 
|      89yangzzzzzzzt1      2021-11-25 09:19:55 +08:00 @All2B9S same ,但我在想 m1 一直不解决这种兼容性问题的话,下一步电脑是不是要换 windows | 
|      90All2B9S      2021-12-04 06:12:37 +08:00 @yangzzzzzzzt1 Windows 太割裂了,别的不说,控制面板和设置到现在还不能合二为一就离谱 | 
|  |      93nazalewoyuanyi      2022-01-29 21:53:34 +08:00 @hello2090 现在有一些厂貌似给员工提供的是 M1 芯片的电脑...而且还有一些公司提供的电脑性能太差了,只能用自己买的 M1 芯片电脑啊。当然你可以杠我,是公司、团队巴拉巴拉的问题,我只是想说,是有一部分群体会遇到 楼主所说的额问题的。 | 
|  |      94hello2090      2022-01-30 07:34:17 +08:00 @zhaomeicheng 你没看清楼主帖子的主题吗? “希望各位开发大佬下单的时候考虑一下自己工作流的兼容性,尤其是老项目的兼容性” 既然公司买的电脑干不了活那肯定是公司的问题啊,不就是楼主提醒要注意的事情吗?我又没说 M1 没兼容性问题 |