中国卓越技术团队访谈录读者调查,2022年采访嘉宾由你决定! 了解详情
写点什么

吐槽物联网开发难搞,一群工程师搞了个 Toit 语言并宣布开源,其与 Python 类似

  • 2021 年 11 月 24 日
  • 本文字数:1681 字

    阅读完需:约 6 分钟

吐槽物联网开发难搞,一群工程师搞了个Toit 语言并宣布开源,其与Python类似

Toit 编程语言宣布开源

 

近日,Toit 编程语言团队宣布将项目开源。但其实很多开发者对 Toit 并不熟悉,Toit 究竟是什么?

 

Toit 是由 Google Chrome V8 团队开发的,创立于 2018 年,旨在为物联网设备构建一个通用固件,以取代传统的开发流程。它们提供了一套全新的功能,甚至是一种专为物联网开发的类似 Python 的新编程语言。

 

Toit 是一种用于物联网(IoT,Internet of Things)的面向对象的编程语言,这也是它与其他用于嵌入式系统的编程语言最大的不同之处。它集成了语法高亮、goto-definitions 和自动补全等先进的编辑器功能。根据官方文档显示,Toit 在 IoT 设备上能够实现数秒级别的快速代码部署。

 

借助 Toit 这个专门用于物联网的语言,可以实现更好的电源管理,这对物联网这类采用电池供电的设备十分重要。Toit 还具有一个自动内存管理系统,有助于优化内存使用,使设备能长期稳定运行避免崩溃。新语言还带有垃圾收集器,同样有助于内存管理系统。像上述这样的功能在传统的编程语言中通常是不具备的。

对物联网感到沮丧,一群工程师决定“搞点事情”

 

对于开源 Toit 编程语言的初心,Toit 团队表示,几年前,一群软件工程师对物联网 (IoT) 的状态感到非常沮丧。物联网能够将我们周围的所有设备变得更加智能:我们的家用电器、工业机器和建筑物将被连接起来,并且能够像普通计算机一样交互、共享数据和拥有复杂的逻辑。

 

但这个未来还没有到来,因为为物联网编写软件真的很难。

 

虽然现代软件开发是由持续交付、迭代和实验驱动的,但物联网却像是一个“怪物”,与上述法则格格不入。

 

物联网之所以“难搞”,主要有以下四个原因:

 

  • 首先,由于功耗过大,典型的物联网芯片资源过于有限,无法运行 Linux。因此,人们要么直接在设备(所谓的裸机)上编写代码,要么在非常有限的任务调度程序上编写代码,这两者都没有为开发者提供出能够在其他平台上获得的抽象机制或支持。

 

  • 其次,软件是特定于芯片的,你将与第一批芯片设备制造商捆绑在一起。

 

  • 第三,一旦你有了硬件并编写了软件,你会发现更新设备真的很困难:唯一的方法就是全部刷新,这意味着你要删除设备上的所有软件,重新安装它,然后祈祷它能重新上线。一旦失败,例如你的代码中某处存在错误,那么你的设备也就跟着“完蛋”了。

 

  • 最后,管理多个设备很复杂:在现代软件开发中,一个常见的策略是逐渐向越来越多的用户推出新版本。物联网设备无法做到这一点。

 

凭借在 Google 为 Flutter 构建 V8 JavaScript 引擎Dart 语言的丰富经验,Toit 团队着手开发最佳平台,为连接到互联网的嵌入式设备构建、部署和维护软件。

 

在开发 Toit 时,也并非一帆风顺。据研发团队称:

 

当我们开始构建平台时,我们很快意识到我们需要一种高效的高级编程语言,专门为满足物联网的需求而设计。但是它不存在。于是我们研究了 Python 和 JavaScript,但在微控制器上,这两种语言的编写速度不够快,我们不愿意受到性能不佳的阻碍。

 

我们不得不解决一些棘手的技术问题,但在 2021 年初,我们有了一个工作平台,我们开始让开发人员能够为他们的微控制器构建高质量的功能。如今,我们有世界各地的客户在Toit 平台上构建他们的产品。

 

据该团队介绍,Toit 在 ESP32 上执行代码的速度比 MicroPython 快 30 倍以上,它与 Python 非常相似,Python 开发人员可以在几个小时内学会该门语言。

 

之所以开源这门语言,Toit 研发团队表示:

 

我们从一开始就知道 Toit 语言在某个时候必须是开源的。所有主要的编程语言都是开源的,你可以从开源中获得充满活力的生态系统,才能大规模采用一种语言。

 

经过多次迭代和在实际环境中使用 Toit 的大量经验,我们现在知道 Toit 语言是为微控制器编写强大软件时非常有用的工具,我们希望更多的开发人员能够从中受益。我们等待这一天已经有一段时间了,但我们很高兴地分享我们已经开源了 Toit 语言和我们的实现,并通过 GitHub 提供了它。

 

Toit 项目地址:https://github.com/toitlang/toit

 

参考链接:

 

https://blog.toit.io/the-toit-language-is-now-open-source-14bdcb1604d9?gi=d83cbb7f93f8

 

https://www.oschina.net/news/170259/toit-language-open-source

2021 年 11 月 24 日 14:001576
用户头像

发布了 322 篇内容, 共 93.6 次阅读, 收获喜欢 438 次。

关注

评论

发布
暂无评论
发现更多内容

PP-OCR

闲云野鹤

JavaScript 中优雅处理对象的6个方法

devpoint

JavaScript Object 10月日更

MyBatis原生批量插入的坑与解决方案!

王磊

mybatis springboot

制造业中的云计算:从不可能到不可或缺

浪潮云

云计算

《微信小程序全栈开发实战》源码下载,附视频链接、文字稿、源码对照关系,一篇掌握全栈开发

石桥码农

JavaScript 微信小程序 大前端 微信小程序专栏

MySQL 数据存储/索引/事务隔离级别/主从复制/分库分表

赖猫

c++ MySQL 数据库 后台开发 后端

分析型CRM软件能帮到你什么?

低代码小观

企业 企业管理 CRM 管理工具 系统管理

音视频学习 -- 弱网对抗技术相关实践

声网Agora

音视频 网络 实时视频

模块一作业

bob

「架构实战营」

科技热点周刊|GitLab 上市、LinkedIn 中国停止运营、Visual Studio 2022 正式版将发布

青云技术社区

云计算 云原生 云安全

从Spring到Spring Boot

风翱

springboot 10月日更

官方线索|1024 51CTO 程序员嘉年华

穿过生命散发芬芳

1024我在现场

持币生息钱包软件系统开发资料(源码)

Java 面试八股文之数据库篇(二)

Dobbykim

AI产业化加速时代,中国大学生何以勇攀时代高峰?

脑极体

【设计模式】第六篇 - 工厂方法模式

Brave

设计模式 工厂模式 10月日更

自定义 View:三维旋转

Changing Lin

10月日更

Prometheus 查询操作符(二) 向量匹配

耳东@Erdong

Prometheus 10月日更

前端flex布局最全文档,工作学习中复习必备

前端史塔克

html css3 大前端 html/css

1.1 课程介绍

石桥码农

微信小程序 微信小程序专栏

网络安全等保:Oracle数据库测评

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 安全漏洞

音视频:H.264与H.265编码

程序员架构进阶

视频编解码 视频流 10月日更 H.265

《第6章 分支语句和逻辑运算符》

IT蜗壳-Tango

10月日更

【架构实战营】模块一

Henry | 衣谷

架构实战营

架构训练营-模块一

Geek_9de3de

架构实战营

未来云原生 | CIF 论坛精彩看点

CODING DevOps

DevOps 云原生 数字化 标准化 腾讯云 CIF 峰会

听说,99% 的 Go 程序员都被 defer 坑过

AlwaysBeta

golang defer panic recover Go 语言

一文详解JVM垃圾收集机制,10张图帮你轻松搞定大厂面试难点

互联网架构师小马

崎岖的矿山路:无人矿卡的那些难题与智变

脑极体

微服务中服务注册和发现的可行性方案

看山

微服务 10月日更

在体制内做事的八个建议

石云升

学习笔记 职场经验 10月日更

撑起瞬时千亿交易额的云数据库是怎么炼成的?

撑起瞬时千亿交易额的云数据库是怎么炼成的?

吐槽物联网开发难搞,一群工程师搞了个Toit 语言并宣布开源,其与Python类似-InfoQ