程序原本(二十九):语言及其面临的系统——从功能到系统(面对规模问题,我们仍未能超越前人的思想:结构化)

阅读数:39 2019 年 9 月 28 日 18:21

程序原本(二十九):语言及其面临的系统——从功能到系统(面对规模问题,我们仍未能超越前人的思想:结构化)

从计算机应用的历史来看,我们在语言中加入新的元素,其本质的原因正是旧的语言特性在应对规模(而非仅仅是计算)的时候显得力不从心,尤其是在应用系统这两个规模级别中,(在语法与语义上的)语言特性体现出来的代码组织能力,相当大的程度上决定了这门语言所适用的开发规模。

最后,我们用表 5 总结一下不同视角对这些规模的认识。

表 5 不同视角对四种开发规模的认识

程序原本(二十九):语言及其面临的系统——从功能到系统(面对规模问题,我们仍未能超越前人的思想:结构化)

* 关于软件工程师这个开发者类型:使用这个有争议的名字原因在于,(基于一些历史的、习惯性的因素,)程序、应用和系统被我们统称为软件,因而“软件工程师”它们统一的基础角色。当然,在此前,他还必须是一个程序员。

在继续讨论之前,我们先来明确一下将要讨论的对象。

首先,我们要讨论编程(programming),一些场合中也被称为程序设计(program design)。可惜在不太严格的场合下,几乎所有编写软件的活动都被称为程序设计——这是相当可怕的事实。因此,必须明确地对它做一个定义,即我们用程序设计来特指在功能与程序这两个级别上编写软件;相应地,我们将其后的两个规模分别称为应用开发系统构建。程序设计、应用开发和系统构建这三种规模下的软件开发活动,是我们后续四篇中将要分别讨论的话题。

这几类活动有着显著的区别。程序设计主要应对计算要素问题,产出是一般含义上的程序应用开发主要应对程序组织问题,产出是有产品化概念的软件系统构建主要应对跨领域问题,产出是可持续进化的系统——例如平台,如图 6 所示。

图 6 两种“结构化”方向的本质差异

程序原本(二十九):语言及其面临的系统——从功能到系统(面对规模问题,我们仍未能超越前人的思想:结构化)

评论

发布