为什么基于类的OO如此受欢迎而不是基于原型的OO?他们是否在学校教授后者?虽然Javascript是基于原型的,但大多数人主要使用它,或者通过试图模拟基于类的系统的框架.
我知道Sun已经对Self进行了一些研究- 是否有关于原型oo的其他任何知识来源?最好是可以自学的东西.
我找到了一本包含已发表论文的书:基于原型的编程:概念,语言和应用
有人读过吗?
-
所以我给了我最大的回答.不过,我真的不太满意.我本来希望听到更多技术性的答案.也许我没有很好地解释自己.
我只是在寻找将Self与Smalltalk区分开来的原因.
这不应该是大猩猩与鲨鱼的问题.我不是在找一个更好的理由,我只是把一个定义为与另一个不同的东西感到困惑.在阅读了大约2个小时后,它们对我来说似乎都是同一种语言,并且用一些代码捣乱(旁白:我终于理解了Smalltalk版本的"Everything is a object".我必须说,它真是太棒了.哈哈!我认为C#已经钉了......但它甚至没有接近这个!XD)
我在某个地方读过的随机内容,过去几年的某个时间:
今天几乎所有传统语言都将程序员的意图表示为文本源,然后(为简单起见)将其转换为某些字节码/机器代码并由VM/CPU解释/执行.
还有另一种技术,出于某种原因,它并不是流行的日子:"冻结"VM的运行时间并将环境(符号绑定,状态,代码(无论是什么))转储/序列化为图像,然后您可以传输,加载和执行.因此,您不能以通常的方式"编写"代码,而是在"运行时"中使用新符号修改环境.
我看到这项技术的巨大优势:
问题是:这种方法的缺点是什么?我没有看到任何严重的劣势吗?我知道,它有一些问题,即:
但是,这些是,恕我直言,可以用一个好的设计解决.
EDIT1:关于"已关闭,主要是基于意见"的状态.我已经描述了两种现有的方法,很明显,一种方法比另一方更受欢迎.我不知道其原因是纯粹的"以意见为基础"还是有研究支持,但是即使他们是以意见为基础的,如果有人将这些意见列为开发的原因,那么实际上应该回答我的问题.
我现在正在使用Squeak4.1学习SmallTalk.我使用Squeak by Example作为教程,在这里我反驳了一个删除,"Morphic是由......开发的,用于自编程语言"任何人都可以对自编程语言的含义给出一些暗示吗?这意味着smtalltalk是一个自编程语言?