摘要:月日,編程語言聯合創始人正式宣布編程語言開源。在研究了和兩種編程語言后,發現這兩種語言在微控制器上的編寫速度不夠快,存在性能不佳的障礙。
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
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/125321.html
摘要:編程語言開源了是一種面向對象的物聯網編程語言,在設備上能夠實現秒級代碼部署注如果使用語言,一個簡單的代碼更改需要幾分鐘才能重新部署同時,也是一種現代的內存安全的編程語言,集成了先進的編輯器功能,如語法高亮代碼自動補全等等。 .markdown-body{word-break:break-word;line-height:1.75;font-weight:400;font-size:15px...
摘要:目前首個測試版是針對環境的,社區宣稱在未來幾個月內會為虛擬機和等其他環境增加支持。查看下在上的更新時間,截止年月日所有項目均更新于小時內。核心項目最近更新于一個月乃至數月前。所有項目均更新于分鐘內。目前對比來看,則顯得稍遜下來。 showImg(https://segmentfault.com/img/remote/1460000010953149); 在 Kubernetes 容器云...
摘要:摘要今年的先知白帽大會,與會者將能夠親身感受到非常多有趣的技術議題,如在國際賽事中屢奪佳績的團隊,其隊長將親臨現場,分享穿針引線般的漏洞利用藝術。從數據視角探索安全威脅阿里云安全工程師議題解讀本議題討論了數據為安全人員思維方式帶來的變化。 摘要: 今年的先知白帽大會,與會者將能夠親身感受到非常多有趣的技術議題,如HITCON在國際賽事中屢奪佳績的CTF團隊,其隊長Orange將親臨現場...
摘要:所做的最重要的事情,就是對成千上萬的網頁進行排序,所以它存在的意義是基于網頁的。確實有很多非常成功的產品,比如,,,但是它們其實都是收購來的。為什么呢因為要做到極簡主義,需要深刻思考用戶需求以及產品價值。 摘要: Chrome改變世界。 《JavaScript深入淺出》系列: JavaScript深入淺出第1課:箭頭函數中的this究竟是什么鬼? JavaScript深入淺出第2課:...
摘要:簡潔直觀強悍的前端開發框架,讓開發更迅速簡單。是一套基于的前端框架。首個版本發布于年金秋,她區別于那些基于底層的框架,卻并非逆道而行,而是信奉返璞歸真之道。 2017-1209 ZanUI (Vue) 2017-1218 Onsen UI(Vue, React, Angular) 2017-1215 增加 Vuetify, Weex UI, Semantic UI React,ele...
閱讀 3735·2023-01-11 11:02
閱讀 4244·2023-01-11 11:02
閱讀 3050·2023-01-11 11:02
閱讀 5180·2023-01-11 11:02
閱讀 4737·2023-01-11 11:02
閱讀 5534·2023-01-11 11:02
閱讀 5313·2023-01-11 11:02
閱讀 3986·2023-01-11 11:02