软件(英语:software)是一系列按照特定顺序组织的计算机数据和指令,是计算机中的非有形部分。计算机中的有形部分称为硬件,由计算机的外壳及各零件及电路所组成。计算机软件需有硬件才能运作,反之亦然,软件和硬件都无法在不互相配合的情形下进行实际的运作。
一般来说,计算机软件划分为编程语言、系统软件、应用软件和介于这两者之间的中间件。其中系统软件为计算机使用提供最基本的功能,但是并不针对某一特定应用领域。而应用软件则恰好相反,不同的应用软件根据用户和所服务的领域提供不同的功能。
Python 是增长最快的编程语言,从 DevOps 到统计分析,甚至桌面软件,它无处不在,但在微控制器开发领域明显缺少 Python 的使用。MicroPython/CircuitPython 比竞争语言更容易为初学者所接受,同时对于工业用例来说仍然足够强大。您可以从学习基础知识到从事实际工作,而且速度很快。
传统上,对机器人、微控制器、电子设备和其他硬件进行编程必须使用汇编程序或 C++ 等低级语言,并牺牲很多功能。随着MicroPython/CircuitPython的推出,这一切都发生了变化。将其对比其他语言,C++ 快速、紧凑且随处可用,但MicroPython/CircuitPython 在易用性和便利性方面胜过 C++;在确实需要最低级别的原始性能时,您可能仍旧需要汇编语言(Assembly)。最后,您还可以将 C++ 代码和汇编程序添加到 MicroPython 项目中。
硬件编程(物理计算,Physical Computing)是把控制器对数据处理器的控制过程可以写成硬件程序,从而控制硬件(如STEM领域常见的Micro:bit、Arduino等)的输出装置(如常见的指示灯、喇叭、马达等)完成相应的操作。在Maker领域,对现实世界的硬件进行编程,进而制作各种有趣的小发明,相比更加抽象的软件编程,直观而有趣的过程吸引了许多人的参与。
受 Scratch 在帮助新手入门编程方面取得了巨大成功的鼓舞,人们想把 Scratch 的成功经验移植到硬件编程领域,许多公司(如Google、微软和乐高等)和高校(如CMU、MIT、UC Berkeley等)正努力使用图形积木来控制硬件。Scratch 联合创始人兼首席架构师 John Maloney 也创办了 MicroBlocks。