我正在尝试学习一些Smalltalk。首先找到的是Squeak,但由于它已经removed from Gentoo ebuild tree because of security problem,所以我决定寻找替代方案。
然后我发现Pharo到Seaside project,在我下载Pharo 1.0软件包后,实际上里面有一个SqueakVM!
所以,我的问题是:Pharo只是重新包装/重塑吱吱声吗? 那些Squeak(捆绑不安全的库)的安全问题是否仍然适用于Pharo?
谢谢!
答案 0 :(得分:15)
Pharo最初是作为Squeak的一个分支,以“实用”的Smalltalk开发为目标。这两个环境使用相同的虚拟机,相同的图像格式,并且几乎共享整个低级类库。他们使用相同的版本控制系统,并且(最后我检查过)也共享相同的fileIn / fileOut格式。
与此同时,我认为Pharo仅仅是品牌重塑是不公平的。这两个项目正朝着越来越不同的方向发展:虽然Squeak没有表现出想要取消其教育和研究方案的迹象,但Pharo勉强专注于创造一个适合企业和商业发展的小巧轻便的环境。在Squeak担心与其先前版本保持向后兼容的地方,Pharo一直非常愿意以缩减内容的名义打破兼容性,加快速度,并且通常简化库系统。这两个系统现在有不同的编译器,很快就会有不同的FFI(本机代码)接口,并且窗口系统也越来越不同。
由于这些原因和其他原因,我认为Pharo在我看来是一种当前与Squeak兼容的Smalltalk,而不仅仅是对Squeak的“重新诠释”。随着时间的推移,我希望情况能够越来越接近Emacs / XEmacs,在那里可以制作在两个系统下运行的程序,但是大多数人都会瞄准一个或另一个。
我完全不知道你提到的安全问题,所以我不知道情况是否比Pharo更好。如果你能够概述你的想法,那会很有帮助。
答案 1 :(得分:5)
我不是专家,但从我读过的内容来看,Squeak中有相当多的东西(教育等)。 Pharo是一个试图消除大量额外比特并使其更具商业级别的分叉。
Pharo About
另一个article正在讨论这个
答案 2 :(得分:5)
虽然完全同意Benjamin's answer,但是没有什么可以阻止两把叉子在将来再次相同。
这两个项目都针对一个带有可加载软件包集群的小内核。主要区别(至少从我可以看到的squeak-dev的讨论中看到的是如何实现这一目标的哲学。
有些人建议将来Pharo和Squeak之间的主要区别是默认加载哪些包。