所有Smalltalk实现都兼容吗?

时间:2010-07-03 12:45:30

标签: compatibility smalltalk

我是Smalltalk的新手。 我打算尝试Seaside框架。 Pharo似乎是最合适的选择。

我的计划是在Mac OS X上开发,在BSD上提供服务。 但是,还没有Pharo的BSD端口,但还有其他一些像Squeak这样的Smalltalk端口。但我担心任何不相容的情况。所以我要问任何我应该关心的不相容性。

5 个答案:

答案 0 :(得分:3)

Pharo是Squeak的一个分支。根据您的使用情况,它仍然大部分兼容。

其他Smalltalks如GNU Smalltalk,Gemstone,Dolphin或VisualWorks有更多的不兼容性。

用于在各种Smalltalk实现上移植Seaside框架的Grease兼容性层可以帮助您解决一些兼容性问题。

答案 1 :(得分:3)

Smalltalk方言在语法和基本功能上或多或少兼容,而在GUI领域特别完全不兼容。兼容性顺序如下:

  • 语法:由于Smalltalk语法的简单性几乎完全兼容,
  • 基本类库,如Magnitude / Numbers,Collections,Streams,...相当兼容,使用Grease兼容库增强了可调性,
  • 时间,文件,TCP套接字 - 不兼容,但与运动兼容性层兼容
  • FFI:无法解决的GSoC项目在缓解差异的道路上
  • 图形,GUI:完全无法使用,路上没有兼容性项目

答案 2 :(得分:1)

你没有提到哪个BSD,但FreeBSD有一个端口用于Squeak 3.9。

Pharo和Squeak使用相同的VM,所以你应该没事。

最近Squeak VM取得了一些重大进展 - 除了通常的错误修正之外,Eliot Miranda已经释放了他的Cog VM。我怀疑在*​​ BSD上你必须捣乱并从源代码构建你的VM。或者成为devel / squeak-cog-vm端口的端口维护者?

编辑:应该补充一点,我并不是说建议使用Squeak 3.9 图像 - 正如Neil指出的那样,这是古老的。虽然吱吱声图像和虚拟机半独立地改变,所以不依赖于在Cog VM上运行的Pharo映像或支持闭包的映像(我忘记了正确的名称)应该在FreeBSD的lang / squeak的VM上运行得很好安装。 (顺便说一句,lang / squeak和lang / squeak-dev安装相同版本的VM。)

答案 3 :(得分:1)

根据这个网页http://www.seaside.st/ Seaside与S​​queak合作(网页由它提供支持),我现在推荐Squeak over Pharo(但我不做Seaside) - Squeak的4.1版本是对早期版本的巨大改进。

答案 4 :(得分:0)

我在Mac OS-X上的Phaide上开发Seaside,并使用Gemstone部署在Ubuntu LTS上。今天,Cog还没有与Seaside兼容,但我希望现在很快就能改变它。它是在6月20日(三周前)首次公布的,并且已经在广泛使用之后进行了第一次错误修复。 Lukas提供了一系列失败的单元测试。

对于生产/商业用途,Pharo比Squeak有一些明显的优势。它只需要更少的代码,更清洁,大多数主要的Seaside开发人员都在使用Pharo。

如果您在构建BSD虚拟机时遇到问题,请在vm-dev maling列表中询问。图像将正常工作,您可能会遇到插件问题。 Pharo在同一个vm上只是一个不同的图像,所以它应该像吱吱作响的图像一样工作。