ARM 版的 Mac 对开发人员有不利吗?如果有,是在哪些方面呢?

2020-06-22 11:08:20 +08:00
 movq

本人计算机专业学生一枚,用过一段时间的 arm 版 linux,发现有些工具在 arm 平台没有。

在某闲聊 QQ 群看到有人说很期待 arm 版 mac,我说 arm 版 Mac 对开发人员不友好,因为有些开发工具在 arm 平台没有,然后就被狂喷,说我无知。

所以特来求证一下,arm 平台对开发人员有没有影响?

13696 次点击
所在节点    macOS
88 条回复
vk42
2020-06-22 11:15:02 +08:00
如果是说 Xcode 的话那你没必要为 Apple 操心,反正就是封闭平台,开发 x86 应用交叉编译也不是啥问题

不知道你说的可能的不方便点在哪里?
himself65
2020-06-22 11:17:26 +08:00
你既然敢说 arm 版对开发不友好,那你就说一下哪些不友好啊。怎么又来这里问 感觉就和只有论点没有论证一样
alphatoad
2020-06-22 11:19:48 +08:00
面包说得对
Leonard
2020-06-22 11:23:06 +08:00
如果你不知道是哪里不友好,那么对你就没有影响。
stoneabc
2020-06-22 11:23:19 +08:00
有很多三方库可能都没有 arm 版。。要么自己折腾,要么折腾交叉编译,反正都要折腾。
GM
2020-06-22 11:26:39 +08:00
当然有影响,那些说没影响的,要么根本不是程序员,要么没做过 mac 下的开发,要么是个初学者,根本想不到这种源自底层的改变影响有多深远,只考虑到“都有源码都能自己编译”,根本考虑了多深多远,他们不知道,搞不好哪天哪个犄角旮旯里就有个坑把你坑死了。
movq
2020-06-22 11:26:45 +08:00
@himself65 我是来询问我的观点有无道理,不是摆出我的观点说这是对的。之前在 V2EX 里也看到一些讨论,大致是有些东西 arm 平台现在还没有,我自己用 arm 版 linux 时也有碰到这种情况,所以以我自己的看法我觉得 arm 现在作为开发工具不是很友好
walsh
2020-06-22 11:27:01 +08:00
我做过 win32 开发和一些 Windows 驱动编程都碰不到 CPU 指令集这些,编译器给啥用啥,操作系统给啥用啥,也没见换平台编译出过什么问题,遇到的 BUG 查出来从来都是自己代码没按规范写。我不信现在一堆写脚本语言做应用的互联网程序员天天围绕汇编语言 CPU 指令集打转?
GM
2020-06-22 11:27:27 +08:00
@GM typo:“根本考虑了多深多远” => “根本考虑不了多深多远”
coderluan
2020-06-22 11:28:56 +08:00
?????? 楼主你有没有感觉自己逻辑有点问题?
reus
2020-06-22 11:31:18 +08:00
都还没有产品给你用,有什么好讨论的?

何况开发的领域那么多,有没有影响不能一概而论
xiaooloong
2020-06-22 11:31:47 +08:00
如果更换 arm 兼容性不好的方面有两点:
1 、非苹果生态的软件
比如 mac 的桌面版 docker 。本来就是依赖 intel cpu 虚拟化开的 linux 虚拟机跑的 amd64 docker 。如果更换成 arm,没有处理器虚拟化支持,就只能头铁开全虚拟化的 linux 虚拟机,那要么 docker 废了,要么电池废了。
2 、老软件
mac 上有很多直接通过网站分发的工具软件,如果开发者不再更新,那么更换了平台你也别想用了。只能照替代。

这两类软件对消费者用户来说无所谓,开发者服务苹果,寻找替代就可以了。反正苹果也是做消费电子的。

但是拿来当生产力工具的软件从来都是操作系统服务软件的。所以至今在 intel + windows 平台都能找到当年 8086 + dos 的影子。想要兼容性还是赶紧跳坑把。
movq
2020-06-22 11:32:08 +08:00
@coderluan 是有点问题,所以我才来求证一下到底会不会影响
little_cup
2020-06-22 11:34:23 +08:00
别说 ARM 了,在 AMD 装过黑苹果都都应该知道 homebrew 运行起来有多少坑..
GM
2020-06-22 11:34:58 +08:00
@walsh 你只用到 windows 下,那当然没太大问题,如果说 win32 的兼容性第二没人敢说第一。
*nix 下不一样,很多软件包、库是同时兼容 Linux 、BSD 、Solaris 系统甚至 Minix 系统的 X86 、AMD64 、ARM 、ARM64 、MIPS 等等指令集,而且有路径依赖,如果某个依赖没提供 ARM64 版本,你就编译不出 ARM64 的目标出来。

而这些依赖,数量成千上万(说不准有几十万),有些早就无人维护了,碰到这种情况,要么换替代品(不一定有),要么自己动手修改代码移植,这难度可不小的。这些就是我上面 #6 楼里所说的“坑”。
weijar
2020-06-22 11:41:31 +08:00
对 windows 来说转 arm 可能有点坑,对苹果这种软硬一体封闭体系来说对一般人基本没影响。

本 linuxer 希望以后能用上 arm linux 编程,不过可惜目前还没有类似 nuc 的存在,树莓派还是弱了些。
walsh
2020-06-22 11:46:17 +08:00
@GM 苹果自己的 32 位说抛弃就抛弃,你还指望它拥抱开源 Linux ?唯唯诺诺最终就是做成 Windows 那样的屎山,它是主打消费市场不是 B2B 的,iPhone 就抛弃旧的东西全新开始才能成功的
whileFalse
2020-06-22 11:47:07 +08:00
我工作中大量使用 Docker,而且是 amd64 的 Docker 。ARM 机器想跑就虚拟指令集呗。然后你猜 ARM 虚拟 amd64 指令集会有多大效率损失?

还有,装个 windows/虚拟机跑 windows,你是用兼容性垃圾的 arm 版 win 呢,还是虚拟指令集的普通 win 呢。
stoneabc
2020-06-22 11:52:08 +08:00
@walsh 他自己接触不到,不代表他用的三方库接触不到- -
danny106
2020-06-22 12:00:27 +08:00
CPU 从 power pc 换到 intel 苹果用了七八年,从 intel 换到 arm 也会是一个漫长的过程,应该也会是 5-10 年吧,大家不用这么急着担心某某软件用不了.....

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/683675

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX