取代JavaScript不成后谋新路!谷歌主导Dart升级,为生成式AI铺路 原创 精选

2024-02-23
关注

整理丨诺亚

出品 | 51CTO技术栈(微信号:blog51cto)

众所周知,Dart语言的流行与Flutter框架密切相关。

Dart于2011年推出,最初致力于成为一种结构化的Web编程语言,隐藏着取代JavaScript的野心。结果几乎半途而废,直到Flutter 的火爆才让 Dart 重新进入公众的视线。

Flutter是使用Dart语言的跨平台UI开发框架。Dart可以编译成Arm32、Arm64或x86_64的本地可执行文件,或编译成JavaScript。属于谷歌的Flutter和Dart可以称之为相互成就。

最近,Dart有了新的动作,谷歌发布了Dart 3.3版本。这个版本的发布标志着Dart语言支持Flutter。 在WebAssembly方面迈出了重要一步。

本次更新为开发人员提供了实验性的Webassembly支持,使开发人员能够更有效地将Dart编写的代码编译到Webassembly标准,从而在浏览器环境中运行高性能的Flutery web应用程序。更值得注意的是,谷歌还发布了SDK,用于在Dart和Flutter应用程序中构建生成人工智能功能。

1、新模式:加强与JS的互动操作

在Dart 在3.3中,谷歌引入了一种与JavaScript库相互操作的新模式,这对于Webasembly的顺利过渡至关重要。这意味着应用程序和包作者现在可以开始调整其代码结构,以便将来与Webasembly兼容。尽管Flutter对Webasembly的支持仍处于试验阶段,但谷歌团队正在积极致力于稳定和改进这一功能。

Wasm早在2023年3月在巴塞罗那举行 I/O大会上,Google Kevinter和Dart产品经理 Moore表示,根据“非常有限的基准测试”,与JavaScript相比,Webasembly的性能可以提高1.5到3倍。

与微软的C#不同,Dart在编译Webasembly时使用Wasmgc,这是Wasm中垃圾收集语言的新标准API,但目前只在基于Chromium的浏览器和Firefox中有效,不支持Safari。

如今,Dart 3.3版本包括迈向Webasembly生产级使用的重要一步,包括全新的Javascript互操作模型。“现在,Dart开发者可以访问一种类型化的API,用于与Javascript互动。”More在上周发表的文章中解释道。

特别需要指出的是,在Dart中 3.3中的扩展类型引入了零成本包装器的类型。新模型使用了一种被称为“用不同的静态接口编译‘包装’的抽象”。

它的优点是,它们可以在没有额外费用的情况下修改现有类型的接口,不同于需要额外操作时对象的包装类型,这使得扩展类型非常适合高效的JavaScript互操作。

图片

可以说,扩展类型不仅为自定义类型提供了便利,而且消除了包装器分配的成本。因此,谷歌指出,原始类型可以直接使用,而无需创建包装器及其相关间接调用成本,从而提高性能。

2、新用意:为生成人工智能铺路

使用这种新的JavaScript互操作模型是支持Wasm的必要条件,但需要迁移旧代码。为了使Flutter应用程序能够使用Webassembly在Web平台上运行,开发人员需要将所有相关应用程序代码及其依赖项迁移到Dart中,以及新的JavaScript互操作机制:web提供的工具和技术。

“如果你维护一个使用dart的人,”Dart团队说:任何其他Darttml或任何其他Dartttml SDK web库的公共Flutter包应尽快迁移到package:web。长期来看,package:代替dart的web:作为Dart的Web互操作解决方案,html和其它web库。”

在过渡过程中,开发者可能会遇到一些阻力。为此,Dart团队发布了详细的迁移指南,帮助开发者适应这些变化,并成功启动基于Webasembly的Fluter Web项目。

虽然Wasm主要支持Flutter,但并非完全如此。

该团队在GitHub上指出:“虽然Wasm最初是为在Web上运行原始代码而设计的,但Wasm已发展成为跨多个平台运行编译代码的通用技术。”未来的应用程序场景可能包括在服务器代码中使用Wasm编译的Dart。

伴随着Dart 3.3的发布,谷歌还推出了AI Dart SDK,SDK通过package:google_generative_ai调用谷歌的Gemini 人工智能模型允许开发者使用Geminini 在Dart或Flutter应用中构建API生成AI功能。

全球Fluter产品经理Ander Dobo表示,Dart支持即将加入谷歌的AI 在Studio中。AI Dart SDK的引入表明,谷歌正在利用其对开源Dart和Flutter项目的支持,引导开发者使用其AI服务。

您觉得本篇内容如何
评分

相关产品

Honeywell 霍尼韦尔智能工业 在线/便携烟气分析仪专用传感器 气体传感器

CO 传感器;SO2传感器;NO2 传感器;NO传感器;氧气传感器

南方泰科 TGM 压力传感器

TGM是一款SOP8封装的压阻式MEMS压力传感器,其压力传感器芯片封装在 SOP8 塑封壳内。在传感器压力量程内,当用固定电压供电时,传感器产生毫伏输出电压,正比于输入压力。压力传感器芯片为绝压,可提供不同的压力量程的SOP8 压力传感器。

Huba Control 富巴 525系列 压力传感器

525系列压力传感器采用集公司20多年研发经验的陶瓷压力传感器芯片技术。该系列压力传感器可选压力范围大,电气连接形式多。最小量程为50mbar。大批量使用具有很好的性价比。

Cubic 四方光电 PM3009BP 室外粉尘传感器

PM3009BP是一款专门针对餐饮油烟监测的油烟传感器,其采用旁流采样方式,自带除水雾装置,结合智能颗粒物识别算法,确保传感器能够快速准确的检测油烟浓度的变化,同时创新的镜头自清洁技术的应用,能够长效防护传感器油烟污染,大幅度延长传感器的使用寿命。

Winsen 炜盛科技 MH-410D 红外CO2气体传感器 红外传感器

MH-410D红外气体传感器是通用型、智能型、微型传感器,该红外传感器利用非色散红外(NDIR)原理对空气中存在的CO2进行探测,具有很好的选择性,无氧气依赖性,性能稳定、寿命长。内置温度补偿。该红外传感器是通过将成熟的红外吸收气体检测技术与微型机械加工、精良电路设计紧密结合而制作出的小巧型高性能红外传感器。该红外传感器可广泛应用于暖通制冷与室内空气质量监控、工业过程及安全防护监控、农业及畜牧业生产过程监控。

Alliance 莱恩&联众传感线缆 Aurora Tool Cable 医疗电线 医疗线缆

用于连接两个5DOF传感器或一个6DOF传感器的电缆。 可重复使用 用于电磁跟踪系统

RAYCOH 锐科智能 30GM系列 IO-Link输出 2EP-IO,IUEP-IO 超声波测距传感器和接近开关

RAYCOH 锐科智能30GM系列 IO-Link输出 超声波线性位置传感器和开关

评论

您需要登录才可以回复|注册

提交评论

提取码
复制提取码
点击跳转至百度网盘