本人计算机专业学生一枚,用过一段时间的 arm 版 linux,发现有些工具在 arm 平台没有。
在某闲聊 QQ 群看到有人说很期待 arm 版 mac,我说 arm 版 Mac 对开发人员不友好,因为有些开发工具在 arm 平台没有,然后就被狂喷,说我无知。
所以特来求证一下,arm 平台对开发人员有没有影响?
1
vk42 2020-06-22 11:15:02 +08:00
如果是说 Xcode 的话那你没必要为 Apple 操心,反正就是封闭平台,开发 x86 应用交叉编译也不是啥问题
不知道你说的可能的不方便点在哪里? |
2
himself65 2020-06-22 11:17:26 +08:00 via iPhone 5
你既然敢说 arm 版对开发不友好,那你就说一下哪些不友好啊。怎么又来这里问 感觉就和只有论点没有论证一样
|
3
alphatoad 2020-06-22 11:19:48 +08:00 via iPhone
面包说得对
|
4
Leonard 2020-06-22 11:23:06 +08:00
如果你不知道是哪里不友好,那么对你就没有影响。
|
5
stoneabc 2020-06-22 11:23:19 +08:00
有很多三方库可能都没有 arm 版。。要么自己折腾,要么折腾交叉编译,反正都要折腾。
|
6
GM 2020-06-22 11:26:39 +08:00 6
当然有影响,那些说没影响的,要么根本不是程序员,要么没做过 mac 下的开发,要么是个初学者,根本想不到这种源自底层的改变影响有多深远,只考虑到“都有源码都能自己编译”,根本考虑了多深多远,他们不知道,搞不好哪天哪个犄角旮旯里就有个坑把你坑死了。
|
7
movq OP @himself65 我是来询问我的观点有无道理,不是摆出我的观点说这是对的。之前在 V2EX 里也看到一些讨论,大致是有些东西 arm 平台现在还没有,我自己用 arm 版 linux 时也有碰到这种情况,所以以我自己的看法我觉得 arm 现在作为开发工具不是很友好
|
8
walsh 2020-06-22 11:27:01 +08:00 6
我做过 win32 开发和一些 Windows 驱动编程都碰不到 CPU 指令集这些,编译器给啥用啥,操作系统给啥用啥,也没见换平台编译出过什么问题,遇到的 BUG 查出来从来都是自己代码没按规范写。我不信现在一堆写脚本语言做应用的互联网程序员天天围绕汇编语言 CPU 指令集打转?
|
10
coderluan 2020-06-22 11:28:56 +08:00
?????? 楼主你有没有感觉自己逻辑有点问题?
|
11
reus 2020-06-22 11:31:18 +08:00
都还没有产品给你用,有什么好讨论的?
何况开发的领域那么多,有没有影响不能一概而论 |
12
xiaooloong 2020-06-22 11:31:47 +08:00 9
如果更换 arm 兼容性不好的方面有两点:
1 、非苹果生态的软件 比如 mac 的桌面版 docker 。本来就是依赖 intel cpu 虚拟化开的 linux 虚拟机跑的 amd64 docker 。如果更换成 arm,没有处理器虚拟化支持,就只能头铁开全虚拟化的 linux 虚拟机,那要么 docker 废了,要么电池废了。 2 、老软件 mac 上有很多直接通过网站分发的工具软件,如果开发者不再更新,那么更换了平台你也别想用了。只能照替代。 这两类软件对消费者用户来说无所谓,开发者服务苹果,寻找替代就可以了。反正苹果也是做消费电子的。 但是拿来当生产力工具的软件从来都是操作系统服务软件的。所以至今在 intel + windows 平台都能找到当年 8086 + dos 的影子。想要兼容性还是赶紧跳坑把。 |
14
little_cup 2020-06-22 11:34:23 +08:00 via Android
别说 ARM 了,在 AMD 装过黑苹果都都应该知道 homebrew 运行起来有多少坑..
|
15
GM 2020-06-22 11:34:58 +08:00 6
@walsh 你只用到 windows 下,那当然没太大问题,如果说 win32 的兼容性第二没人敢说第一。
*nix 下不一样,很多软件包、库是同时兼容 Linux 、BSD 、Solaris 系统甚至 Minix 系统的 X86 、AMD64 、ARM 、ARM64 、MIPS 等等指令集,而且有路径依赖,如果某个依赖没提供 ARM64 版本,你就编译不出 ARM64 的目标出来。 而这些依赖,数量成千上万(说不准有几十万),有些早就无人维护了,碰到这种情况,要么换替代品(不一定有),要么自己动手修改代码移植,这难度可不小的。这些就是我上面 #6 楼里所说的“坑”。 |
16
weijar 2020-06-22 11:41:31 +08:00
对 windows 来说转 arm 可能有点坑,对苹果这种软硬一体封闭体系来说对一般人基本没影响。
本 linuxer 希望以后能用上 arm linux 编程,不过可惜目前还没有类似 nuc 的存在,树莓派还是弱了些。 |
17
walsh 2020-06-22 11:46:17 +08:00 3
@GM 苹果自己的 32 位说抛弃就抛弃,你还指望它拥抱开源 Linux ?唯唯诺诺最终就是做成 Windows 那样的屎山,它是主打消费市场不是 B2B 的,iPhone 就抛弃旧的东西全新开始才能成功的
|
18
whileFalse 2020-06-22 11:47:07 +08:00 1
我工作中大量使用 Docker,而且是 amd64 的 Docker 。ARM 机器想跑就虚拟指令集呗。然后你猜 ARM 虚拟 amd64 指令集会有多大效率损失?
还有,装个 windows/虚拟机跑 windows,你是用兼容性垃圾的 arm 版 win 呢,还是虚拟指令集的普通 win 呢。 |
20
danny106 2020-06-22 12:00:27 +08:00
CPU 从 power pc 换到 intel 苹果用了七八年,从 intel 换到 arm 也会是一个漫长的过程,应该也会是 5-10 年吧,大家不用这么急着担心某某软件用不了.....
|
21
walsh 2020-06-22 12:04:00 +08:00 1
@stoneabc 写 Windows 的程序是最让我痛苦的,客户是爹,微软是爹,第三方也是爹,客户不愿升级,微软开一堆新坑,第三方也是坑,最终程序变成屎山,苹果程序员只要伺候好苹果这位爹,用户和第三方全被它搞定了,这就是我羡慕的地方
|
22
GM 2020-06-22 12:11:19 +08:00
@walsh
我没说苹果自身,我也没指望他拥抱 Linux 。 但是你要知道,苹果系统底层是 unix,有大量的第三方库是支持 *nix 类系统的,其中就包括苹果系统,大量,意思是成千上万,然后有大量的应用程序是依赖于这些库的。这么一切换,会导致非常多的第三方库用不了,接着就是大量的应用程序用不了。 你说我不用这些库了,光靠苹果自己的开发库,行吗?能满足开发者需求吗?很遗憾,不能,苹果自己的库最多能满足 80%的需求,开发者依然会依赖于上面所说的大量第三方库。 而这个切换,跟抛弃 32 位不一样,32 位的代码相对很容易移植到 64 位的,从 amd64 移植到 arm64,那可不太一样。 |
25
HelveticaNeue 2020-06-22 12:24:21 +08:00
@danny106 哪来的七八年?发布迁移计划后,14 个月后宣布迁移完成,四年后停止 PPC 操作系统支持
|
26
johnsonshu 2020-06-22 12:27:37 +08:00
安卓开发应该有帮助吧。 安卓虚拟机( ARM abi )的性能应该上去不少。
|
27
danny106 2020-06-22 12:29:37 +08:00
@HelveticaNeue 大概就那意思吧,即使 arm 真用上了,在以后相同长的时间两个 cpu 体系结构在新机器上都会共存,不可能说突然一下就不支持 intel 了
|
28
Nitroethane 2020-06-22 12:51:56 +08:00 via iPhone
@little_cup 什么坑?我也用 amd 黑苹果,目前为止 homebrew 没遇到任何坑
|
29
HelveticaNeue 2020-06-22 13:13:41 +08:00
@danny106 我猜不会有新的 Intel Mac 发布了。
宣布 Intel transition 后只出过一款新的 PPC 电脑,QuadCore Power Mac G5,这样来看,恐怕 Mac Pro 2019 就是最后一台 Intel Mac Pro,新机型会全面转向 ARM 除非 ARM Mac 不跑 MacOS,而是个 iPad OS 之类的东西 |
30
OneMan 2020-06-22 13:45:05 +08:00
拥抱变化
|
31
zk4v2 2020-06-22 13:49:47 +08:00
@little_cup #14 能具体说下什么坑吗?
|
33
whypool 2020-06-22 14:05:42 +08:00
很简单
比如 mysql 不支持 arm,但是有源码可以编译 那么就不能用现有的包安装 mysql 环境 比如需要用 gcc 编译,那么可能 gcc 也不是 100%支持 arm,那么可能需要把 gcc 用到的 lib 也需要重新编译到 arm 能使用 层层套娃,这才是最扎心的 |
34
MrYELiex 2020-06-22 14:20:52 +08:00
@walsh 你确定你是个 windows 开发? 还做过驱动编程? 但凡有点开发 /编译常识或者跨平台编译经验 都会知道你说的这些例子(32 位 iphone)根本都不是一个层面上的东西好么
|
35
lululau 2020-06-22 14:22:35 +08:00
楼主的担心有道理
|
37
dayeye2006199 2020-06-22 15:15:36 +08:00
对我这种纯靠服务器开发和编译的基本没有影响。mac 有个浏览器,iTerm,能装个 vs code 连上服务器就行了。挺期待 ARM 版本的 mac,估计会体积散热续航提升,对便携性帮助挺大的。
|
38
lxml 2020-06-22 15:19:13 +08:00
我不相信苹果真能 全面转向 ARM, x86 代表的是一种霸权,苹果 macOS 虽然我很喜欢用,但确实完全没有 iOS 统治力,瞎搞只能把自己搞死(市场份额和利润率同等重要,没有份额开发者没有动力开发软件,iPhone 再不降价份额再跌几个点就快嗝屁了)。
|
39
lxml 2020-06-22 15:25:12 +08:00
不过挺看好 ARM 的未来的,x86 包袱多,但计算机世界里的包袱有时候就是财富,不然 Windows 成为民用机上稳稳的世界第一不是没有道理的,但看微软也在尝试 Window 10X 来做一个全新的操作系统,用 Edge 替代 IE,包袱要抛弃,但一口气抛多了容易扯着蛋,苹果之前干过两次,干着干着就干成 6% 份额了。
|
40
Felldeadbird 2020-06-22 15:33:49 +08:00
肯定有影响啊。一些基于 X86 编译出来的软件。ARM 平台就要重新编译一次了。估计不少现成软件都需要重新打包了。
不过,我觉得苹果的软件设计师应该没 微软那么蠢吧。搞了一个 ARM 和 X86 版本,最后 ARM 版本夭折了。 |
41
murmur 2020-06-22 15:36:25 +08:00
@Felldeadbird arm 版本咋夭折了,surface x 不是再卖么
|
42
imnaive 2020-06-22 16:08:44 +08:00
换 CPU 的大概率是 MacBook Air,这些用户一般都是 PPT 和 爱奇艺,低压双核的 Intel 性能和苹果自研芯片平分秋色,但自研芯片成本降了很多,不用自研都说不过去,而且自研芯片在散热上有优势。
至于 MacBook Pro 苹果不会一下子卖那么大的步子,标压的 Intel 配上独显还是一个打十个的。 |
43
initd 2020-06-22 16:54:54 +08:00
用 mac 调 server 配置, 也是先本地开个虚拟机, 既然都是开虚拟机, 那差距不大.
|
44
chmlai 2020-06-22 17:04:15 +08:00
对普通用户有利就等于对开发人员有利
|
46
misaka19000 2020-06-22 17:18:49 +08:00
@himself65 #2 活捉一只🍞
|
48
dodo2012 2020-06-22 17:38:29 +08:00
@Nitroethane amd 现在装黑果如何?
|
49
Nitroethane 2020-06-22 17:46:04 +08:00
@dodo2012 #47 搜 v 站我之前发的帖子,有比较详细的记录。上周又给工位的 nuc 7 代小盒子装了个黑苹果,相对 Intel 来说 amd 平台还是比较折腾的
|
50
dodo2012 2020-06-22 17:53:53 +08:00
@Nitroethane intel 现在一套很成熟了,amd 一直没折腾过,主要看现在 amd 真的 yes,本来想买个 nuc8 代的,感觉有个本本再弄个没显卡的也玩不了啥,还是想搞个有独显的玩玩
|
51
studyro 2020-06-22 17:56:23 +08:00
@imnaive 据 Ming-Chi Kuo,第一批装载 ARM 芯片的会是 MacBook Pro 和新设计的 iMac 。我也好奇会是什么表现。。
|
52
wipbssl 2020-06-22 20:13:41 +08:00 3
可以参考 arm 版的 vsc,VSCode 的 Windows-ARM 版去年( 2019 年)就已经可以 build 了,但是安装包上个月才出,因为做安装包的工具是今年( 2020 年)三月才支持 ARM 。
|
53
qwefdrt 2020-06-22 20:59:03 +08:00 1
你在 Arm Linux 上遇到的问题,在 Arm Mac 同样也会遇到。但是 Mac 毕竟是闭源,后续害得看苹果怎么搞
|
54
tulongtou 2020-06-22 22:00:52 +08:00
开发人员不能方便的黑苹果了
|
56
dayFvckingByte 2020-06-22 22:26:28 +08:00
@himself65 遇到推油了,id 好眼熟
|
57
Nich0la5 2020-06-22 22:50:54 +08:00 via Android 1
影响最大的应该是黑苹果群体
|
58
SoloCompany 2020-06-22 23:08:12 +08:00
上面还有一堆人说 x86 的, 难道他们不知道去年的 macOS 已经不支持 x86 了吗
|
59
cedoo22 2020-06-22 23:37:28 +08:00
好些底层第三方包万一找不到 arm 版本的 还得自己手动编译 , 烦死
|
60
li492135501 2020-06-23 02:05:10 +08:00
x86-64 和 ARM64 是不一样的东西吧
|
61
gzfrankie 2020-06-23 02:54:54 +08:00 via iPhone
说小不小,说大其实也不大。
Debian 、centos 、fedora 都有 arm release 多少年了,库和包的依赖基本都解决得七七八八了。折腾一下树莓派就知道了。 而且 ARM 有生态,不像 PowerPC 一样全靠自己,华为的服务器不也是用 ARM 的呢 |
62
phithon 2020-06-23 03:02:45 +08:00
不用吵了,Rosetta 2 解决诸君的难题
|
63
cassyfar 2020-06-23 07:11:11 +08:00
我最大担心就是以后公司放弃 mac 了,改发杂牌电脑装 linux 当开发机。
第一,公司不知道会不会因为一堆编译工具不兼容 ARM mac,而切成杂牌电脑装 linux 。懂编译的可以说下。我感觉跨平台编译还是很吃平台的。而且生产环境都是 x86 - 64,公司也没必要照顾 ARM mac 的编译。 第二,gnu 的开发工具和一些兼容 mac 的 linux 第三方库兼容 ARM mac 吗?毕竟开源软件,做什么都慢啊。而且即使有新的支持 ARM mac 的软件去替代这些工具和库,审核之路漫漫啊。 |
64
ww2000e 2020-06-23 07:39:35 +08:00 via iPhone
手机都 arm 的,那么多做手机 app 的不也好好的
|
65
vk42 2020-06-23 08:28:05 +08:00 1
@cassyfar 你说的这几个都不成立啊
编译不都是生产环境的事,谁会在 mac 上编译生产环境的二进制然后分发的? 开源工具对 ARM 的支持已经相当好了,不过针对 Apple Silicon 优化以及 brew 之类的跟上可能要一点一点来,但不认为会太慢,毕竟水果正式上市 ARM 机型还早,估计到时已经差不多了 退一万步讲,不用 Mac 了为啥要杂牌? Dell HP 这些厂家有专门的 Linux 工作站和本 |
67
wupher 2020-06-23 08:35:38 +08:00
1. 第三方库估计会是个大麻烦。很多 Lib 未必有 ARM64 支持。
2. 平台相关的 Golang 、C 、C++ 都会有类似烦恼。 3. 但我仍旧觉得整体而言,这是件好事:大家的平台选择毕竟不是更少而是更多了。 |
68
leokino 2020-06-23 08:38:47 +08:00
没什么好烦恼的,硅谷一堆用 Macbook 的程序员,转 Windows 是不可能的,你还担心编译不出来?之前 ARM 少主要原因还是没有使用 ARM 平台的个人电脑。Macbook 要转 ARM 不可能开发者工具弄不好。
|
69
wsseo 2020-06-23 08:47:43 +08:00
无论有没有利,精神上还是支持的。
|
70
Zzzzzzzzzzz 2020-06-23 08:50:30 +08:00
楼上好多发布会都没看全的
|
71
nicevar 2020-06-23 08:52:42 +08:00
苹果的做事风格就是根本不鸟开发者不鸟用户,我这样就行,你用着就好,别叽叽歪歪,像早期 iPhone OS 升级一版动不动一些 API 直接就没了,后来出的 Swift 每次升级项目都无法编译通过,折腾一番,被大家调侃是新学一门语言,这是苹果的一贯作风。
|
72
Narcissu5 2020-06-23 09:28:21 +08:00
|
73
newmlp 2020-06-23 09:30:02 +08:00 1
不要说 x86 换 arm 了,我还遇到在 Intel 下没问题的代码放到 amd 下就出现坑了
|
74
youxiachai 2020-06-23 09:42:38 +08:00
@viztorix arm 平台的个人电脑可不少.....不然,现在编译出来的 arm 包是给谁用...
|
75
reus 2020-06-23 10:14:30 +08:00
@SoloCompany x86 很显然指 x86 和 x86-64,谁他妈还特地打完 x86-64 啊
|
77
Huelse 2020-06-23 10:49:35 +08:00
转 ARM 主要是为了融合苹果全平台,苹果也能掌控自己的开发节奏。
全 ARM 也意味着 IOS 和 IPad 的应用可以放到 mac 上运行了,应用商店也实现了统一,弥补了 mac 桌面应用少的局面 桌面开发者可能需要做出较大的改动,比如要交叉编译,或者干脆转 swift 等等,IOS 应用开发者可能轻松点 |
78
LokiSharp 2020-06-23 10:58:34 +08:00
苹果:爱用用,不用*
|
79
feather12315 2020-06-23 12:31:41 +08:00 via Android 3
我提一个 ARM 的弊端:编译器。
ARM32 时代存在奇奇怪怪的架构,大端序小端序都不同;到了 ARM64,编译器中的 CPU 架构显示 AArch64 。 ARM 的 CPU 不保证兼容性,即使是同 ip 核的 CPU 也不一定能运行相同的程序,这是因为指令集缺失( CPU 的实现出于成本的考虑可能不实现某些指令集,比如手机 Soc 多没有虚拟化指令集)。 新 ip 的出现,往往会带来新的指令集,ARM 的指令集变化太频繁了,这部分指令集用的话就需要更新编译器(至于编译器更新带来的坑,做过的人都心有体会),不用的话性能升不上去。 ARM 碎片化太严重。服务器芯片,公司可以投入资源维护,在生命周期内提供技术支持。Apple 可以保证新 ip 发布 N 年内继续维护么?你见过哪个手机 5 年后还有维护的?笔记本的生命周期可比手机长很多 |
80
cassyfar 2020-06-23 12:59:43 +08:00
@vk42
1. 没,我目前就在 mac 上开发编译。以前的公司也是有兼容 mac 的编译工具。虽然生产环境是 linux,但开发挺多人喜欢 mac,不喜欢远程连接 linux 。 2. dell 和 hp 的电脑,就是杂牌啊。体验不是一般差。 3. 开源升个级都各自 bug,不太敢想对于 ARM 怎么支持。 |
82
pastgift 2020-06-26 01:16:53 +08:00
楼主的担心是有道理的,我也有同样的担心
目前看下来有下面几种选择: 1. 换 Intel Windows 机器,比如 XPS,但和 MBP 比起来还是有差距 2. 入末期 Intel Mac,然后抱着用上 10 年。或许那时候 ARM 成主流了,或者国内只能用 ARM 了 3. 买 ARM Mac 低配 + x86 云主机,「写在本地,跑在云端」 4. 买 ARM Mac 高配 + QEMU 仿真 x86,你将获得最差体验 |
86
0x000007b 2020-08-03 14:15:08 +08:00
@murmur 难用就难用在系统,硬件虽然比不上 ipad 搞得好,但是好歹也不算差。我自用一个 go2 和 sp6,硬件还凑活,软件和系统对触摸支持真的烂。
|
88
ricolxwz 138 天前
在 mac 上装虚拟机坑不是一般的多, x64 下刷刷解决了
|