对于初学者,是选择Squeak还是Pharo来学习Smalltalk?

40

我是一名Ruby程序员,刚开始尝试接触Smalltalk并试图选择一个实现来进行实验。看起来Squeak或Pharo都是不错的选择,但我很难找到当前信息来帮助决定哪个更好。通过谷歌搜索找到的大部分信息都是几年前的,可能已经不再相关。

现在是否有明显的首选?如果没有,每个选项的优缺点是什么?

8个回答

33
在某种程度上,这取决于个人口味。Pharo是Squeak的一个分支,旨在使其成为更现代化的Smalltalk版本,有时候不考虑向后兼容性而发展。Pharo作为一个分支,也意味着它们在VM到大部分类库方面有很多共同点。许多附加包与两者兼容,其中一些是以Squeak作为主要开发平台开发的,我猜可能略微更多的是在Pharo中开发(如Seaside、Pier等)。两个版本都有免费的入门书籍:《Squeak by Example》和《Pharo by Example》,但是Pharo版本似乎更为更新。
个人而言,我更喜欢Pharo,因为它给我的感觉更简洁和现代化。

15

学习Smalltalk的另一种选择是Cuis

从描述中可以得知:

Cuis与其他Squeak变体不同之处在于,它对系统复杂性采取了积极的态度:随着系统变老,它们通常变得更加复杂。新功能作为层添加到底层上,有时甚至没有真正理解它,几乎总是没有修改它。...避免这种情况的唯一方法是全面了解整个系统,并始终重新设计整个系统。使其简单和一致。

代码位于Github上。最新的图像文件在这里

Cuis大约有600个类。这使得一个人完全理解所有内容非常可行。后来你可能想要切换到Squeak、Pharo或其他Smalltalk,因为绝大多数类和方法都是兼容的。


3
与Pharo的7000个类相比,600个类的CUIS要简单得多,简化了10倍以上。我一定会看看CUIS。实际上,Pharo拥有的类甚至比Java 7和Java 5的类总和还要多:D。参考链接:https://dev59.com/GnA75IYBdhLWcg3wxsJn - Kilon
1
我更新了Cuis Github存储库的网址。自4.2版本以来,有一个新的存储库。 - z--

13

有几个有趣的可能的起点:

  • Seaside-一键进行Web开发;
  • MOOSE一键进行软件重建,创建模型浏览器和可视化工具;
  • Pharo一键跟随Pharo-by-example书籍(比squeak更为最新),拥有更清晰的库;
  • Cuis用于一个更清晰的图形模型(Morphic);
  • EToys one-click如果您对教育方面感兴趣;
  • Squeak-one-click为一个拥有丰富有趣工具和玩具的环境。

请更详细地解释您想要实现的目标,我们可以更好地帮助您。


9
目前最受欢迎的是Pharo,所以我会选择那里。第二名是Visual Works。但要注意,现在没有任何Smalltalk方言有很多关注度。
我的推理如下。今天,Smalltalk用于两件事:Web编程和研究。对于这两个方面,Pharo占据上风(Seaside将Pharo作为其默认平台,并且Lille大学发布了大部分Smalltalk论文——都基于Pharo构建)。
第三件使用Smalltalk的事情虽然越来越少,但仍是开发银行软件。在那里,VW仍然很受欢迎。此外,VW拥有最好的对象检查器。

6
我使用Pharo编写桌面应用程序(甚至是Shell脚本);) 我可能是唯一留下的人吗?! - Sean DeNigris

7

可能有一个明显的首选项,但你必须自己去开发。

Pharo和Squeak有很多共同点。但由于Pharo是从Squeak分叉而来,这也意味着它们彼此分歧。

如果你从学习Smalltalk的角度来看,两者是相等的。如果你从支持技术的角度来看,情况可能会有所不同。大多数开发人员要么是Squeaker,要么是Pharoer。而开发人员创建库和支持技术框架。如果一个库的开发人员是Pharoer,我预计该库在Pharo中的维护将比在Squeak中要好(反之亦然)。

你应该看看两个版本,并尝试你想要实现的东西。在大多数情况下,体验是相同的。只要它不再相同,你可能已经知道自己的首选项了。


5

虽然Newspeak不严格属于Smalltalk实现,但我们不应该忽视它。尽管还没有成为生产环境,但如果你一直在Alan Kay和Nicolas Wirth之间犹豫不决,Newspeak就像是Smalltalk和Modula2的结合。


5
我正在制作一系列关于如何使用Squeak from very the start的教程,因此我自然而然地倾向于Squeak。当然,我不介意使用不同的分支来展示特定的软件包。例如,我使用一键式Pier镜像来介绍Seaside和Pier,基本上是Pharo。

哦,好的。我会看一下这些视频。 - gregspurrier

3

还有Instantiations的VisualAge(VAST)和最近的Smalltalk/X,它们都共享类似的界面,而这种界面与Pharo或Squeak大不相同。

我在研究、个人项目和某些概念验证方面使用Pharo。

我的公司软件包是用VAST/VASmalltalk/VisualAge(任选其一)制作的。

还有,请记住GNUSmalltalk。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接