Arduino開發板執行的官方程式語言,一直都是Arduino,相當於裹著糖衣的C/C++。11月中旬,Arduino宣布把MicroPython語言納入其生態體系,MicroPython是一種能在微控制板執行的,簡化版Python 3程式執行環境(廣告一下,詳閱《超圖解 Python 物聯網實作入門:使用 ESP8266 與 MicroPython》)。
Arduino官方與MicroPython語言的創建者Damien George(達米安·喬治)合作,把MicroPython虛擬機移植到一些開發板,目前支援下列三款,它們的MicroPython韌體可在MicroPython with Arduino網頁下載。
在程式開發工具方面,Arduino官方提供的是與Murilo Polese合作開發的MicroPython編輯器,目前是0.5-alpha測試版,功能還很陽春,有x86處理器的Windows, Mac和Linux版本,這是編輯器外觀,頗具Arduino風格:
現階段,功能完整、易用、支援多種微電腦開發板的MicroPython整合開發工具,推薦Thonny,有Windows, Mac和Linux版,而且從4.0版開始原生支援採用Apple Silicon (M1/M2) 處理器的Mac電腦。
Arduino IDE 2.0:基於Theia IDE的程式開發工具
Arduino官方於9月14日正式發表醞釀已久的IDE 2.0版。Arduino程式語言本身不變,仍舊是大家熟悉的糖衣版C/C++,但是IDE工具則砍掉重練。1.x版的開發工具本身是用Java語言寫成的,2.x版則是基於廣受歡迎的,微軟Visual Studio Code(以下簡稱VS Code)程式編輯器的開放原始碼版本:Theia IDE。
先說明一下,VS Code的FAQ頁面提到:「與其說VS Code是開放原始碼,倒不如說它是用開放原始碼技術建置的」,因為VS Code工具包含一些微軟公司的資產(如:圖示設計)和功能(如:整合Visual Studio Marketplace線上商店)。
如果其他公司(如:Arduino)打算採用VS Code來打造自家的程式編輯器,得先跟微軟洽談,此外,根據MICROSOFT軟體授權條款的說明,VS Code軟體「會蒐集和用戶相關及和用戶使用相關之資訊」。
出於上述種種原因,出現了Theia IDE這個基於VS Code的開放原始碼程式編輯器,它採用VS Code的技術,但是不包含微軟的資產,也不會蒐集用戶及其使用資訊。在Theia首頁的“Contributors & Adopters(貢獻者和採用者)”單元,Arduino, ARM, Google, 華為, IBM, …等公司名列其中。
Arduino IDE 2.0開發工具的架構
下圖顯示Arduino IDE 2.0開發工具的架構,Theia/VS Code工具本身是用網頁技術(HTML, CSS和JavaScript)開發而成的桌面應用程式,值得注意的是CLI(文字命令介面)和Language Server(語言伺服器)這兩個模組。
VS Code受歡迎且使用率高的因素之一,是它具有豐富的「延伸模組」,光是在微軟線上商店的「VS Code延伸模組」,搜尋“Programming Languages(程式語言)”分類,就有超過七千個模組可安裝使用。
Language Server(語言伺服器)
VS Code和Arduino IDE 2.0程式編輯器的程式指令提示(autocompletion)、拼寫錯誤標示、程式碼導覽(code navigation)……等功能,都是仰賴工具內建的Language Server(語言伺服器)達成的,程式編輯器是「前端」,每當我們在其中敲入文字,它就立即把輸入的文字傳給「語言伺服器」模組,讓伺服器分析這個語言的拼寫和語法,例如,假設使用者鍵入“S”,Arduino語言伺服器就會提示“Serial”之類的可用指令名稱。
Arduino IDE 2.0目前僅支援Arduino語言,而VS Code和Theia則可透過延伸模組擴充支援多種程式語言。由於Arduino IDE 2.0也具備「語言伺服器」模組,所以將來它一定會納入MicroPython,也就是說,開發人員可以用Arduino IDE 2.0編寫Arduino和MicroPython,甚至其他微電腦開發板支援的程式語言,不用額外安裝MicroPython開發工具。