纯粹的面向对象语言应该被“广泛”使用? [关闭]

问题描述 投票:0回答:1

我所知道的最面向对象的语言是Smalltalk。与其他语言相比,它的独特之处在于将所有内容定义为对象。

但是(如果我们不考虑历史事件),是不是这种特殊性使它成为一种比大多数其他面向对象语言(Java,C ++,Python,......)更少使用的语言?

今天最常用的面向对象语言并不是纯粹的,因此学习它们相对容易(如果不考虑范式,它们与C类似的不同),使用外部元素( API,C库,DLL,...),或使用类创建自己的对象(我们将更多地讨论面向类的编程)。

所以我的印象是大多数面向对象的语言都不遵循原始OOP的“哲学”(我错了吗?)。

然后我想知道纯粹面向对象的语言是否可以像这种范例中的大多数语言一样被广泛使用,以及使这种语言不能与其环境隔离的特征应该是什么(这是不可能的例如,在Smalltalk中使用C库)?

oop object smalltalk paradigms
1个回答
5
投票

在现代Smalltalks中,与C接口并不难。还有其他纯OO语言(Erlang,CLOS,Scala等等)所以我不认为纯度是一个问题。

这就是问题:Smalltalk不仅仅是一种语言。语法是次要的。

Smalltalk卓越的生产力来自于它是一个活的对象环境。您可以通过在内存中创建类对象,向其添加方法对象,然后创建实例,以及迭代地重塑类和实例,直到您拥有满足所需要的对象的程序集为止进行编程。这些对象的二进制快照存储在图像中。要在以后再次使用它们,将恢复快照。

源代码本身是次要的,它只是一个操纵对象的接口。您键入的用于定义类的源代码甚至不存储,类对象在需要时生成它。类似地,方法的源代码仅保留以保留格式和注释以及变量名称,行为的主要定义是方法对象。

这使得与其他语言进行比较变得非常困难。对于那些认为文本文件中的源代码是编程本质的主流程序员来说,感觉非常陌生。恕我直言,这是今天没有更广泛采用Smalltalk的主要因素。

© www.soinside.com 2019 - 2024. All rights reserved.