这名开发人员正在将 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 语言做贡献的人来说,关键在于实践。“编写大量代码,并尽可能多地参与阿德弗里特工业公司所创建的这类社区。”他说,“我过去会说你必须热爱它,其实这样说并不公平,因为如果你喜欢这种语言,你就会自然而然地想要去实践。”