吐槽物聯網開發難搞,一羣工程師搞了個Toit 語言並宣佈開源,其與Python類似

{"type":"doc","content":[{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"Toit 編程語言宣佈開源"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"近日,Toit 編程語言團隊宣佈將項目開源。但其實很多開發者對Toit並不熟悉,Toit究竟是什麼?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"Toit是由 Google Chrome V8 團隊開發的,創立於 2018 年,旨在爲物聯網設備構建一個通用固件,以取代傳統的開發流程。它們提供了一套全新的功能,甚至是一種專爲物聯網開發的類似 Python 的新編程語言。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"Toit是一種用於物聯網(IoT,Internet of Things)的面向對象的編程語言,這也是它與其他用於嵌入式系統的編程語言最大的不同之處。它集成了語法高亮、goto-definitions 和自動補全等先進的編輯器功能。根據官方文檔顯示,Toit 在 IoT 設備上能夠實現數秒級別的快速代碼部署。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"藉助 Toit 這個專門用於物聯網的語言,可以實現更好的電源管理,這對物聯網這類採用電池供電的設備十分重要。Toit 還具有一個自動內存管理系統,有助於優化內存使用,使設備能長期穩定運行避免崩潰。新語言還帶有垃圾收集器,同樣有助於內存管理系統。像上述這樣的功能在傳統的編程語言中通常是不具備的。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"對物聯網感到沮喪,一羣工程師決定“搞點事情”"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"對於開源Toit編程語言的初心,Toit團隊表示,幾年前,一羣軟件工程師對物聯網 (IoT) 的狀態感到非常沮喪。物聯網能夠將我們周圍的所有設備變得更加智能:我們的家用電器、工業機器和建築物將被連接起來,並且能夠像普通計算機一樣交互、共享數據和擁有複雜的邏輯。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"但這個未來還沒有到來,因爲爲物聯網編寫軟件真的很難。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"雖然現代軟件開發是由持續交付、迭代和實驗驅動的,但物聯網卻像是一個“怪物”,與上述法則格格不入。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"物聯網之所以“難搞”,主要有以下四個原因:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"首先,由於功耗過大,典型的物聯網芯片資源過於有限,無法運行 Linux。因此,人們要麼直接在設備(所謂的裸機)上編寫代碼,要麼在非常有限的任務調度程序上編寫代碼,這兩者都沒有爲開發者提供出能夠在其他平臺上獲得的抽象機制或支持。"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"其次,軟件是特定於芯片的,你將與第一批芯片設備製造商捆綁在一起。"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"第三,一旦你有了硬件並編寫了軟件,你會發現更新設備真的很困難:唯一的方法就是全部刷新,這意味着你要刪除設備上的所有軟件,重新安裝它,然後祈禱它能重新上線。一旦失敗,例如你的代碼中某處存在錯誤,那麼你的設備也就跟着“完蛋”了。"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"最後,管理多個設備很複雜:在現代軟件開發中,一個常見的策略是逐漸向越來越多的用戶推出新版本。物聯網設備無法做到這一點。"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"憑藉在 Google爲"},{"type":"text","text":"Flutter"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"構建"},{"type":"text","text":"V8 JavaScript 引擎"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"和"},{"type":"text","text":"Dart 語言"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"的豐富經驗,Toit團隊"},{"type":"text","text":"着手"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"開發最佳平臺,爲連接到互聯網的嵌入式設備構建、部署和維護軟件。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"在開發Toit時,也並非一帆風順。據研發團隊稱:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"當我們開始構建平臺時,我們很快意識到我們需要一種高效的高級編程語言,專門爲滿足物聯網的需求而設計。但是它不存在。於是我們研究了 Python 和 JavaScript,但在微控制器上,這兩種語言的編寫速度不夠快,我們不願意受到性能不佳的阻礙。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我們不得不解決一些棘手的技術問題,但在 2021 年初,我們有了一個工作平臺,我們開始讓開發人員能夠爲他們的微控制器構建高質量的功能。如今,我們有世界各地的客戶在"},{"type":"link","attrs":{"href":"https:\/\/toit.io\/","title":null,"type":null},"content":[{"type":"text","text":"Toit 平臺"}]},{"type":"text","text":"上構建他們的產品。"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"據該團隊介紹,Toit在 ESP32 上執行代碼的速度比 MicroPython 快 30 倍以上,它與 Python 非常相似,Python 開發人員可以在幾個小時內學會該門語言。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"之所以開源這門語言,Toit研發團隊表示:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我們從一開始就知道 Toit 語言在某個時候必須是開源的。所有主要的編程語言都是開源的,你可以從開源中獲得充滿活力的生態系統,才能大規模採用一種語言。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"經過多次迭代和在實際環境中使用 Toit 的大量經驗,我們現在知道Toit 語言是爲微控制器編寫強大軟件時非常有用的工具,我們希望更多的開發人員能夠從中受益。我們等待這一天已經有一段時間了,但我們很高興地分享我們已經開源了 Toit 語言和我們的實現,並"},{"type":"link","attrs":{"href":"https:\/\/github.com\/toitlang\/toit","title":null,"type":null},"content":[{"type":"text","text":"通過 GitHub 提供"}]},{"type":"text","text":"了它。"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"Toit項目地址:"},{"type":"link","attrs":{"href":"https:\/\/github.com\/toitlang\/toit","title":null,"type":null},"content":[{"type":"text","text":"https:\/\/github.com\/toitlang\/toit"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"參考鏈接:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/blog.toit.io\/the-toit-language-is-now-open-source-14bdcb1604d9?gi=d83cbb7f93f8","title":null,"type":null},"content":[{"type":"text","text":"https:\/\/blog.toit.io\/the-toit-language-is-now-open-source-14bdcb1604d9?gi=d83cbb7f93f8"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/www.oschina.net\/news\/170259\/toit-language-open-source","title":null,"type":null},"content":[{"type":"text","text":"https:\/\/www.oschina.net\/news\/170259\/toit-language-open-source"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]}]}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章