在上一篇文章里,我们探讨了如何实现嵌入式设备的互联性,以及、无线与手持设备网络的利弊。但是我们并未探讨什么是基础设备,以及软、
在过去的50年间,我们了计算技术的发展:从大型主机到互联的台式电脑再到智能连接设备。嵌入式硬件也经历了类似的发展过程:从简单的4比特、8比特、16比特的计算设备,到32比特的单核与多核芯片,再到为某些类别嵌入式设备而设计的64比特多核芯片。作为单核的延伸,多核这种发展趋势加入了互联性,因此一台设备可以成为分布式嵌入式系统的一部分,而不是像过去那样仅仅是一立的设备。编写一个运行在单核CPU上的单线程进程相当简单。然而,开发多线程的代码就要复杂得多。如果我们再进一步,想要开发多线程的代码,并在多核的机器上运行,而且每个内核的负载能保持平衡,那么开发者的工作就会更复杂。如果你觉得这样还不够,那就把你的设备变成分布式嵌入式系统的一部分吧,这样嵌入式开发者就会被忙得焦头烂额。
软件领域的发展趋势与此类似。几年前,大部分软件是用汇编语言编写的。这么做非常耗时,如果季建业的情人周冰打印在折叠纸上的线列。这样其他人就很难看懂代码,也不容易调试或解码。从汇编语言到更高级的语言,比如C/C++,极大地提高了开发者的效率,而且源代码也因此更容易看懂了!编程效率的提高,不但是因为更高级的编程语言,也因为有了关联的执行时间函数库。例子之一就是,在开发一款Windows应用程序时,使用Windows基础库(Windows Foundations Classes)要比使用原始的Win32编程语言简单得多。今天,编程语言并不局限于C#,框架也不局限于Framework,而是在继续发展。这些框架促进了应用程序的迅猛发展,并且通过提供一系列的辅助库,大大减轻了开发者的负担。这样,开发者们就可以关注于如何写代码才能使自己的应用程序独一无二,而不是大量原始的、基础要素帮助运行应用程序。
还有一个发展趋势是注重用户体验(请注意,我说的并不是用户界面)。这个领域已经有了许多佼佼者,尤其是Windows Embedded Compact 7 CTP与Silverlight的加入,增强与提高了用户的交互和体验。用户体验包含了大量用户输入与输出的方式。如果我们让时光倒流30年,主要的用户体验就是命令提示符与键盘。时光倒流20年的话,那时的图形用户界面就是键盘与鼠标。而今天,用户们可以根据设备的类型与使用场景,体验到更加身临其境的用户体验与输入-输出方式。尽管某些设备使用的是2D图像、键盘与鼠标,另外一些设备可能使用语音来输入输出;还有些设备也许会使用3D硬件加速图像与触控、手势和多点触控。
本文的重点就是,开发者们需要选用合适的编程语言与框架来建立他们的设备体验。这一过程包括许多事情,有处理多核或分布式系统编程,与基于云的服务的交互,以及建立身临其境的用户体验。