世界上第一台电子数字计算机ENIAC(埃尼阿克)(The Electronic Numerical Integrator And Calculator)诞生在1946年2月。从此人类社会进入到信息时代。电子计算机的出现突破了人类许多计算任务的极限。例如:人类花费几十年计算的圆周率数值,计算机几十秒钟就完成了。而且还不会出错。计算机不只在计算领域应用,而且也广泛的用于自动控制、信息处理等等领域。电子数字计算机是与蒸汽机、电报同样伟大的发明。这些发明都开启了一个人类社会时代。
第一代计算机是使用电子管制造的。体积巨大、功耗也惊人。ENIAC由18000只电子管组成。(电子管的体积较大,最小的电子管称“花生管”,就是这样的体积也有手指粗细,功耗也是与手电筒里的灯泡相当)相当于18000盏白炽灯的功耗。
电费高昂啊!随着技术的进步,出现了晶体管计算机、后来又出现了集成电路计算机,现代的计算机已经进入到5纳米的集成度。体积和功耗也是成倍的缩小。现在我们使用的手机都可以装在口袋里。电子管和晶体管计算机基本上没有大规模的使用,主要集中在国家层面上的应用。例如:人口统计、航天控制等等。超大规模集成电路的出现使得计算机得到了广泛的应用。从国防、工业等领域进入到民用,甚至是个人使用,1970‘s年代后期出现了个人计算机(缩写为PC),也有称作“微型计算机”,“电脑”。随着计算机的普及与其配套的软件编程也得到了快速的发展。这里强调一下软件是随着硬件而发展的。硬件的规模越来越大,软件亦同。软件有“单机版”、“网络版”。这是不严格的称谓。比较正式的称呼是:单用户版、多用户版、互联网版等。与这些版本对应的软件架构有:C/S、B/S、微服务等等结构。
软件架构的每一次发展都是突破了上一代的禁忌,也有人称为“软件危机”。也就是硬件发展到一个阶段后软件为适应新的应用不得不调整来适应这种发展。如:互联网的出现,导致了B/S软件架构的流行。云技术的发展,促使了软件异构的发展。为了解决异构出现了微服务架构等等。这也是我为什么要从硬件的发展来讲软件的架构的原因。
1970's的后期出现了基于大规模集成电路的PC计算机,具有代表性的产品为APPLE个人计算机。APPLE II型计算机是我国大规模引进的一种计算机类型。该机型在我国80's后期才逐步的被IBM PC所取代。70's的PC机主要是8位字长的计算机。通常购买APPLE计算机的客户同时也会购买"电子表格软件",利用电子表格软件来处理会计等商业事务。PC机的出现也同时促进了软件行业的发展。从PC机出现后,软件才发展成为一个独立的行业。在此之前软件编程人员都是为计算机使用单位专门配置的。通常也是针对某台计算机进行编程。当时微软公司创建时的会计曾担心这种摸不着看不见的产品能不能卖出去,年轻的盖茨老板能不能给她发出工资来。
我国早期的软件公司也多数围绕着软件的汉化为主,曾经有人悲观的认为中国要走日本、韩国那样的拼音化道路。当然历史证明没有必要。接下来我们就来聊聊这一时期的软件。