Smalltalk是最具影响力的编程语言之一,启发了面向对象编程范式;世界图形用户界面;还有实时编码,它允许你在代码运行和调试时修改代码。一些顶级编程语言包括Java和Ruby-以及诸如Lisp和objective - c有Smalltalk的元素。虽然Smalltalk在今天并不是很受欢迎,但它仍然被用于权力应用程序各种各样的行业

在今年Smalltalk成立50周年之际,我们采访了阿黛尔戈德堡他和他的同事共同开发了这门语言Alan Kay而且丹·英格尔斯

亚博真人yabo.atIEEE光谱:创建Smalltalk的动机是什么?

阿黛尔歌德堡:在70年代早期,艾伦·凯提出我们都应该随身携带掌上电脑他称之为Dynabook.问题是,“你会用一台掌上电脑做什么——可以随时随身携带的东西?”它会被专业人士使用吗?还是任何人都可以在上面创作?”

我们对理解一种软件很感兴趣,这种软件可以让图灵所谓的“各个年龄段的孩子”创建他们对世界运行方式的理解模型。它不仅仅是应用程序——它是开发环境,我们称它为建模环境,而不是编程环境。这转化为模拟语言的初始实验,这就是激发这个特殊的东西Smalltalk背后的想法

你在Smalltalk开发过程中扮演了什么角色?

歌德堡:1973年,艾伦·凯在施乐公司的帕洛阿尔托研究中心并邀请我加入。我参与了各种语言结构的实验,以及从Smalltalk-72到Smalltalk-80所需要的东西。1978年,艾伦开始休假,没有再回到施乐;然后我成为了小组经理,最终成为了研究实验室经理。

我当时在管理一个实验室,帮助指导研究方向,但我非常专注于把研究结果推广到世界各地。因此,我与团队合作,得到了一个可以在多台机器上运行的Smalltalk版本——不仅仅是施乐专有的工作站,还有当时非常流行和可用的微处理器技术。最终,我们得到了施乐公司的支持,让我们分拆出自己的商业公司,我是创始CEO。

当Smalltalk被开发出来时,您认为它与当时现有的编程语言有什么不同?

歌德堡:当您开始思考Smalltalk与当时可用的软件类型的不同之处时,您会发现它为软件开发提供了一种基于组件的、基于重用的方法——这是一种非常迭代的方法,您可以创建原型并逐步了解您想要做什么。由于这种结构,面向对象技术在保持系统的可靠性和稳定性方面是一种快速进行可预测性更改的好方法。

你会说这是开创性的吗?

一个女人坐在麦克风前阿黛尔戈德堡计算机历史博物馆

歌德堡:你总是建立在别人的肩膀上。整个方法是对象和消息发送的基础Simula.我们关注的不仅仅是语言,而是语言如何支持和影响在开发环境中更广泛的使用,以及仅仅查看一些正在运行的东西的能力。

我记得80年代的人们还在争论低级用户界面问题。特别是,当您选择文本时,您是否为所选文本加下划线、装箱或将黑白颠倒为黑白?那时,我们的实验室里有访客,我的一个同事正在做演示。我看得出这两位先生不太高兴,就问他们怎么了。他们说,这不是展示选择的方式,并解释了他们想要什么。我的同事展示了一个正在运行的文本编辑器,作为在语言环境之上构建媒体的例子,他中断了活动过程,找到了突出显示操作的位置,并将其更改为他们想要的。整个房间的气氛都变了——你能感觉到……这些家伙坐起来,然后放松了。

我们可以灵活地改变事情,我们说:“我们怎样才能让你拥有你想要的东西?”但我们也因此受到了攻击。这意味着人们在处理一个虚拟机和一个解释系统,他们认为它天生就很慢。我们必须证明事实并非如此,并且您可以增量编译。我记得有一天,我的一个工程师在缝被子,而其他人在等待编译完成的时候在做其他事情。花了一段时间,你就失去了即时性。当你失去了即时性,你就失去了创造的能量。所以,我们对这个想法很兴奋——“它永远是现场的;它一直在运行,你能得到你想要的。”

Smalltalk是如何影响面向对象编程世界的?

歌德堡:我们研究实验室最初的一个任务是教育,但另一个任务是处理软件开发的新范式。所以这对软件工程的影响,证明了从结构化编程到面向对象编程的转换。从编程环境到软件工程的流程的影响意味着大量的工作进入了方法论。这种软件开发的新方法改变了您组织团队、计划和问题分析的方式。

然后,出现了一些新的编程语言,它们要么采用现有的语言并添加对象,要么采用全新的方法来理解更多基于组件的技术意味着什么。

我们在图形用户界面上获得了很多赞誉。我们试图找出一种最好的方法,让人们触摸电脑,用感官说出他们想做什么,而不是用键盘。当然,我们已经展示了很多,我们的很多应用程序都是实现文本编辑、绘画、制作动画以及集成多媒体和图形的新方法的初始推动者。这些应用程序通常是人们第一次看到类似重叠窗口的东西,或者我们所做的那种电子表格或文本编辑是对象和嵌入对象——同样是基于组件的方法。

为什么Smalltalk直到今天仍然是一种有影响力的编程语言?

歌德堡:我非常有信心,Smalltalk仍然是唯一在一些方面做得不同的语言系统。一是所有事物都是物体。当我们做Smalltalk-80时,我们确保所有的东西都是一个对象,所有的活动都是通过消息发送完成的,所有的对象都是类的实例。然后,您应该能够构建对象和类的一般层次结构。它在事物如何运作的模型中更加一致,所以它使人们更容易学习,更容易冒险和改变。

另一个重要的一点是,你可以通过阅读来学习写作,编程也是如此。Smalltalk-80经过精心编排,使其具有可读性——不仅仅是通过查看对象描述,还有用该语言本身编写的一组工具。人们基本上可以用Smalltalk编写全新的世界,这样实验就能更好地进行。你可以说,“你是谁,你是做什么的?”让我看看你的定义。让我看看谁在召唤你,你又召唤了谁。”所有这些都来自于面向对象的方法。

这是一个有趣的地方,可以玩,也可以做严肃的工作,这就是为什么你仍然看到有人喜欢Smalltalk。

你希望Smalltalk能再活50年吗?

歌德堡:我想都没想过。在计算机科学的世界里,为特定的需求和用途设计语言是乐趣的一部分,所以无论它是否被称为Smalltalk,我认为很高兴看到范式继续存在。

为简洁明了,以下文字记录经过了编辑。

{“imageShortcodeIds”:[]}
对话(0)

为什么函数式编程应该是软件开发的未来

这很难学习,但是您的代码将产生更少令人讨厌的意外

11分钟读取
垂直
一盘用代码做成的意大利面
Shira Inbar
DarkBlue1

你期望人生中最长、最昂贵的阶段一个软件产品的周期是系统的初始开发,当所有这些伟大的功能都是第一次想象,然后创建。事实上,最难的部分出现在后面的维护阶段。这时程序员就会为他们在开发过程中走的捷径付出代价。

那么,他们为什么要走捷径呢?也许他们没有意识到自己在偷工减料。只有当他们的代码被大量用户部署和使用时,隐藏的缺陷才会暴露出来。也许开发人员太匆忙了。推向市场的时间压力几乎保证了他们的软件会包含更多的bug。

继续阅读↓ 显示更少
{“imageShortcodeIds”(“31996907”):}
Baidu