出品| CSDN(ID:)
E·库尔茨,1928–2024
10 PRINT "深切悼念 Thomas E. Kurtz"20 PRINT "他让编程不再是少数人的专利"30 PRINT "他的精神永远活在每一个因 BASIC 走进编程世界的人心中"40 LET memories = memories + 150 GOTO 30
这个简单的 BASIC 代码是由一位程序员在听到 E. Kurtz 去世的消息后编写的。对于熟悉BASIC的人来说,这几行代码蕴含着深深的敬意——每一次循环都让我们更深地怀念这位计算机教育先驱。
2024 年 11 月 12 日,E. Kurtz 教授在新罕布什尔州黎巴嫩的一家临终关怀中心去世,享年 96 岁。他的去世感动了整个计算机世界,因为他不仅是BASIC语言的共同发明者,也是推动计算机教育民主化的先驱。
消息传出后,网络圈纷纷悼念。在News等技术社区,无数程序员自发分享他们与BASIC的故事。这些故事连接了整整一代人的青春记忆,见证了个人电脑时代的曙光。
“1970 年,我 13 岁的时候,第一次坐在学校的 Model 33 电传打字机前,通过学区的 HP-2000 分时系统开始了我的编程之旅。”一位用户回忆道,“这段经历对我影响如此之深,以至于我后来选择了就读达特茅斯。”
当时,能够接触到计算机是极其罕见的,而拥有编程技能让年轻人在进入高等教育和找工作时脱颖而出。
另一位程序员分享了 1976 年他的启发时刻:“当时我 15 岁,和父亲一起去参加了一个贸易展。在IBM展台,工作人员邀请我玩登月游戏,这是IBM 5100上的。当我好奇地问父亲屏幕上滚动的字符去哪里时,他对技术不太了解,他问道IBM 工程师向我解释一下。那一刻,我知道这就是我想做的事。这就是我写下第一行 BASIC 代码的地方。”
20世纪80年代,随着Apple II、64、TRS-80等家用电脑的普及,BASIC真正进入寻常百姓家。一位来自印度班加罗尔的程序员记得他 12 岁时发生的一件有趣的事情:“那是 1986 年,我用一台 386 计算机开始了我的编程生涯。每次我都要插入 5.25 英寸软盘,启动到,我最喜欢的是使用 BASIC 的 SOUND 命令来“骚扰”朋友和家人。使用“SOUND 2000+i,j”等命令来控制频率、持续时间,甚至音量。不知道如何关闭它们。”
几乎所有学过 BASIC 的人都写过这个经典的无限循环程序:
10 PRINT "HELLO"20 GOTO 10
“1977 年,我在连接 PDP-11/10 的 ASR33 终端上输入了这个程序,”一位高级工程师回忆道。 “从那一刻起,我就迷上了编程。”
评论区的其他开发者看到后,又敲了一串代码致敬:
10 PRINT "WE REMEMBER KURTZ"20 GOTO 10
BASIC 不仅仅是一种编程语言,它是许多人职业生涯的起点。有人分享了他的第一份工作经验,为核电站编写程序,后来发展成了他的终生职业。另一位印度程序员回忆说,他通过使用BASIC开发的库存控制系统获得了实际的业务收入。这是他第一次通过编程赚取“真正的卢比(印度货币)”。该系统后来发展成为全球使用的商业软件。
另一位用户在高中时用 BASIC 编写了一个钓鱼游戏。该项目实际上连续四年在地区和国家技术博览会上获奖,没有任何变化。这段经历让他缺席了两周的课程,但或许正是这段经历坚定了他未来从事编程职业的决心。
Kurtz 去世时正值 BASIC 语言诞生 60 周年。 1964年5月1日,在达特茅斯学院的计算机实验室,第一个BASIC程序开始运行。 60年后的今天,当我们回顾这段历史时,更能体会库尔茨的远见。
BASIC 语言的两位发明者:John(左)和 Kurtz(右)
达特茅斯学院得知消息后发表悼词:“E. Kurtz教授不仅是一位杰出的教育家,也是一位富有远见的创新者。他与约翰共同创造的BASIC语言,他的贡献将永远铭刻在计算机科学的历史上。” ”。
ACM(美国计算机协会)和IEEE计算机协会也发表联合声明,称赞库尔茨是“计算机教育的先驱。他的工作改变了整整一代人学习编程的方式”。声明特别提到,2021年,IEEE还将BASIC的诞生地列为标志性地点,与爱迪生发明电灯的门洛帕克实验室、马可尼发送第一个跨大西洋无线电传输的博洛尼亚山并列。
随着技术的发展,DOS让位于3.1,命令行被图形界面取代,并演变成.许多程序员都经历过从 BASIC 到最后 MFC 和 C++ 的技术演变。正如一位程序员在纪念文章评论区所写:“一切都是从 BASIC 开始的,这是一门神奇的语言,如果没有那段经历,我的生活可能会完全不同。”
库尔茨去世的消息传出后,该网站因流量激增而暂时无法访问。他于 1983 年共同创立的公司仍然维护和开发 BASIC 语言。公司发言人表示:“我们失去了一位伟大的导师,但他的理想将永远激励我们前进。”
教育语言
在计算机“普及”的漫长过程中,总有一些人走在时代的前列。
E. Kurtz 1928 年 2 月 22 日出生于美国伊利诺伊州奥克帕克。二十三年后的1951年,在加州大学洛杉矶分校参加暑期课程时,年轻的库尔茨第一次看到了一台正在运行的计算机——由美国国家标准局创建的SWAC(),这是美国最早的电子计算机。其中一台电脑。
该机器由传奇计算先驱、2013 年计算机历史博物馆研究员 Harry 负责监督。对于已经是普林斯顿大学数学专业研究生的库尔茨来说,这次偶遇彻底改变了他的人生轨迹。
1956年,28岁的库尔茨在著名统计学家约翰·图基的指导下获得博士学位。同年,他加入达特茅斯学院数学系,开始了改变计算历史的旅程。在这里,他遇到了同样有着同样理想的约翰。
他的经历颇为传奇。第二次世界大战期间,这位匈牙利出生的犹太移民作为数学家参与了曼哈顿计划,直接与冯·诺依曼合作。 1945 年初,他使用一台笨重的 IBM 制表机完成了工作。到那年年底,第一台电子数字计算机投入使用,它们对曼哈顿计划的影响得到了第一手见证。第二年,他编写了他的第一个程序。
两位数学家很快就找到了共同语言。他们都深刻理解计算机将如何改变世界,也都意识到一个严峻的问题:如何让这项革命性的技术为普通人所用?因此,他们给自己设定了一个在当时看来近乎疯狂的目标:教达特茅斯学院的每个学生使用计算机。
实现这一目标的道路并不平坦。 20 世纪 50 年代末和 60 年代初,Kurtz 和 Kurtz 开始探索如何让没有基础知识的学生接触编程。当时现有的编程语言,比如ALGOL等,都太复杂了。正如库尔茨本人后来回忆的那样:“我们研究了各种语言,认为它们太复杂了。它们充满了标点符号规则,但这些规则的必要性并不明显,所以人们不记得它们。”
1962年,他们进行了第一次重大尝试。当时,达特茅斯数学系配备了一台 LGP-30 计算机,这是一种相对便宜且普通的机器,内存只有 30 KB。在这台机器上,他们开发了一种称为达特茅斯超简化编程实验(DOPE)的语言。
DOPE 是一项大胆的实验。它删除了所有不必要的结构,并将数据和语法简化到最低限度。每个变量都是浮点数,只有四个特殊变量(E、F、G、H)可以用作数组。它甚至不支持字符串处理,但这种极简主义恰恰证明了一个重要的点:编程语言可以变得简单到非专家也能掌握。
我在一本书的开头写道:“当时我有一个高中生,他在达特茅斯上微积分课。我让他用 DOPE 在 LGP-30 上做实验。DOPE 太原始了,而且不是很有用,但它是 BASIC 的先驱。”
DOPE只在数学课上使用了一个学期就退出了历史舞台,但却为BASIC的诞生奠定了重要基础。从中学到的经验让BASIC之父的两位意识到,真正针对初学者的语言应该保持简单性,同时还要具有足够的实用功能。
如今,达特茅斯档案馆中保存着一份珍贵的手稿,其中记录了DOPE的设计理念。手稿的最后写道:“编程不仅仅是一门技术,更是一种思维方式。”这句话完美诠释了库尔茨的哲学:编程不应该是少数精英的特权,而应该成为每个人认识世界、了解世界的一种方式。表达想法的工具。
在接下来的两年里,他们制作了 BASIC。新语言继承了DOPE的一些特性,例如简单的行号系统和基本的过程控制,但在此基础上增加了更多实用的功能。他们刻意选择使用常见的英语单词来执行命令,并避免晦涩的技术术语。这种设计理念在当时是革命性的——它表明编程语言可以是友好的并且可以讲人类语言。
1964年5月1日凌晨4点,历史性的时刻到来了。在达特茅斯学院的计算机实验室,库尔茨和他的学生在两台计算机终端上输入了第一个 BASIC 程序。同时,他们还发布了达特茅斯分时系统(DTSS),允许多个用户同时访问计算机。这两项创新的结合彻底改变了计算机教育的面貌。
达特茅斯的学生很快就爱上了他们的新语言。教师将其融入课堂,学生接受它。随后的发展超出了所有人的预期——BASIC开始走出校园,走进千家万户,成为个人计算机时代的重要推动者。
一生的使命
E.库尔茨说:“让计算机像图书馆里的书籍一样免费获取不仅是一个技术目标,也是一个民主理想。”
这句话完美地概括了他一生的使命。
在计算机科学的漫长历史中,有一个永恒的困境:技术越发展,使用的门槛似乎就越高。这个问题在 20 世纪 60 年代初尤为严重。当时的计算机是高度专业化的黑匣子,仅限于企业、政府和大学设施。编程需要深厚的数学知识,因为程序员将指令翻译成打孔卡页面上的数字代码。计算机就像是被围墙包围的堡垒,普通人无法靠近。
正是在这样的背景下,库尔茨提出了一个当时极其大胆的想法:为什么不让每个人都使用计算机呢?
“我们的目标从来都不是培养专业程序员,”他在 2002 年的一次采访中解释道。 “我们希望每个人都了解计算机的工作原理,以便他们能够在自己的领域做得更好。充分利用这个工具。”
这种“大众化”的理念在当时是革命性的,甚至是极其奢侈的。当时的主流观点是编程语言应该追求技术的完美而不是易用性。但库尔茨坚持认为:“编程语言的设计应该考虑到人为因素。我们使用很少的标点符号规则并使用英语单词,以便人们可以依靠自然记忆来学习。这就是为什么我们使用‘hello’而不是‘logon’ ',使用 '' 代替 ''。
这种坚持源于他对教育本质的深刻理解。 “为什么心理学专业要学习编程?”他经常问:“因为计算机将改变一切。但是你如何向这位学生解释未来的新机器呢?”
正是这种想法促使他在设计 BASIC 时放弃了许多当时被认为是“标准”的编程概念。 Kurtz 还阐述了他对现代计算的担忧:“当今的应用程序非常复杂且不断变化,除非您是专业人士或普通用户,否则很难掌握它们。”
他举了一个发人深省的例子:“看看现代的文字处理软件,它是一个为出版而设计的庞大应用程序,支持脚注、自动目录、自动索引等,完全是杀鸡用牛刀。99 % 的人不需要这些功能,这就像说“我们要给每个人一辆车,让我们给它一辆凯迪拉克豪华轿车,因为批量生产更便宜。”
这种对简单性的追求也体现在库尔茨对软件行业商业模式的批评中:“现在赚钱的方式就是每十八个月发布一个充满 bug 的更新版本,这样十八个月后就会声称修复了一堆错误诱使人们购买升级版本。如果他们从一开始就做出了完美的产品,那么每个人都只需要购买一次。”
在教育领域,库尔茨始终保持着清晰的判断力。当被问及现代编程教育时,他毫不拐弯抹角地说:“在中学教 Java 太疯狂了,太疯狂了。它太复杂了。BASIC 的发明就是为了摆脱没有明确目的的复杂性。”
库尔茨对互联网时代的看法也颇有见地。他认为互联网作为一种新的通信形式“绝对是太棒了”,但警告说:“许多网站设计得很差,难以使用,或者只为最快的机器设计......在网站设计方面,有很多现在那里有垃圾。”
在库尔茨的哲学中,沟通比计算更重要。 “我们从二十年的分时系统经验中了解到,通信是核心要素,而不是计算本身。”这种前瞻性的观点使得达特茅斯很早就建立了全面的网络基础设施。
“我们有计算机系统来共享程序,我们可以发送电子邮件,”他回忆道,“我们知道沟通是关键。”
1983年,库尔茨与他人共同创立了.这一决定源于他们对 BASIC 发展方向的担忧。随后,在一群达特茅斯毕业生的建议下,他们尝试提供标准化的 BASIC 实现。该版本基于达特茅斯的 BASIC 7,具有现代编程结构,例如“IF..THEN..ELSE”和“DO..LOOP”等。
在 Kurtz 的指导下,True BASIC 并不局限于单一操作系统或计算机平台。如今,True BASIC 版本仍然可以在 DOS、macOS、Unix 和 Linux 系统上运行。即使 1993 年从达特茅斯学院退休后,Kurtz 仍继续开发和维护该项目。
“我们的设计原则一再被违反,”他们在合着的《回归 BASIC》一书中写道。各个计算机制造商为自己的硬件定制了BASIC,产生了大量不兼容的版本。 True BASIC 试图提供标准化的、跨平台的 BASIC 实现。尽管商业努力并未取得巨大成功,但库尔茨并不后悔。 “1964 年的核心项目仍然存在,”他说,“我们只是对其进行调整以适应现代需求,同时保持教育重点。”
库尔茨晚年经常被要求评价他的成就。他的回答总是出人意料地谦虚:“我认为我们失败了,因为我们试图让计算变得简单——但这在当今世界并没有发生。”
但这种“失败”也许更好地理解为一个持续的挑战——在日益复杂的技术世界中保持简单性和可访问性的挑战。
即使在人工智能盛行的今天,库尔茨的思想仍然具有深远的影响。当我们听到CEO黄仁勋宣称编码技术最终会消亡,当我们看到像Devin这样的人工智能工具自称是自主软件工程师时,我们应该记住库尔茨的警告:技术应该为人服务,而不是相反。涛.
相关文献:
[1]
[3]


