IDEA!:硬件应该也有自己的“编程”语言才行

| 2013年6月17日

软件的编程语言令郎满目,各式各样,有没有硬件编程呢?有没有通用的硬件开发框架呢?似乎没有。

软件的编程语言很成熟了,拿C语言来举例。C语言让人们能够使用自然语言开发出攻计算机使用的程序,而计算机能直接读懂的程序都是机器码,再好一点是汇编语言代码,但是那些语言对自然人来说太难记,太抽象,当然好好学好好研究肯定可以驾驭,可是C语言大大的降低了程序的开发难度。因此,C语言里肯定内置了软件与硬件的通信功能,解决了高级语言和低级语言的翻译功能。

对于硬件,很类似。硬件开发难度很大,绝大多数人都难以轻松入手。需要学习的基础内容很多,尤其是基本的电路图和各种电子元件。这些事开发硬件的基本。目前来看,仍旧是只有掌握了这些硬件知识才能快速开发出好用合理的硬件来。

后来出现的单片机等集成电路减轻了很多开发者的工作,降低了开发门槛。这是硬件领域的一大进步。人们不需要知道太复杂的电路就能做出一些好用的东西。近些年出现的一些开发板,比如Arduino、树莓派等开发板更是把这种门槛降得更低。但是,从这一发展路线上来看,硬件的这种发展一直都是碎片化的。

什么叫碎片化呢?就是说硬件开发只在某个领域,某个特别功能中才比较成熟,有着类似软件开发样式的模式。开发者拿到特殊功能的开发板,研习其开发语法和电路后就能方便的开发产品了。最直接的例子就是手机。

手机被研制的很成熟了,很多小公司甚至是私人都能做出一款手机来。诸多山寨机厂商就是例子。他们也许并不懂得里面的所有原理,只需要懂得开发的基本原理,所要做的工作就是“拼装”。把通信模块,处理器模块,存储模块,数据交换模块等等拼在一起即可。有点类似于组装电脑。这都是模块化之后的好处——人们可以弄各个零件来拼出一台电脑或手机。但是,在这些产品外的其他领域呢?

在其他领域,硬件平台就发生变化了。人们不得不去使用其他开发板来开发其他商品,这又增加了开发难度和开发时间。因此,看样子应该出现一种类似于C语言一样通用的硬件开发语言。

这种硬件开发语言并不是一些简单的规则,而是必须对各种电子元件的各种接口进行统一管理,有大家公认的协议。也许这种协议已经存在了很久了,但是这种协议对于普通开发者来说过于晦涩,并不是一个好的语言。我们需要改变这种情况,让普通开发者也能够开发出通用的硬件产品。

当然,开发语言也许多种多样,但是必须每一种对于人来说都好用才行。最近的Arduino解决了一部分这方面的要求,因为人们可以借用Arduino开发出很多实用的产品,它也有自己的软件编程语言,能够很容易对机器进行各种操作和管理。不过,Arduino只能看作是雏形。它离真正的硬件语言还有距离。这方面的标准还远未成型,更谈不上永久通用了。人们所能做的并不是开发Arduino硬件产品,而是使用Arduino增加一些模块来实现一些功能。这种做法就很好,它带领人们进入了一种模块化的世界。人们可以根据需求寻找对应模块来实现某种功能,而且成本也很低,难度也很小。但是Arduino有点孤独,目前在全球范围内只能算是小众在用,对大多数人来说仍有些抽象。虽然不能类比,不过在这方面Arduino可以学一学乐高。

关于硬件的语言,我们应该感到是他出现的时候了,因为我们需要它。

by TAHO

2013.06.17

发表评论

电子邮件地址不会被公开。 必填项已用*标注