這名開發人員正在將Python塞入微控制器
目前,Python是最流行的編程語言之一。它以大量的實用程序庫而聞名,而且作為一種動態編程語言,Python程序的調試速度比那些必須在執行前進行編譯的程序更快。Instagram、谷歌、聲田(Spotify)和YouTube等公司都在使用Python。
在Python繼續統治桌面和云領域的同時,微型Python(MicroPython)和電路Python(CircuitPython)兩個陣營正在為以硬件為中心的嵌入式項目開發解釋語言版本,如基于微控制器的小產品。從傳統上來說,嵌入式硬件嚴格的計算約束條件有利于編譯語言,但更強大的微控制器正在改變這種局面。
開源硬件公司阿德弗里特工業公司的斯科特?肖克羅夫特(Scott Shawcroft)領導了電路Python的開發。阿德弗里特工業公司的首席執行官利莫?弗里德(Limor Fried)是本刊編輯顧問委員會的成員,但她沒有參與本文的編寫。
肖克羅夫特說:“(阿德弗里特工業公司的)目標用戶是那些從未編寫過程序的人。”他還解釋道,電路Python能夠讓簡單項目的運行更容易。“我喜歡人們直接參與。”
肖克羅夫特說,他十幾歲時就對編程產生了興趣,他是“第一代通過Web進入涉足編程的人”。在攻讀計算機工程學位期間,肖克羅夫特曾在知識共享組織(Creative Commons)和谷歌實習。2009年,他加入了谷歌地圖團隊,之后在那里工作了6年。2015年他從谷歌離職,成立了一家無人機飛行控制器公司。“2016年我們進行了一次小規模生產,大概有10人購買了我們的產品。”肖克羅夫特笑著說。
在每周的視頻直播系列節目《表演與講述》(Show and Tell,一檔分享個人項目的真人秀節目)中,肖克羅夫特引起了阿德弗里特工業公司創意總監菲利普?托羅內(Phillip Torrone)的注意。“我在節目的最后說道:‘我需要一份工作!’” 肖克羅夫特說。
托羅內與肖克羅夫特取得了聯系,希望將當時已有兩年歷史的微型Python——物理學家達明?喬治(Damien George)開發的一個精簡版Python——移植到一種特殊的微控制器上。
“我沒有聽說過微型Python,但把Python放在硬件上的想法立刻吸引了我。”肖克羅夫特說,“利莫說完成這項工作大約需要3周,但我只花了一半的時間,因為開始以后我就停不下來了。”
阿德弗里特工業公司同意為肖克羅夫特安排全職工作,他的工作是對微型Python進行開發。因此,微型Python的創建者喬治開始收到阿德弗里特工業公司提交的大量代碼,喬治“對我們的介入和改變有些擔憂”,肖克羅夫特說。
在與喬治討論技術方面的問題時,阿德弗里特工業公司意識到他們對該語言未來的看法與喬治不同。他們不贊成在微型Python的性能和易用性之間進行取舍,肖克羅夫特想把重點放在Python庫上,希望微型Python能夠成為以Arduino微控制器系列為核心的編譯軟件生態系統的替代選擇。
“喬治主張為C核心用戶服務,而且他堅信Python的速度能夠很快。”肖克羅夫特解釋道,“但他們根本不是阿德弗里特工業公司的目標用戶群。”因此,阿德弗里特工業公司決定另起爐灶,于2017年年中正式推出電路Python。
電路Python社區自誕生以來一直發展穩定。肖克羅夫特工作中最大的挑戰就是管理這個蓬勃發展的社區。“作為一個開源維護者,如果有人要求你實現這個功能、完成那個效果,而且態度和方式很不客氣,很自以為是,你該怎么辦?”肖克羅夫特說。
一套正式的規范會有幫助。肖克羅夫特說:“這是現代所有民用開源項目的一條重要底線,你必須捍衛這條底線。我們的這條底線就曾發揮過作用。”
肖克羅夫特說,對于那些有興趣為電路Python語言做貢獻的人來說,關鍵在于實踐。“編寫大量代碼,并盡可能多地參與阿德弗里特工業公司所創建的這類社區。”他說,“我過去會說你必須熱愛它,其實這樣說并不公平,因為如果你喜歡這種語言,你就會自然而然地想要去實踐。”