17

我正在尝试学习一些 Smalltalk。首先发现的是 Squeak,但由于安全问题,它已从 Gentoo ebuild 树中删除,所以我决定寻找替代方案。

然后我通过Seaside项目找到了Pharo,我下载了Pharo 1.0包后,里面居然有一个SqueakVM!

所以,我的问题是:Pharo 是否只是 Squeak 的重新包装/品牌重塑?Squeak(捆绑不安全库)的那些安全问题是否仍然适用于 Pharo?

谢谢!

4

3 回答 3

16

Pharo 最初是 Squeak 的一个分支,目标是“实用的”Smalltalk 开发。这两个环境使用相同的虚拟机、相同的图像格式,并且共享几乎整个低级类库。他们使用相同的版本控制系统,并且(我上次检查)也共享相同的 fileIn/fileOut 格式。

同时,我认为说 Pharo 仅仅是一个品牌重塑是不公平的。这两个项目正朝着越来越不同的方向发展:虽然 Squeak 没有表现出要删除其教育和研究包的迹象,但 Pharo 只专注于打造一个适合企业和商业发展的小型轻量级环境。Squeak 关心的是保持与以前版本的向后兼容性,而 Pharo 非常愿意以精简、加速和简化库系统的名义破坏兼容性。这两个系统现在有不同的编译器,很快就会有不同的 FFI(本机代码)接口,并且有越来越不同的窗口系统。

出于这些和其他原因,我认为 Pharo 在我的脑海中是一个目前大部分与 Squeak 兼容的 Smalltalk,而不是仅仅对 Squeak 进行“重组”。随着时间的推移,我预计情况会越来越接近 Emacs/XEmacs,在这种情况下,可以制作在两种系统下运行的程序,但大多数人以其中一个为目标。

我完全不知道你提到的安全问题是什么,所以我不知道情况是否比 Pharo 好。如果您能概述您的想法,那将会很有帮助。

于 2010-05-27T17:11:05.227 回答
6

虽然完全同意本杰明的回答,但没有什么能阻止这两个叉子在未来再次变得几乎相同。

这两个项目都针对具有一组可加载包的微型内核。主要区别(至少从我所见,在关于squeak-dev的讨论中是关于如何实现该目标的哲学。

一些人建议,在未来,Pharo 和 Squeak 之间的主要区别将是默认加载哪些包。

于 2010-05-28T09:16:13.200 回答
6

我不是专家,但从我读过的内容来看,Squeak 里面有很多东西(教育等)。Pharo 是一个叉子,它试图移除许多额外的位,使其更具商业级。

Pharo 关于
一篇讨论这个的文章

于 2010-05-27T15:39:18.830 回答