哈卡瓦塔之歌
作者:F. X. Reid诗人兼悲剧作家
向 H. W. 朗费罗致歉
第一部分:哈卡瓦塔的登录
首先,他坐下来面对控制台
面对发光、嗡嗡作响的控制台
在键盘上输入他的登录名
输入他的密码(十四个字母)
等待系统响应
等待了很久并诅咒它的缓慢
(哦,那令人恼火的缓慢——
就像患有腰痛的软体动物)
等待了似乎几个小时
直到操作系统
打印出最新的抱怨
来自那个被称为“超级用户”的人——
抱怨一些三年级学生
在午餐时间玩冒险游戏,
抱怨磁盘几乎
(非常接近)满到要爆,
咆哮说他不会接受它
尖叫说他会报复
通过删除人们的磁盘文件。
接下来,是哈卡瓦塔的“财富”
(觉得一点也不好笑)
然后从“邮件程序”中取出一封信
来自一位网络黑客朋友
(他已经渗透到 ARPA
一直到格林汉公地——
尽管他浏览文件存储的行为
并没有让美国空军满意——
所以这个朋友,这个网络黑客,
不得不逃往阿根廷
在那里他从事模拟工作
模拟他们军队的
占领福克兰群岛)。
最后,我的哈卡瓦塔
开始键入程序。
首先,他思考了几分钟
他应该把它叫做什么
以便他以后能记得
它做什么以及他为什么要写它,
想了很久,很久,
想了太久,因为系统
因他无所事事而超时
超时并严厉警告他
(像一个愤怒的公共汽车检票员
当你摸索着找你的票时
当你本可以发誓你已经把它
安全地放在内口袋里了)。
所以可怜的哈卡瓦塔
不得不从头开始
输入登录名和密码——
发现系统甚至更慢了
甚至比第一次更慢
(就好像某个邪恶的灵魂
已经用 LISP 或 OCCAM 语言
重新编程了所有的 Unix
这在内行中
并不以运行速度快而闻名
而是以其笨拙的缓慢而闻名
就像一个三年级计算机科学学生
试图弄清楚一个定理
比如丘奇-罗素定理)。
经过很多很多分钟
冒着无聊而死的危险
在屏幕上,我的哈卡瓦塔
看到来自网络的消息
说没有空闲的控制台,
告诉他直接忘了吧,
告诉他稍后再来
(比如,凌晨两点半
最好是星期天早上,
星期天,在漫长的假期里)。
但对此,我的哈卡瓦塔
用充满愤怒的语言说道
“我宁愿在辛克莱 ZX80 上用 COBOL 编写代码!”
因此,诸神听到了哈卡瓦塔的声音
听到了他愤怒的雷鸣
听到他诅咒“超级用户”
去社会科学系任职
听到他诅咒网络被
慢慢地在苛性钠中煮沸
听到他诅咒那些人
他们使用 LISP 而不是 Ada
(Ada 是一种复杂的语言
版权归国防部所有
它有一个正式的语法
比《圣经》还要长
但在语义上什么也没有
除了非正式的闲聊。
读者!使用它风险自负!)
诸神对他产生了怜悯
(虽然他们非常鄙视这种语言
非常鄙视这种污秽的语言
哈卡瓦塔所使用的)
导致了经济学系某个软弱之人的控制台故障
空出了一条线让他可以使用
让他的屏幕显示一条消息
“对不起,我们只是在开玩笑
请登录并输入您的密码
我们马上就来。”
就这样安抚了哈卡瓦塔
输入了他的登录名和密码
再次阅读了耶利米哀歌
关于那个躁狂的“超级用户”
阅读了他的财富(仍然不好笑)
并准备输入他的程序。
第二部分:哈卡瓦塔的编程风格
唉,我的哈卡瓦塔
仍然不知道该把它叫做什么
应该把这个可恶的程序叫做什么
以便他以后能记住
它做什么以及他为什么要写它
但可怕的超时威胁着
所以为了避免麻烦
他只是把它叫做“program7”
(这个名字没有太多含义
几乎没有意义
——尽管它有真正的优势
那就是它符合这个韵律)
意思是稍后用mv
命令重命名它
当他稍后想到什么的时候
现在他进入了编辑器
哈卡瓦塔然后快速地输入
非常,非常,非常快地
比一个三年级学生更快
试图躲避他的导师
比一个太阳报“记者”更快
在寻找一些猥亵的东西的路上
像鹰一样飞舞着他的手指
只暂停了几次
当他费力地回忆
他的算法的细节时
他只是隐约地知道这些
(就像日出时
笼罩着崇高山峰的薄雾
就像s-nd-rs打印机
制作的不是下划线
就像三年级学生对
图灵定理的证明的理解)
这些思考结束后
哈卡瓦塔输入的速度更快了
遗漏了引号和分号
遗漏了许多右括号
(注释,他把这些留到以后再说
直到他理解了他的程序
理解了他一直在做什么)
他确信编译器
会挑出语法错误
因此,这个程序像野火一样蔓延开来
就像某种传染病的蔓延
像艾滋病或 BASIC
或者像矿工停止罢工一样
在阿瑟·斯卡吉尔统治时期。
哈卡瓦塔像疯了一样打字
键盘噼里啪啦地响着
像一副躁狂的假牙
于是早晨,于是午餐时间,
于是下午逐渐消逝
就像超级用户的发际线一样
当被三年级学生围困时
所有人都想学习他的密码
直到最后星星闪烁
直到最后酒吧开门营业
直到保安,提醒他
敲了敲他的门并警告他
“对不起,先生,所有晚班工人
都要在登记簿上签名,先生。”
即使如此,我的哈卡瓦塔
几乎没听到他在说什么
他的眼睛通红而呆滞
他的手指抽筋疼痛
他的胃空荡荡地咕噜叫
他的额头又冷又汗
控制台温暖而嗡嗡作响
像一头消化不良的牛
感谢保安并告诉他
他“马上就去”
他“完全忘记了
所有那些官僚主义的废话
在创作的白热化状态中”
要求他警告他是否大楼
在接下来的几分钟内被烧毁
感谢他的“好意”
然后,完全无视他,
再次转过身去敲击键盘
用他灵巧的手指
直到最后夜幕降临
直到最后酒吧关门
直到最后工作完成。
第三部分:哈卡瓦塔的程序测试
接下来,我的哈卡瓦塔召唤了
适当的编译器
要求它接受他的程序
并尝试执行它
列出任何语法错误——
如果万一有的话——
在一个他叫做“错误”的文件中
(这种命名的选择令人震惊
创新是这种命名方式所保证的)
要求它在后台运行。
名为“错误”的文件迅速增长
直到它似乎比
名为“program7”的文件大得多
名为“错误”的文件更大
比最高的山峰还大
比三叉戟的成本还大
比那个被人们称为 D--kstr- 的上帝的巨大自我还大
甚至比人们称之为 Unix 邮件程序的软件还要大
(虽然,也许是夸张,
或者那种被称为诗意的许可
导致我犯了一个错误
因为我们知道 Unix 邮件程序
比泰坦尼克号邮轮更大、更糟糕
现在哈卡瓦塔开始担心了
试图杀死后台进程
试图将其带到前台
试图对编译器说
“好了,老兄,暂时先这样吧”
这个过程丝毫没有理会
像没有人做生意一样吞噬字节
直到它看起来好像系统
会因彻底的疲惫而崩溃
因为这个不知疲倦的进程所需的
页面交换量。
哈卡瓦塔变得绝望
他再次生动地诅咒
让周围的阴影都变成了紫色。
因此,诸神听到了哈卡瓦塔的声音
听了那些难听的语言
认为他们最好阻止它
坚定地告诉 Unix 系统
坚定地,停止它所有的胡言乱语
坚定地,中止进程。
第四部分:哈卡瓦塔的运行时错误捕获
现在,这个程序有一个指针
指向一个记录联合
有时指向一个 REAL
或者一个 INTEGER 或 BOOLEAN
有时指向一个指针
指向 RECORD 的 FILE 的 ARRAY
每个 RECORD 又都有指针
每个指针,在疯狂的递归中,
疯狂地指向彼此
(就像一群周日小报
用指责的手指指向
彼此缺乏道德
就像一群左翼学生
都在互相指责
具有修正主义倾向)
在这混乱的纯粹混乱中
(哈卡瓦塔当时认为这
是一个天才之举
但现在他无法清楚地
理解他为什么这么做)
他放置了一个简单的语句
放置了一个看似简单的语句
重新赋值了 FIRST 指针
指向了其他的某个地方,他却想不起来
到底把它放在哪儿了,
感觉这可能是原因
为什么他的程序无法运行
没有按照他想要的方式运行。
这引起了一些挫败感
导致高贵的哈卡瓦塔
说出了亵渎的咒骂
让他大喊“调试它!”
(或者,我*认为*他喊的是这个)。
“肯定有更简单的方法,
计算的方法,
计算阶乘的方法!”
把这些都扔掉玩士兵游戏吧!
我要去员工俱乐部
来一杯罗姆福德的荣耀!”
于是哈卡瓦塔离开了。
哈卡瓦塔之歌 是 H. W. 朗费罗的 海华沙之歌 的戏仿作品。
这首诗由保罗·博伊德于 2000 年提交
不确定这来自哪里,我已经保存它超过 10 年了。希望你喜欢。
—保罗·博伊德
根据维基百科,哈卡瓦塔之歌 由 迈克尔·W·希尔兹以 F.X.里德的笔名 写成。 他可能在 八十年代初 写了原始版本。 这个页面上的版本似乎更新一些,因为它提到了英国矿工罢工的结束(1985年),而原始版本则暗示了失业率的灾难性上升,失业率在1983年左右达到顶峰。