1.5.6 一种垂直的视角
有人曾经宣布古生物学家可以重构一个完整的恐龙, 并且通过研究一块小的骨骼来描述它的生活方式和自然环境。这有可能是一种夸张的说法, 但是从中可以体会到通过观察一个简单的产品来思考它的含义的思想。我们考虑一下这张显示火星风景的照片, 它由NASA的火星探测器携带的照相机所拍摄:
如果你希望研究“火箭科学”, 那么成为好的程序员是一种方式。各种空间计划需要大量软件设计人员, 特别是根据载人或非载人空间计划需要的懂得物理、 数学、 电子工程、 机械工程、 医疗工程等的人员。人类已成功发射两颗探测器围绕火星运行四年多(估计的设计寿命是3个月), 这是人类文明最伟大的成就技术之一。
这张照片通过一条通信信道经过单向25分钟的传输延时传输到地球, 这里需要很多巧妙的编程(www.cppentry.com)和高等数学应用, 以便保证以最少的比特数、 同时无差错地传输图片。在地球上, 通过某些算法对这张照片进行渲染以恢复颜色和减小失真, 这些问题都是由光学和电子传感器引起的。
火星探测器的控制程序当然也是程序, 探测器每24小时会自动驱动一次, 执行前一天从地球发送的指令。数据传输也是由程序来管理的。
探测器中的各种计算机使用的操作系统、 传输和照片重构都是程序, 在这点上和用来编写本章的各种应用程序相似。运行这些程序的计算机是通过CAD/CAM(计算机辅助设计和计算机辅助制造)程序来设计和生产的。这些计算机中的芯片是通过计算机化生产线用精密工具组装的, 这些工具在它们的设计和制造中也使用计算机(或软件)。对这个长期组装过程的质量监控涉及大量计算。所有这些代码都由程序员用高级编程(www.cppentry.com)语言编写, 并且通过编译器(本身就是一个程序)转换成机器代码。很多程序使用GUI与用户进行交互, 以及使用输入/输出流进行数据交换。
最后, 在图像处理(包括来自火星探测器的照片处理)、 动画和照片编辑(在网络上有很多描述围绕“火星”的探测器照片)方面也需要大量编程(www.cppentry.com)工作。