中文 | English

在Arduino上開發、運用TinyGo

翻攝自Arduino.cc網站

 

數週前,Arduino團隊宣告,現在,在Arduino可以運作TinyGo。TinyGo是一個廣受歡迎的編譯器,使Go程式語言可在微控制器上使用。該團隊邀請到技術專家Ron Evans,一起來聊聊Arduino與TinyGo的整合。

Q: 我們的一些讀者知道Go程式語言(我們自己都使用Go語言,開發許多我們的工具)。請簡短地說明:TinyGo是什麼?以及它與Go本身相較如何?

A: TinyGo是一個Go語言的編譯器,專門針對比較小的地方,例如微控制器。TinyGo是在Go語言中被撰寫,如同標準的Go編譯器,但TinyGo使用LLVM工具鍊編譯Go程式,使Go程式可達至於一般尺寸的分數般大小。TinyGo也應用不同的運行時間實行,為要針對受限制的環境。

Q: 為何選擇TinyGo,而非其它程式語言?

A:如果軟體正吃掉這個世界,那麼Go程式語言正吃掉軟體的世界!Go語言受歡迎的程度仍快速擴展,並且TinyGo幫助新的「企業標準」程式語言,達至最小的處理器上。此外,作為一種編譯語言,TinyGo可以提供實質上更好的效能及尺寸上的效率性,若與其它編譯語言,如JavaScript和Python相較。

Q: 與崁入式Python和JavaScript的相較,TinyGo的表現如何?

A: 使用Go一個很好的原因是,清楚且可維護的程式碼,Go語言堅持這些程式碼由您撰寫。一般而言,正常Go的模具,即包括Go語言本身,當撰寫TinyGo的程式碼,正是讀者使用的。例如,標準內建程式碼的格式化。TinyGo包括Go「net」組件的實作,針對Arduino Nano33 IoT,所以讀者可以更輕易地針對TCP/UDP或更高等級的通訊協定,例如MQTT,重新使用現存的Go程式碼。這真使建構商業或工業IoT解決方案容易多了!

    另一個使用TinyGo的原因是,使用Go的併發的能力。TinyGo實作了Go的例行程序,可大幅簡化您的程式碼,所以,能最大化由當前32位元微控制器提供的效能優勢。

Q: IoT的安全性是現今最熱門的議題。TinyGo提供什麼樣的工具,促進安全專案的發展?

A: 運用TinyGo,有許多工具可使開發、佈署、運作有益於邊緣運算的應用,而其要求更高的安全性。既然程式碼以二進位編譯,為使運算安全,便可能使用「代碼簽名」,以及其它眾所皆知的方法。

    另外一項安全性措施是,當任何裝置的資料,從裝置本身傳輸至任何雲端儲存服務或分析服務時,必須加密。在Arduino Nano33 IoT上的TinyGo,可以針對SSL通訊至雲端服務,使用標準API,例如針對Go,使用Eclipse基金會的Paho MQTT用戶端。這使開發者首次開發應用時,就做對的事情容易多了。

Q: TinyGo可以如何改善Arduino的生態系統?我們目前的使用者,可以如何從使用TinyGo獲益?他們能夠使用現存的Arduino函式庫嗎?

A: 在Arduino的世界中,有一個非常活躍的社群,有非常多現存、有用的函式庫。我們正計畫於不久的將來,更深整合由Arduino支持的TinyGo。

Q: 許多人喜愛TinyGo,因為它簡單而且威力強大。針對Arduino的使命:「使科技對每個人來說皆簡單」,您在TinyGo上有看到任何相似性嗎?

A: Arduino確實是開源硬體運動的先驅,並且定義清楚的至裝置的API,貢獻巨大。TinyGo非常想嘗試體現同樣的精神,同時提供慣用的Go語言的撰寫程式體驗。與感性結合,已使TinyGo如此受歡迎,並且是我們持續成長的動力,同時具備Arduino支持的驚人能力。所以,我們可以達至的沒有極限!

    如果您想更多了解TinyGo,請點這裡這處,謝謝。

 

(感謝Arduino團隊開放授權,使我們能翻譯這篇文章,特此致謝!若想觀看原文,請見,謝謝。)

Tags Arduino

分享到社群