1.5.6 一种垂直的视角
有人曾经说古生物学家通过研究一块小的骨骼就可以重构一只完整的恐龙,并且描述它的生活方式和自然环境。这有可能是一个夸张的说法,但是这代表了一种思想:通过观察一个简单的物件来思考它暗示了什么。我们考虑一下这张显示火星风景的照片,它由NASA的火星漫步者探测器携带的照相机所拍摄:
如果你希望研究“火箭科学”,成为好的程序员是一种方式。各种空间计划需要大量软件设计人员,特别是懂得一些物理、数学、电子工程、机械工程、医疗工程等知识(它们都是载人或非载人空间计划的基础)的人员。两台漫步者火星车成功在火星上运转多年,这是人类文明最伟大的技术胜利之一。其中一台(勇气号)在6年时间里不断发回数据,本书写作时另一台(机遇号)仍在服役,到2014年1月就将在火星上度过第10个年头。而它们的设计寿命只有3个月。
这张照片通过一条通信信道经过每次25分钟的传输延时传输到地球,这里需要很多巧妙的编程和高等数学知识,以便保证以最少的比特数、无差错地传输图片。在地球上,通过某些算法对这张照片进行渲染以恢复颜色和减小失真,这些问题都是由光学传感器和电子传感器引起的。
火星漫步者的控制程序当然也是程序,漫步者每24小时会自动驾驶一次,并执行前一天从地球发送的指令。其中的数据传输是由程序来管理的。
漫步者中的各种计算机使用的操作系统、数据传输和照片重构都是程序,就像用来编写本章的计算机应用程序一样。运行这些程序的计算机是通过CAD/CAM(计算机辅助设计和计算机辅助制造)程序设计和生产的。这些计算机中的芯片是通过计算机化生产线用精密工具组装的,这些工具在它们的设计和制造中也使用计算机(或软件)。对这个很长的组装过程的质量监控涉及很多重要计算。所有这些代码都由程序员用高级编程语言编写,并且通过编译器(本身就是一个程序)转换成机器代码。很多程序使用GUI与用户进行交互,使用输入输出流进行数据交换。 ...
