当前位置:首页 > 每日看点 > 正文内容

能否从技术层面客观,不带有情绪输出的评价鸿蒙HarmonyOS NEXT?

卡卷网1年前 (2024-12-04)每日看点277

别的不说,我只说代码。具体来说,我只说一说鸿蒙系统的应用开发语言ArkTS语言。

因为是门外汉,先上官网介绍:初识ArkTS语言 | 华为开发者联盟 (huawei.com)

你只用看一下官网这里面的一些截图的示例代码即可,比如:

能否从技术层面客观,不带有情绪输出的评价鸿蒙HarmonyOS NEXT?  第1张

官网的一点点代码片段

然后,作为对比,我们可以看一看与ArkTS同源的另外一门语言AssambleScript:介绍 | AssemblyScript 中文网 (nodejs.cn)

因为是门外汉,所以也是看一下网页链接里的截图示例代码即可,比如:

export function fib(n: i32): i32 { var a = 0, b = 1 if (n > 0) { while (--n) { let t = a + b a = b b = t } return b } return a }

这俩语言的语法都是C系的,极为相近。然后这两个语言的关系是这样的:JavaScript(JS)作为弱类型语言,其静态类型的超集是TypeScript(TS)语言。然后ArkTS是TS的改进优化,AssemblyScript(AS)则是TS的子集。

AS的演进方向是较为彻底的提升性能(因此其不兼容JS的绝大部分库),而ArkTS的演进方向则是在保证兼容JS生态的情况下尽可能提升性能(当然出于性能考虑,ArkTS对JS库的兼容做了约束)。

从代码介绍上看,我猜ArkTS走了一套和安卓很相近的路子(当然这和AS即WASM技术路线也很相近),只不过安卓用的是Java虚拟机,而鸿蒙用的是JavaScript生态的JIT(甚至AOT)解释器/虚拟机/编译器。

这样的话就说的通了,因为技术上确实是可以落地(有AS语言的范式可以参考,也有JS语系的解释器V8引擎可以参考),当然从具体落地来看,仍然相当考验技术实力。

之所以一上来要提AS语言,因为AS的这套模式我认为和ArkTS很相近。AS编译为.wasm文件,这是个字节码而非机器码文件,然后通过V8引擎将.wasm字节码在用户本地端编译为机器码,从而实现接近原生的性能。当然V8对.wasm的处理仍然是JIT解释,而非AOT编译,一个很重要的原因是V8对代码的优化/去优化考虑。

而鸿蒙这里,因为ArkTS是在TS强类型+静态类型的基础上改进的,所以它具备和AS类似的实现方式的可能。当然考虑到ArkTS要兼容JS生态,所以我猜ArkTS可能的实现方式有3种:

  1. ArkTS项目代码 => JS字节码 => JIT运行时(即V8引擎,性能等同于JS。这个应该已经废弃了,我只在古早的B站视频里看到有人披露)
  2. ArkTS项目代码 => 方舟字节码(类似.wasm的思路,二进制字节码文件) => JIT机器码(类似.wasm的思路,能用上ArkTS静态类型的能力,性能会比JS-V8强,宣传是“接近原生性能”)
  3. ArkTS项目代码 => 方舟字节码 => AOT机器码(安装App时执行AOT编译,则性能即为原生性能)

从我个人看B站分析视频的情况来看,之前最早是走的第1种实现。目前从官方手册来看,很可能走的第2种实现,其实性能不差了。当然我们期待能早日走到第3种实现。

为什么我会这么推测呢?主要可以看这页:ArkTS高性能编程实践-学习ArkTS语言-基础入门 - 华为HarmonyOS开发者 (huawei.com)

这个页面里说到的性能优化建议和V8引擎的优化建议的思路非常像!然后从Array<number>建议改为Int8Array等描述来看,其实就是在向AS看齐的。

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2024/12/2926.html

分享给朋友:

相关文章

下班后可以做点什么副业赚钱呢?

下班后可以做点什么副业赚钱呢?

首先说明一下,我分享的任务不需要交钱,也不需要入群,只需要你去平台学习就可以。如果有任何让你交钱,进群的任务,请警惕被割韭菜。今天给大家分享7大赚钱副业,新手小白0粉丝0门槛0技术都可以去做,不说大富大贵,但是赚个零花钱还是可以。如果你已经...

你每天用来涨知识的手机应用程序有哪些?

你每天用来涨知识的手机应用程序有哪些?

经过深度使用和测评,从100个APP中选出的这35个超实用的app,每一个都是最硬核最有料的涨知识神器!每天打开看看,能让你提神醒脑,眼界大开,成为朋友聚会上的话题王者!双击屏幕取走哦~先放上全部APP目录,有新闻资讯类、英语学习类、读书类...

拼多多,怎么就成为了年轻人的「赛博菜市场」?

拼多多,怎么就成为了年轻人的「赛博菜市场」?

可惜你不在拼多多买水果蔬菜,很难一句话跟你解释,我只能笨拙的用经历来慢慢讲。我们公司有微波炉,同事们几乎都是自己带饭来上班,便当荤素搭配、水果零食;都是好看又好吃。我自己本来就不喜欢外卖,当然也加入了带饭大军: 直到某一天深夜我闲着无聊刷了...

无意中发现技术主管写的代码,大家帮忙看看什么水平?

无意中发现技术主管写的代码,大家帮忙看看什么水平?

虽然很多答主用了诸如“典范级”、“心旷神怡” 的形容, 赞美这段代码, 但这里, 出于技术讨论的动机, 我说说不同看法.栈, 如果善于利用栈来处理树结构, 那么可以写出更简洁的代码, 根本不需要 recuresiveFn 这种方法. 泛型,...

阿里云服务器续费价格好贵,想换一家云服务厂商,该怎么选择?

阿里云服务器续费价格好贵,想换一家云服务厂商,该怎么选择?

最近一台买了3年时间的腾讯云轻量服务器到期了,还有5天时间。当时买的价格是3年198元。配置是2核CPU、4GB内存,80GB SSD云硬盘,1200GB 流量包,然后中途给免费升级了CPU,从2核变成了4核。平均下来一年的费用70元不到,...

程序员都有自己的服务器吗?

程序员都有自己的服务器吗?

2024.9. 24,有朋友咨询功耗,我没有单独给服务器弄智能插座,系统做的 esxi 也看不到,所以只能用其他角度判断供大家参考。我有一个餐边柜改的机柜,里面白裙两盘,黑群晖 4 机械 1 mvme,一个爱快硬路由,一个联通光猫,一个 2...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。