我对“Hello World”30年的爱恨情仇(4)

  1995 年 – COBOL

IDENTIFICATION DIVISION.PROGRAM-ID. HELLO.ENVIRONMENT DIVISION.DATA DIVISION.WORKING-STORAGE SECTION.01 WELCOME-MESSAGE PIC X (12) .PROCEDURE DIVISION.PROGRAM-BEGIN. MOVE "Hello World" TO WELCOME-MESSAGE. DISPLAY WELCOME-MESSAGE.PROGRAM-DONE. STOP RUN.

  这只是一段很短的时间,之后顶级 RPG 大师来到我们公司给我们上了为期三天的课程,因为最酷的事情是发生在 AS / 400 世界中。不仅 AS / 400 机器转移到 64-bit(众所周知加倍的位数更好,对吧?),而且 RPG 语言正在越来越规整,版本 IV 将接受更多的程序并且几乎比以往任何时候都要更面向对象。那有什么酷的吗?在给我们培训的时候,我不由得大笑,因为所有老的 RPG 开发者对这种“新的编程风格”目瞪口呆抓耳挠腮,试图蒙混过关,但我却可以放心,因为最终可以回归到我更习惯使用的C和 C ++ 程序,而不是 RPG 语言曾经那种紧密,狭隘,指示符和基于列的风格。

  一些开发人员可能会因为其中一个特征而三振出局,要知道这些特征真的可以打败任何人。语言要求指示符从某一个列开始,并且输入的指示符要先于它们。这是一个非常有限的空间,所以你可能真的只能加载几个字符常量,否则,你就不得不指定它们作为常量或数据结构并读取它们。新的语言移动关键字栏到了右侧,这样就有更多的空间来放置在“要素一”。这意味着我们现在只要短短的几行代码就可以做到“Hello, world”。语言也更“程序化”,所以你可以通过 return 结束一个程序,而不是设置指示符(尽管如果我没有记错的话,主程序的 return 其实只是设置在幕后的指示符)。

  1996 年 – RPG / ILE

C 'HELLO, WORLD' DSPLY C RETURN

  AS / 400 内置数据库功能在操作系统内称为 DB2。在很长的一段时间内,数据库只支持通过 RPG 或其他软件直接的指示符,不支持 SQL 语法。它作为一种特殊的程序包,名为 SQL / 400 而推出,但潜在的支持依然在那里。我在 1998 年写了第一篇出版(打印)的,关于窃听 SQL 用于 AS / 400(Create an Interactive SQL Utility)的文章。大概有一百万个方法可以用 SQL 输出“Hello, World”,但也许最简单的方法是这样的:

  1998 年 – SQL

SELECT 'HELLO, WORLD' AS HELLO


  首先抱歉这里我没有按时间顺利来写,但 SQL 作为我“主要”或“有薪”工作的一部分,很重要。并且同时我参与了很多重游戏,从 DOOM 开始(我的第一个游戏,因此印象深刻,当时我还花钱购买了完整版本),然后是 DOOM II 和 HEXEN,以及最后的 Quake。如果你不熟悉第一人称射击游戏的历史,那么我告诉你正是 Quake 这个游戏改变了游戏的历史。它提供了第一个“真正的”3D 世界(前人只是用 2D 地图模拟 3D,从而允许不同的地板和天花板高度),并通过支持 TCP / IP 和使用高级代码彻底改变了死亡匹配,这些高级代码比以前允许更多的游戏玩家出现在同一张地图中。

  这也是极其定制化的。虽然我在审美上不擅长,并且从来没有去创造我自己的模型或地图,但是我直接跳进了编程。Quake 提供了一种基于C的语言,叫 QuakeC,从字面上你会编译成一个特殊的跨平台字节码,可以运行在所有目标平台上,如 Quake。我快速写了一些修改,以便于做一些例如允许玩家玩火或导致钉鞋从墙上逼真弹回的事情。有人在聊天室要求我编程一个点子,正是这个点子让我出了名,它被称为“MidnightCTF”,基本上说,就是将现有地图的所有灯关掉,只允许玩家使用配备的手电筒照明。Quake 是第一批支持真正 3D 音效的游戏,这增加了游戏的趣味。

  甚至有人从我的修改中择取了一个代码片段收录到“编程语言词典”的 QuakeC entry 条目下。Nikodemos 是我玩 Quake 时用过的昵称。QuakeC 的“Hello, World”不过是一条在游戏中发送给当前所有玩家的广播消息。

  1996 年 – QuakeC

bprint ("Hello World\n");

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/fd791be3316fb1117261d7b0c883b975.html