不懂就问:软件适配 ARM 是开发者意愿问题还是能力问题?

2020-06-23 09:07:32 +08:00
 hourann

迁移架构真的有这么难吗?我知道微软做了几次失败的尝试,推出了跑在 ARM 上的电脑用户体验和市场反响都很差,究其原因是很多软件用不了。绝大部分开发者的软件开发过程不会涉及汇编、SIMD 等依赖具体指令集的内容,所以在我理解里大部分情况下适配 ARM 只是换一下编译目标这么简单。微软 surface 的失败可以解释为它只是 Windows 下的一个极为小众的异构电脑,无法吸引开发者适配的兴趣。而苹果拥有对 macOS 设备的绝对管辖权(黑苹果除外),所以我觉得苹果推 ARM 会比微软顺利的多?

4885 次点击
所在节点    编程
33 条回复
salor
2020-06-23 09:20:39 +08:00
微软的移动生态压根就没建立起来。。

iPad 应用能够做少量工作就能适配到 Mac,Twitter 就是。我觉得还是应用场景和交互方式的区别问题,复杂一点的适配效果远不如重新设计。
murmur
2020-06-23 09:22:53 +08:00
跟微软有什么关系,连投入产出比最高的服务器应用都还是 x86,你想让桌面级先吃螃蟹,欺负人呢
rockyou12
2020-06-23 09:29:44 +08:00
很多底层依赖就没有 arm 的包,上层开发(桌面或者 web 服务)当然就没法搞
nguoidiqua
2020-06-23 09:32:38 +08:00
当然会简单很多,这种东西说白了就是平台和开发者谁更强势的问题。

人都是懒的,懒得折腾而已,苹果说两年内全部换,那不换也不行了,要么不做了。

这就是苹果跟微软和谷歌的区别,它掌握了它整个生态的硬件基础,你要用新设备就没法不跟着它走。
walsh
2020-06-23 09:36:27 +08:00
2B 市场甲方客户就是上帝,享有对软硬件服务的绝对控制权,如何不得罪他们迁移才是难点。前阵子不是说美国政务系统还在招 COBOL 码农吗
Kilerd
2020-06-23 10:23:12 +08:00
你的服务依赖底层库吗? 如果依赖,那么很大可能就是会依赖到汇编或者直接依赖 x86 某个指令的模块。这些上游库支持了 ARM,你才可能把整个应用无痛的编译到 ARM 。
nicevar
2020-06-23 10:30:51 +08:00
别说 arm 了,一个 Linux 的开源软件有时候编译一大堆依赖都出问题,你想想一个本来没多大的项目结果你话大量时间去编译了七八个库是什么心情。
gargar
2020-06-23 10:56:42 +08:00
时间问题
whypool
2020-06-23 11:03:29 +08:00
钱的问题
leoskey
2020-06-23 11:24:38 +08:00
还真的比较难,不少生产力软件底层依赖 x86
meteor957
2020-06-23 11:27:08 +08:00
钱的问题 面向工资编程
wasd6267016
2020-06-23 15:26:08 +08:00
工具问题
XCODE 的统一性 决定了 mac 可以这么做
delectate
2020-06-23 16:23:04 +08:00
有两个办法:
1 、系统及兼容层,牺牲 8 成效率去支持 x86 的 app (还不一定能支持 64 位的);
2 、强力补贴开发者,改那些万年不动的代码,让基础库做修改,支持 arm 的指令集,但是毕竟非主流,估计日后也不可能有任何 bug fix 了。毕竟 arm 在过去和可见的未来,都很难真的作为生产力工具(除非把看剧当作生产力)
Leonard
2020-06-23 16:25:31 +08:00
看你开发的软件是啥了,如果只是普通用户用的(比如天气预报之类)就没什么影响,更新 xcode 重新编译一下的事,涉及比较底层的会麻烦一些
xxzs
2020-06-23 18:32:04 +08:00
memory model 不一样,所以在 x86 上正常跑的 C 代码在 ARM 上可能工作不正常
charlie21
2020-06-23 22:23:18 +08:00
不用适配阿
直接开发 UWP 就可以了阿

If you app is pure WinRT then you can select Architecture Neutral which will create an application package which will on all devices; x86, x64 and ARM. Visual Studio will take care of what needs to be done...
https://stackoverflow.com/questions/12881005/using-windows-store-app-class-library-for-winrt-arm-application

精通 UWP,未来是你的
wipbssl
2020-06-23 23:14:54 +08:00
@charlie21 uwp 应该算是被微软放弃了吧,build2020 上推出的 project reunion 要把 win32 和 uwp 统一起来了
azh7138m
2020-06-24 01:39:52 +08:00
迁移架构真的有这么难吗?

应该比较费钱,IA64 这种哪怕最后只面向特定的企业服务,也没活下来,intel+合作伙伴在上面投入了不少钱 /20 年的时间

> 在我理解里大部分情况下适配 ARM 只是换一下编译目标这么简单

并不是,比如之前有个小东西要适配一个 MIPS,因为用到了 ptrace,返回的结构和 x86 下不一样,得自己对一下结构体
能做到 "只是换一下编译目标",是因为之前有无数苦逼开发者做了适配
May725
2020-06-24 01:40:57 +08:00
让开发者去适配,也只有苹果才干得出来了,要是微软也这么干,不得喷死。
May725
2020-06-24 01:47:00 +08:00
积累起来的程序,可能源码都找不到了,编译更别提了

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

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

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

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

© 2021 V2EX