一代人有一代人的COBOL - 编程历史小随笔

一代人有一代人的COBOL

每一代的计算机从业者,都会遇到属于他们时代的1959年的“COBOL时刻“。

这是一个人类与机器沟通时的抽象层级不断跃升的过程。每一代人士,都会经历那个,“某个职位是否会取代我”的疑惑,“A职位是否会与B职位合并”的害怕,以及“我们的技术未来,到底会向何方”的,仰望天空,但是就如观测宇宙一样,自然却无法立即获得答案的发问。我们当然可以以今时今日的上帝视角告诉1959年的人士,今天的一切,解释他们当时的迷茫,害怕,不满甚至愤怒,正如我们现在被困在今时今日的历史时代中,但是我们自己就在历史所定义的“now and only now”的迷雾中。

从狭义的计算机编程来讲,或者从广义上的人类以各种方式告诉计算机它应该如何干活开始,每一次我们都在以各种方式尝试使得技术变得更加简单,直观,民主化,更加强调人是计算世界的主宰,更加弱化“一个巨大的机器配五个工作人员”的,人围绕机器的想法。从二战结束以后到现在,人类尝试了非常多的方式,所以,这就是我的开题,一代人有一代人的COBOL时刻。

我在雪城大学念书的时候,因为所在学院School of Information Studies与IBM的合作比较密切,所以机缘巧合地接触了Mainframe大机,接触了COBOL,IBM z/OS,ISPF, JCL这一些与个人计算时代完全不同的存储和技术路线。这让我接触到了这一些在时间线上古老的技术,此时此刻,正如彼时彼刻。

COBOL全称 Common Business-Oriented Language,由Grace Hopper在1959年带领团队于1959年公布。(偏题说,1947年,Grace Hopper第一个记录下来了人类有记录的软件运行bug,因为那真的是一个虫子卡在了计算机里造成的故障)。

当时她和她的团队为了解决一个问题:软件工程师的编程非常困难,而审计和商务人士面对如天书一样的代码也不知所以然。我们在这里先没有讨论科学运算中的运用,而是当时在银行业和金融业里早期使用计算机处理业务的场景。

想象一下,你是生活在20世纪60年代初的美国软件工程师,在一家地方大银行公司上班。那个时候,全美国的跨行实时查询余额并现金提款的功能还有十几二十年后才完全支持(无论是柜台与柜员交流还是ATM机),但是你那个时候不知道。你只知道,你的地方银行,已经引入了早期的处理交易的计算机IBM 1401,这个巨大的占用了一整个房间的机器可以把手动工作自动化,你知道它其实是一个非常不好伺候的机器,因为为它编写软件,简直是灾难。你用Autocoder给IBM1401 写代码,但是它的行文可读性太差了,但是你已经知道,比起早期的IBM 650 (更早的型号)上的SOAP (Symbolic Optimal Assembly Program)编写的难度来说,已经好很多了。

下面是一个非常简单的操作,就是一个客户进入到了营业厅,说我要取x美元,这是我的存折。银行柜员取了x美元现金给这位客户,然后记录下来了交易流程,等到每晚上批处理(Batch Processing)。在那个时代,实时在银行机器系统里查询户头余额是不可能的,所以白天只有相信客户存折上记载的是正确的。

接下来就是这个Autocoder程序的一个例子,看看诸位如果在没有行解释的情况下是否能看懂它的一分一毫:

* --------------------------------------------------------------
* IBM 1401 AUTOCODER - CASH WITHDRAWAL
* --------------------------------------------------------------

 label  op    operands          remarks
 INPUT  DA    1,80              ;

 ACCT   EQU   INPUT+10          ;
 OLDBAL EQU   INPUT+20          ; 
 AMT    EQU   INPUT+30          ; 

 START  R                       ; 
        SW    OLDBAL            ; 
        SW    AMT               ; 

        S     AMT,OLDBAL        ; 
        BM    OVERDFT,OLDBAL    ;
                                ;
        MCW   OLDBAL,050        ; 
        MCW   ACCT,040          ;
        P                       ;
                                ;
        B     START             ;
 OVERDFT H    START             ; 
        END   START

简直就是天书!

Hello Internet

Hello Internet 你好,互联网 Hello World 你好,世界

互联网上的朋友们你们好,我是Tmax. RandomTalkie是我创建的公司,同时也是视频频道的名字。这个blog的内容,主要是放我的随想,笔记,想要分享的内容。它可能会是基于我曾经和现在的经历,基于我所知道和不知道的想法,都写在此地。

有很多内容,我觉得除了通过视频和播客的形式来呈现之外,在文字的博客上能补充更多的细节内容,以及可以更方便分享一些在大平台上不方便分享的内容,比如样片的下载链接,软件的链接等等。

RandomTalkie取Random(随机)和Talkie(有声电影的旧英语叫法)。这个世界是非常随机的,无论是从任何意义上来说,以及人类的思维,虽然是线性的,但是非常擅长制造随机的想法和事物。“Talkie”这个词,曾经是在有声电影初期用于指代“有声电影”的古老词汇。现在来看,广义上的“motion picture” (动态的图片)的定义已经非常广泛,电视,电影,TikTok小视频,GIF图片,任何意义上的动图……都可以被定义为“Motion picture”,而内容和创造方式的不确定性,甚至都可以被解释成为所有意义上的,随机的,有声电影,如果我们不去严格定义这个“用电力显现出的影像”的长度的话。

同时,基于我曾经的网络工程的学习和技术背景,又现在极速转行,“Talkie”这个词语是 步话机“Walkie-Talkie”的一部分。步话机(或者说,对讲机)曾经是远程通讯的一种形式,而那么多年以后,远程通讯的形式变得多种多样,包括今日的互联网,也是因为有了现代通讯技术,诸位得以在此阅读这篇小文章。于是,当信息不再只局限于Walk,我还是愿意在随机的世界里,为诸位写下一点小文,大约也是Talkie的另外一层含义吧。

我是先想到了RandomTalkie的英文名字,然后抓耳挠腮地憋出来了RandomTalkie的中文名字,叫做“随聊客”,这个中文名字,似乎更加强调了,人与人的交流,联系,那随意之中的冲动,见面中的各种情感。

于是,这件事情只是开始,而我的这小小博客网站只是互联网上的小小地。

无论什么原因你来到此地,希望你看的开心,游玩愉快。

Tmax

2025年11月19日