《真正的程序员不要使用PASCAL》

也许这就是真正的程序员,大佬对于编程的理解,现在的我也只能仰望这个高度了,加油!(苦笑),,,,,,,
``真正的程序员不要使用PASCAL’’
艾德波斯特

回到过去的好日子 - 计算机的“黄金时代”,这很容易
把男人和男孩分开(有时叫做“真人”和“乳蛋饼”
饮食者在文献中。在此期间,真正的男人是
那些了解计算机编程的人,而Quiche Eaters则是
那些没有的。一个真正的计算机程序员说过像DO 10这样的东西
我= 1,10’和’ABEND’(他们实际上用大写字母交谈,你
理解),世界其他地方也说“电脑也是如此”
对我来说很复杂’和’我无法与电脑联系 - 他们就是这样
客观“”。(之前的一项工作[1]指出,真正的男人不会“联系”
任何事情,并不害怕被人格化。)

但是,像往常一样,时代在变化。我们今天面对的是一个世界
小老太太可以用12岁的微波炉买电脑
孩子们可以把真正的男人从水中吹出小行星和吃豆人,和
任何人都可以购买甚至了解他们自己的个人电脑。该
真正的程序员有被灭绝的危险,被替换为
TRASH-80的高中生。

显然需要指出典型的差异
高中青少年吃豆人球员和真正的程序员。如果这
差异很明显,它会给这些孩子一些渴望的东西

  • 一个榜样,一个父亲形象。它也有助于解释
    真正的程序员的雇主为什么替换它是一个错误
    真正的程序员在他们的工作人员与12岁的吃豆人球员(在一个
    可观的工资节省)。

      		语言
    

从人群中告诉真正的程序员的最简单方法是
他(或她)使用的编程语言。真正的程序员使用FORTRAN。
乳蛋饼食者使用PASCAL。PASCAL的设计师尼克劳斯·沃斯(Nicklaus Wirth)给出了一个
谈到他被问到“你怎么说出你的名字?”他说
回答说,“你可以通过名字给我打电话,发音为”韦尔特“,或者打电话
值得称道的是,“值得”。’'这个评论可以立即告诉我
尼克劳斯·沃斯是一个乳蛋饼食者。唯一的参数传递机制
真正的程序员认可的是按价值回报,如实施的那样
IBM \ 370 FORTRAN-G和H编译器。真正的程序员并不需要所有人
这些抽象的概念让他们完成了工作 - 他们非常高兴
有一个按键,一个FORTRAN IV编译器,一个啤酒。

o真正的程序员在FORTRAN中进行列表处理。

o真正的程序员在FORTRAN中进行字符串操作。

o真正的程序员在FORTRAN中进行会计(如果他们这样做)。

o真正的程序员在FORTRAN做人工智能程序。

如果您不能在FORTRAN中执行此操作,请使用汇编语言执行此操作。如果你不能
用汇编语言来做,不值得做。

		  结构化编程

计算机科学的学者已经进入了“结构化”
过去几年的编程问题。他们声称这些节目
如果程序员使用唯一的特殊语言,则更容易理解
构造和技术。他们并不都完全同意
当然,结构和他们用来展示他们特定的例子
观点总是适合一些不起眼的期刊或单一节奏
另一个 - 显然还不足以说服任何人。当我
我离开了学校,我是世界上最好的程序员。一世
可以编写一个无与伦比的井字游戏程序,使用五台不同的计算机
语言,并创建工作的1000行程序。(真的!)然后我
走进现实世界。我在真实世界的第一个任务是阅读
并理解一个2O0,OO0线FORTRAN程序,然后通过a加速它
因子2。任何真正的程序员都会告诉你所有结构化的
世界上的编码不会帮助你解决这样的问题 - 它需要
真正的人才。对真实程序员和结构化程序的一些快速观察
编程:

o真正的程序员不怕使用GOTO。

o真正的程序员可以编写五页长的DO循环
迷茫。

o真正的程序员喜欢算术IF语句 - 他们制作了
代码更有趣。

o Real Prograwmers编写自修改代码,特别是如果可以的话
在紧密循环中保存20纳秒。

o真正的程序员不需要注释 - 代码很明显。

o由于FORTRAN没有结构化IF,REPEAT … UNTIL,或
CASE声明,真正的程序员不必担心不使用
他们。此外,它们可以在必要时使用已分配进行模拟
GOTO的。

数据结构最近也受到了很多关注。摘要数据
类型,结构,指针,列表和字符串已成为流行的
某些圈子。Wirth(上面提到的Quiche Eater)实际上写道
整本书[2]争辩说你可以根据数据编写一个程序
结构,而不是相反。作为所有真正的程序员
知道,唯一有用的数据结构是Array。字符串,列表,
结构,集合 - 这些都是数组的特殊情况,可以
在不弄乱你的编程的情况下轻松地对待这种方式
语言有各种各样的并发症。关于花哨的最糟糕的事情
数据类型是你必须声明它们和Real Programming
众所周知,语言基于第一个字母进行隐式输入
(六个字符)变量名称。

		    操作系统

真正的程序员使用什么样的操作系统?CP / M?神
禁止 - 毕竟CP / M基本上是玩具操作系统。甚至
小老太太和小学生可以理解和使用CP / M.

Unix当然要复杂得多 - 从来都不是典型的Unix黑客
可以记住本周调用PRINT命令的内容 - 但是什么时候调用它
直到它,Unix是一个美化的视频游戏。人们不这样做
在Unix系统上认真工作:他们在UUCP-net上向全世界发送笑话
并写冒险游戏和研究论文。

不,你的Real Programmer使用OS \ 370。一个优秀的程序员可以找到和
理解他在JCL中遇到的IJK305I错误的描述
手册。一个优秀的程序员可以编写JCL而无需参考手册
一点都不 一个真正优秀的程序员可以找到埋藏在一个中的bug
不使用十六进制计算器的6兆字节核心转储。(我其实
看到这样做了。)

0S是一个真正卓越的操作系统。有可能毁掉几天
单个错位空间的工作,所以编程中的警觉性
鼓励员工。接近系统的最佳方式是通过a
键穿孔。有些人声称有一个可以运行的时间共享系统
OS \ 370,但仔细研究后我得出结论他们
错了。

		    编程工具

Real Programmer使用什么样的工具?从理论上讲,一个真实的
程序员可以通过将他们键入到前面板来运行他的程序
电脑。回到计算机有前面板的日子,这是
实际上是偶尔做的。你典型的真正的程序员知道整个
以十六进制的内存引导加载程序,并在它到达时切换它
被他的节目摧毁了。(那时候,记忆是记忆 - 它没有去
当电源关闭时离开。今天,记忆要么在什么时候忘记
你不想要它,或者在它们变得更好之后记住它们
遗忘了。)传说,Cray I的发明者Seymore Cray
超级计算机和大多数Control Data的计算机,实际上切换了
CDC7600的第一个操作系统位于前面板的内存中
当它第一次通电时。不用说,Seymore是一个真实的
程序员。

我最喜欢的Real Programmers之一是德克萨斯州的系统程序员
仪器。有一天,他接到了系统用户的长途电话
在挽救一些重要工作的过程中坠毁了。吉姆能够
通过手机修复损坏,让用户切换磁盘I / 0
前面板上的说明,以十六进制修复系统表,
通过电话阅读注册内容。这个故事的寓意:
而一个真正的程序员通常在他的作品中包含一个键击和打印机
工具包,他可以与前面板和电话相处
紧急情况。

在一些公司中,文本编辑不再包含十名工程师
排队使用029键盘。事实上,我工作的建筑物
不包含单个键击。真正的Progranmer在这种情况下
必须用“文本cditor”程序完成他的工作。大多数系统供应
几个文本编辑器,以及真正的程序员必须
小心挑选一个反映他个人风格的人。很多人相信
世界上最好的文本编辑都是在Xerox Palo Alto写的
研究中心用于他们的Alto和Dorado计算机[3]。
不幸的是,没有真正的程序员会使用计算机
操作系统叫做SmallTalk,肯定不会跟它说话
用鼠标的电脑。

这些Xerox编辑器中的一些概念已被纳入
编辑器运行在更合理命名的操作系统上 - EMACS和VI
是两个。这些编辑器的问题在于真正的程序员
考虑一下“你所看到的就是你得到的”这个概念
文本编辑器,因为它在女性中。不,真正的程序员想要’你
要求它,你得到它’文本编辑器 - 复杂,神秘,强大,
无情,危险。确切地说,TECO。

已经观察到TECO命令序列更加类似
传输线噪声比可读文本[4]。其中一个
与TECO一起玩的娱乐游戏就是在命令中键入你的名字
并尝试猜测它的作用。几乎任何可能的输入错误
与TECO交谈可能会破坏你的程序,甚至更糟

  • 在曾经工作过的子程序中引入微妙而神秘的错误。

出于这个原因,真正的程序员不愿意实际编辑程序
接近工作。他们发现修补它更容易
直接使用二进制对象代码,使用名为SUPERZAP(或
它在非IBM机器上的等价物)。这非常有效,很多人都在工作
IBM系统上的程序与原始FORTRAN代码无关。在
很多情况下,原始源代码不再可用。当它
是时候修理这样的程序了,没有经理会想到
发送任何比真正的程序员更少的东西来做这项工作 - 没有乳蛋饼
吃结构化的程序员甚至会知道从哪里开始。这是
叫做“工作保障”。

一些编程工具不是真正的程序员使用的:

o FORTRAN预处理器,如MORTRAN和RATFOR。的Cuisinarts
编程 - 非常适合制作乳蛋饼。见上面的评论
结构化程序。

o源语言调试器。真正的程序员可以读取核心转储。

o具有数组边界检查的编译器。他们扼杀了创造力,
破坏了EQUIVALENCE的大部分有趣用途,并制作它
无法用负面修改操作系统代码
标。最糟糕的是,边界检查效率低下。

o源代码维护系统。一个真正的程序员保留他的代码
锁定在卡片文件中,因为它意味着它的所有者不能
让他的重要节目无人防守[5]。

	       真正的程序员在工作

典型的Real Programmer在哪里工作?什么样的节目
值得个人如此才华横溢的努力?你可以肯定
没有真正的程序员会被抓到写死账的应收账款
COBOL中的程序,或者为People杂志分类邮件列表。一个真实的
程序员想要具有翻天覆地重要性的任务(字面意思!)。

o真正的程序员为洛斯阿拉莫斯国家实验室工作,写作
原子弹模拟在Cray I超级计算机上运行。

o真正的程序员为国家安全局工作,解码
俄罗斯传输。

o这主要归功于成千上万的真正程序员的努力
为美国宇航局工作,我们的男孩们之前登上了月球
俄罗斯人。

o真正的程序员正在为波音设计操作而工作
巡航导弹系统。

一些最出色的Real程序员都在Jet上工作
加州推进实验室。他们中的许多人都知道整个
先锋和旅行者号航天器的操作系统。有了
结合大型地面FORTRAN计划和小型
他们能够做到基于宇宙飞船的汇编语言程序
令人难以置信的导航和即兴创作 - 达到十公里
在太空六年后修复或绕过土星的宽大窗户
损坏的传感器平台,收音机和电池。据称,一个真实
程序员设法将模式匹配程序收集到几百个
搜索,定位的旅行者号航天器中未使用内存的字节数,
并拍摄了木星的新月,

目前伽利略号太空船的计划是使用重力辅助
在通往木星的路上经过火星的轨迹。这条轨迹在其中传递
火星表面80 +/- 3公里。没有人会信任
PASCAL程序(或PASCAL程序员)用于导航到这些程序
公差。

正如您所知,世界上许多真正的程序员都在为美国工作
政府 - 主要是国防部。这是应该的。
然而,最近,Real Programmer上形成了一片黑云
地平线。似乎在国防部有一些高调的Quiche Eaters
部门决定所有的防御计划应该写在一些
大统一语言称为“ADA”((C),国防部)。似乎有一段时间了
ADA注定要成为一种反对所有人的语言
真实编程的规则 - 一种结构语言,一种语言
数据类型,强类型和分号。简而言之,一种语言设计
削弱典型的真正的程序员的创造力。幸好,
国防部采用的语言有足够的有趣功能
平易近人 - 它非常复杂,包括弄乱的方法
操作系统和重新安排内存,Edsgar Dijkstra没有
喜欢它[6]。(据我所知,Dijkstra是“GoTos”的作者
被认为是有害的’’ - 编程方法论的一个里程碑式的工作,
受到PASCAL程序员和Quiche Eaters的欢迎。)此外,还有
确定Real Programmer可以用任何语言编写FORTRAN程序。

真正的程序员可能会妥协他的原则和工作
比我们所知道的生命破坏更微不足道的东西
它,提供足够的钱。有几个皇马
例如,在Atari建立视频游戏的程序员。(但不是
玩它们 - 一个真正的程序员知道如何打败机器
时间:没有挑战。)在LucasFilm工作的每个人都是
一个真正的程序员。(拒绝五十美元的钱会很疯狂
百万星际迷航迷。)真正的程序员在计算机中的比例
图形略低于标准,主要是因为没有人找到
用于计算机图形学。另一方面,所有的计算机图形
是在FORTRAN完成的,所以有相当数量的人在做图形
为了避免编写COBOL程序。

	       真正的程序员在玩

一般来说,Real Progranmer的工作方式与他的工作方式相同
电脑。他经常惊讶于他的雇主实际付钱给他
无论如何,做他想做的事情(虽然他小心不要
大声表达这个意见)。偶尔,真正的程序员会这样做
走出办公室,呼吸新鲜空气和一两杯啤酒。一些
关于识别真正的程序员远离计算机房的提示:

o在派对上,真正的程序员正在谈论角落
关于操作系统安全性以及如何解决它。

o在足球比赛中,真正的程序员是比较比赛的人
反对他用11张14折扇形纸打印的模拟。

o在海滩上,Real Programmer是一个绘图流程图
沙子。

o在葬礼上,真正的程序员就是那个说“可怜的乔治”的人。
并且他几乎在冠状动脉之前进行了分类例行工作。’’

o在杂货店,Peal程序员是坚持的人
因为他,他自己经过激光检测扫描仪
从来没有能够信任keypunch操作员第一次正确使用它。

	  真正的程序员自然栖息地

Real Programmer最适合哪种环境?这个
对于真正的程序员来说,这是一个重要的问题。
考虑到将一个人留在工作人员身上花费的金额,就是这样
最好把他(或她)放在他可以完成工作的环境中。

典型的Real Programmer住在电脑终端前。
这个终端周围是:

o真正的程序员曾经工作的所有程序的列表,堆积
在办公室的每个平面上大致按时间顺序排列。

o大约有六个左右的部分装满了冷咖啡。偶尔,
咖啡里会有烟头。在某些情况下,
杯子将包含橙色粉碎。

o除非他非常好,否则将有0S JCL手册的副本
对一些特别有趣的操作原则开放
页面。

o贴在墙上的是1969年的行式打印机史努比日历。

o在地板上撒满了几个装满花生酱的包装纸
奶酪酒吧 - 在面包店预先陈旧的类型,所以他们
在自动售货机等待时不会变得更糟。

o躲在桌子左上方的抽屉里藏着
适用于特殊场合的Double-Stuff Oreos。

o Oreos下面是一个流程图模板,由那里留下
以前的办公室职员。(真正的程序员编写程序,
不是文件。把它交给维护人员。)

真正的程序员能够工作30,40,甚至50小时
在压力很大的情况下伸展 事实上,他更喜欢这样。坏
响应时间并没有打扰真正的程序员 - 它给了他一个机会
在编译之间抓住一点睡眠。如果没有足够的时间表
对交易程序员的压力,他倾向于使事情更具挑战性
通过为第一个问题处理一些小而有趣的问题
九个星期,然后在上周完成剩下的两到三个休息
50小时的马拉松比赛。这不仅给他的经理留下了深刻的印象,
谁对按时完成项目绝望,但创造了一个
没有做文件的便利借口。一般来说:

o没有真正的Progranmer工作9到5(除非它是在晚上的那些)。

o真正的程序员不戴领带。

o真正的程序员不穿高跟鞋。

o真正的程序员及时到达工作午餐[9]。

o真正的程序员可能会或可能不会知道他妻子的名字。他是这样的,
但是,要知道整个ASCII(或EDCDIC)代码表。

o真正的程序员不知道如何烹饪。杂货店没有开放
在凌晨三点。真正的程序员在Twinkies和
咖啡。

			未来

未来的未来是什么?这是真正的程序员关心的问题
没有带来最新一代的计算机程序员
与长辈一样的人生观。他们中的许多人从来没有
看到带有前面板的电脑。几乎没有人从学校毕业
这些天可以不用计算器进行十六进制运算 大学毕业生
这些日子是软保护的,不受编程现实的影响
源代码级调试器,计算括号的文本编辑器和`user
友好的’操作系统。最糟糕的是,其中一些被指控
“计算机科学家”无需学习FORTRAN就能获得学位!
我们注定要成为Unix黑客和PASCAL的行业
程序员?

根据我的经验,我只能报告Real的未来是光明的
程序员无处不在。DS \ 370和FORTRAN都没有显示任何迹象
尽管全世界的PASCAL程序员付出了很多努力,但他们已经死了。
更微妙的技巧,比如添加结构化编码结构
FORTRAN失败了。哦,当然,一些计算机供应商已经问世了
FORTRAN 77编译器,但它们中的每一个都有自我转换的方式
在选项卡的下降回到FORTRAN 66编译器 - 到
像上帝那样编译DO循环意味着它们。

甚至Unix也不像以前那样对真正的程序员有害。该
最新版本的Unix具有值得操作系统的潜力
任何真正的程序员 - 两个不同且微妙不兼容的用户
接口,一个神秘而复杂的电传打字机驱动程序,虚拟内存。如果
你忽略了它是“结构化”的事实,即使是“C”编程也可以
真正的程序员赞赏:毕竟,没有类型检查,
变量名是七(十?八?)个字符长,并添加
抛出指针数据类型的奖励 - 就像拥有最好的部分一样
FORTRAN和汇编语言在一个地方。(更不用说一些了
#define的更多创意用途。)

不,未来并不是那么糟糕。为什么,在过去的几年里,
大众媒体甚至评论了新一代计算机爱好者
和黑客([7]和[8])离开像斯坦福和麻省理工学院这样的地方
真实世界。从所有证据来看,真实节目的精神依然存在
这些年轻男女。只要目标不明确,
奇怪的错误和不切实际的时间表,将有真正的程序员
愿意跳进并解决问题,保存文档
后来。FORTRAN万岁!

		     致谢

我要感谢Jan E.,Dave S.,Rich G.,Rich E.,感谢他们的帮助
表征真正的程序员,希瑟B.为插图,凯西
E.忍受它,并且atd!avsdS:标记最初的灵感。

			参考


[1] Feirsteln,B。,“真正的男人不吃乳蛋饼”,纽约,
     Pocket Books,1982。

[2] Wirth,N。,“算法+数据结构=程序”,
     普伦蒂斯霍尔,1976年。

[3] Ilson,R。,“文本处理的最新研究”,IEEE
     跨。Commun。教授,Vol。PC-23,No。4,1980年12月4日。

[4] Finseth,C。,``文本编辑的理论与实践 - 或 - 
     EMACS'',BS论文,麻省理工学院/ LCS / TM-165的食谱,
     麻省理工学院,1980年5月。

[5] Weinberg,G。,“计算机程序设计心理学”,
     纽约,Van Nostrand Reinhold,1971,p。110。

[6] Dijkstra,E。,``关于绿色语言提交给
     DoD'',Sigplan通知,卷。1978年10月3日第10号。

[7]罗斯,弗兰克,“黑客的喜悦”,科学82,卷。3号9号,
     11月82日,第58-66页。

[8]“黑客论文”,“今日心理学”,1980年8月。

[9] sdcarl!lin,“真正的程序员”,UUCP-net,10月21日星期四
     1982年16:55:16
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值