ARM 版的 Mac 对开发人员有不利吗?如果有,是在哪些方面呢?
本人计算机专业学生一枚,用过一段时间的 arm 版 linux,发现有些工具在 arm 平台没有。
在某闲聊 QQ 群看到有人说很期待 arm 版 mac,我说 arm 版 Mac 对开发人员不友好,因为有些开发工具在 arm 平台没有,然后就被狂喷,说我无知。
所以特来求证一下,arm 平台对开发人员有没有影响?
本人计算机专业学生一枚,用过一段时间的 arm 版 linux,发现有些工具在 arm 平台没有。
在某闲聊 QQ 群看到有人说很期待 arm 版 mac,我说 arm 版 Mac 对开发人员不友好,因为有些开发工具在 arm 平台没有,然后就被狂喷,说我无知。
所以特来求证一下,arm 平台对开发人员有没有影响?
不知道你说的可能的不方便点在哪里?
何况开发的领域那么多,有没有影响不能一概而论
这两类软件对消费者用户来说无所谓,开发者服务苹果,寻找替代就可以了。反正苹果也是做消费电子的。
但是拿来当生产力工具的软件从来都是操作系统服务软件的。所以至今在 intel + windows 平台都能找到当年 8086 + dos 的影子。想要兼容性还是赶紧跳坑把。
而这些依赖,数量成千上万(说不准有几十万),有些早就无人维护了,碰到这种情况,要么换替代品(不一定有),要么自己动手修改代码移植,这难度可不小的。这些就是我上面 #6 里所说的“坑”。
本 linuxer 希望以后能用上 arm linux 编程,不过可惜目前还没有类似 nuc 的存在,树莓派还是弱了些。
还有,装个 windows/虚拟机跑 windows,你是用兼容性垃圾的 arm 版 win 呢,还是虚拟指令集的普通 win 呢。
但是你要知道,苹果系统底层是 unix,有大量的第三方库是支持 *nix 类系统的,其中就包括苹果系统,大量,意思是成千上万,然后有大量的应用程序是依赖于这些库的。这么一切换,会导致非常多的第三方库用不了,接着就是大量的应用程序用不了。
你说我不用这些库了,光靠苹果自己的开发库,行吗?能满足开发者需求吗?很遗憾,不能,苹果自己的库最多能满足 80%的需求,开发者依然会依赖于上面所说的大量第三方库。
而这个切换,跟抛弃 32 位不一样,32 位的代码相对很容易移植到 64 位的,从 amd64 移植到 arm64,那可不太一样。
比如需要用 gcc 编译,那么可能 gcc 也不是 100%支持 arm,那么可能需要把 gcc 用到的 lib 也需要重新编译到 arm 能使用
层层套娃,这才是最扎心的
不过,我觉得苹果的软件设计师应该没 微软那么蠢吧。搞了一个 ARM 和 X86 版本,最后 ARM 版本夭折了。
至于 MacBook Pro 苹果不会一下子卖那么大的步子,标压的 Intel 配上独显还是一个打十个的。
Debian 、centos 、fedora 都有 arm release 多少年了,库和包的依赖基本都解决得七七八八了。折腾一下树莓派就知道了。
而且 ARM 有生态,不像 PowerPC 一样全靠自己,华为的服务器不也是用 ARM 的呢
第一,公司不知道会不会因为一堆编译工具不兼容 ARM mac,而切成杂牌电脑装 linux 。懂编译的可以说下。我感觉跨平台编译还是很吃平台的。而且生产环境都是 x86 – 64,公司也没必要照顾 ARM mac 的编译。
第二,gnu 的开发工具和一些兼容 mac 的 linux 第三方库兼容 ARM mac 吗?毕竟开源软件,做什么都慢啊。而且即使有新的支持 ARM mac 的软件去替代这些工具和库,审核之路漫漫啊。
2. 平台相关的 Golang 、C 、C++ 都会有类似烦恼。
3. 但我仍旧觉得整体而言,这是件好事:大家的平台选择毕竟不是更少而是更多了。
而且经过苹果这么些年的魔改,OS X 已经远不是又一个 unix 系统这么简单了
ARM32 时代存在奇奇怪怪的架构,大端序小端序都不同;到了 ARM64,编译器中的 CPU 架构显示 AArch64 。
ARM 的 CPU 不保证兼容性,即使是同 ip 核的 CPU 也不一定能运行相同的程序,这是因为指令集缺失( CPU 的实现出于成本的考虑可能不实现某些指令集,比如手机 Soc 多没有虚拟化指令集)。
新 ip 的出现,往往会带来新的指令集,ARM 的指令集变化太频繁了,这部分指令集用的话就需要更新编译器(至于编译器更新带来的坑,做过的人都心有体会),不用的话性能升不上去。
ARM 碎片化太严重。服务器芯片,公司可以投入资源维护,在生命周期内提供技术支持。Apple 可以保证新 ip 发布 N 年内继续维护么?你见过哪个手机 5 年后还有维护的?笔记本的生命周期可比手机长很多
1. 没,我目前就在 mac 上开发编译。以前的公司也是有兼容 mac 的编译工具。虽然生产环境是 linux,但开发挺多人喜欢 mac,不喜欢远程连接 linux 。
2. dell 和 hp 的电脑,就是杂牌啊。体验不是一般差。
3. 开源升个级都各自 bug,不太敢想对于 ARM 怎么支持。