资讯专栏INFORMATION COLUMN

编程语言界再填新锐,Google 前工程师开源 Toit 语言

不知名网友 / 2786人阅读

摘要:月日,编程语言联合创始人正式宣布编程语言开源。在研究了和两种编程语言后,发现这两种语言在微控制器上的编写速度不够快,存在性能不佳的障碍。

11 月 22 日,Toit 编程语言联合创始人 Kasper Lund 正式宣布 Toit 编程语言开源。Toit 是一种面向对象的物联网编程语言,它具有现代、简单、易理解、声明性和静态可分析性等理想特性。


前几年,基于对智能小工具和支持互联网设备的功能性和稳健性的挫败,Toit 编程语言的创始团队决定开始考虑为物联网(IoT)开发软件,尤其是嵌入式网络连接设备。

其中联合创始人 Kasper Lund 在 Google 工作了 12 年,担任高级工程师和站点负责人,是一位编程语言和虚拟机老手。他在 Google 任职期间和团队共同创建了 V8 和 Dart 项目,并作为 Crankshaft 项目的技术负责人为 JavaScript 带来了自适应优化,最终让网络变得更快。正由于 Kasper 团队在 Google 为 Flutter 构建 V8 JavaScript 引擎和 Dart 语言的项目中积累的丰富经验,他们开始为了连接到互联网的嵌入式设备构建、部署和维护软件,研发最佳平台。

当 Kasper 团队开始构建平台时,他们意识到他们需要一种高效的、专门为满足物联网的需求而设计的高级编程语言。但这种高级编程语言不存在,于是 Kasper 团队开始探寻解决方案。在研究了 Python 和 JavaScript 两种编程语言后,发现这两种语言在微控制器上的编写速度不够快,存在性能不佳的障碍。随后团队开启紧缩模式,几个月后开发出了一种将内存分配抽象出的高级语言:Toit 编程语言

Toit 语言在 ESP 32 上执行代码的速度比 MicroPython 快 30 倍以上,且 Python 开发人员可以在几个小时内学会。Toit 平台允许在像 ESP 32 这样的小型微控制器上并排安装独立开发的应用程序。虚拟机内置支持基于比特流和重定位信息在闪存中构建应用程序映像。重定位信息至关重要,因为它允许设备在闪存中自由选择安装应用程序的位置。Kasper 团队没有奢侈地使用虚拟内存让系统相信应用程序总是从内存中的特定位置运行,因此他们必须使应用程序映像适应它最终存储在闪存中的实际位置。

Toit 平台通过 CoAP 到 TLS 流式传输应用程序图像结束,设备一次接收 32 个字,并在它们写入闪存之前重新定位它们。Kasper 团队设计了它,所以他们永远不必将完整图像保存在 RAM 中。一旦他们完成了所有应用程序图像位,他们就使用校验和机制验证它们,最后提交标头,将应用程序转换为有效且可运行的功能块。

典型的 Toit 应用程序映像总共约为 30 KB。其中绝大多数是以易于解释的形式描述各个方法的行为的字节码。Kasper 团队从程序的层次结构、类和接口中提取基本信息,并以紧凑的形式存储它们。类似地,Kasper 团队通过将方法作为一个扁平的字节序列集中存储在类似于 ELF 文件的 .text 段的东西中来节省空间。图像中唯一的结构化对象是应用程序附带的编译时常量。

Toit 虚拟机最终就像一个基于闪存的文件系统,带有动态重定位链接器,用于安装、升级和卸载可以直接从闪存运行的应用程序映像。应用程序是完全独立的,仅共享设备上虚拟机提供的内容。

Kasper 团队表示一开始就意识到在某些时候 Toit 编程语言必须开源,“所有主要的编程语言都是开源的,你可以从开源中获得充满活力的生态系统,这样才能大规模采用一种编程语言。”

经过多次迭代和在实际环境中使用 Toit 的大量经验,Kasper 团队运用 Toit 语言为微控制器编写了强大软件非常有用的构建块,他们也希望更多的开发人员能够从中受益。他们等待这一天已经很久了,因此很高兴能开源分享 Toit 语言,并通过 GitHub (https://github.com/toitlang/toit)来提供它。

Toit 语言的开源,也为编程语言届再添新锐,其不管是对编程语言届、开源届,还是物联网届都是一大利处,众多编程语言争宠,而你最喜欢谁呢?

参考链接:
https://docs.toit.io/language
https://medium.com/@kasper.lund?p=71dc6e2d8f5c
https://blog.toit.io/the-toit-language-is-now-open-source-14bdcb1604d9?gi=170695569ed0

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/125321.html

相关文章

  • 物联网编程语言Toit宣布开源,可实现代码秒级部署

    摘要:编程语言开源了是一种面向对象的物联网编程语言,在设备上能够实现秒级代码部署注如果使用语言,一个简单的代码更改需要几分钟才能重新部署同时,也是一种现代的内存安全的编程语言,集成了先进的编辑器功能,如语法高亮代码自动补全等等。 .markdown-body{word-break:break-word;line-height:1.75;font-weight:400;font-size:15px...

    不知名网友 评论0 收藏0
  • 微服务框架 | 潮流当该如何选择 SpringCloud、Dubbo or Istio?

    摘要:目前首个测试版是针对环境的,社区宣称在未来几个月内会为虚拟机和等其他环境增加支持。查看下在上的更新时间,截止年月日所有项目均更新于小时内。核心项目最近更新于一个月乃至数月前。所有项目均更新于分钟内。目前对比来看,则显得稍逊下来。 showImg(https://segmentfault.com/img/remote/1460000010953149); 在 Kubernetes 容器云...

    k00baa 评论0 收藏0
  • 2018先知白帽大会 | 议题解读

    摘要:摘要今年的先知白帽大会,与会者将能够亲身感受到非常多有趣的技术议题,如在国际赛事中屡夺佳绩的团队,其队长将亲临现场,分享穿针引线般的漏洞利用艺术。从数据视角探索安全威胁阿里云安全工程师议题解读本议题讨论了数据为安全人员思维方式带来的变化。 摘要: 今年的先知白帽大会,与会者将能够亲身感受到非常多有趣的技术议题,如HITCON在国际赛事中屡夺佳绩的CTF团队,其队长Orange将亲临现场...

    Hydrogen 评论0 收藏0
  • JavaScript深入浅出第5课:Chrome是如何成功的?

    摘要:所做的最重要的事情,就是对成千上万的网页进行排序,所以它存在的意义是基于网页的。确实有很多非常成功的产品,比如,,,但是它们其实都是收购来的。为什么呢因为要做到极简主义,需要深刻思考用户需求以及产品价值。 摘要: Chrome改变世界。 《JavaScript深入浅出》系列: JavaScript深入浅出第1课:箭头函数中的this究竟是什么鬼? JavaScript深入浅出第2课:...

    luqiuwen 评论0 收藏0
  • UI大全:端UI框架集合(持续更新,当32个)

    摘要:简洁直观强悍的前端开发框架,让开发更迅速简单。是一套基于的前端框架。首个版本发布于年金秋,她区别于那些基于底层的框架,却并非逆道而行,而是信奉返璞归真之道。 2017-1209 ZanUI (Vue) 2017-1218 Onsen UI(Vue, React, Angular) 2017-1215 增加 Vuetify, Weex UI, Semantic UI React,ele...

    only_do 评论0 收藏0

发表评论

0条评论

不知名网友

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<