Squeak或Pharo开始Smalltalker?

问题描述 投票:37回答:8

我是一个刚刚开始涉足Smalltalk的Rubyist,我正在尝试选择一个实现来进行实验。看起来Squeak或Pharo似乎是一个不错的选择,但我很难找到当前的信息来帮助决定哪一个更好。我通过谷歌搜索发现的大部分内容来自几年前,可能不再具有相关性。

这几天有明显的喜爱吗?如果没有,每个的优点和缺点是什么?

smalltalk squeak pharo
8个回答
28
投票

在某种程度上,这是个人品味的问题。 Pharo是Squeak的岔路,意在使它成为Smalltalk的更现代版本,有时会牺牲对Squeak的向后兼容性。

Pharo是一个分支,也意味着它们共享很多共同点,从VM到类库的大部分。很多附加包都适用于它们,有些是用Squeak作为主要开发平台开发的,我想其中有更多数量是在Pharo(Seaside,Pier等)开发的。两种变体都有免费的介绍书:Squeak by Example和Pharo by Example,但Pharo one似乎更新。

我个人更喜欢Pharo,因为它给我带来更清洁,更现代的感觉。


10
投票

有许多有趣的起点:

  • 海边一键进行网页开发;
  • MOOSE一键进行软件重组,创建模型浏览器和可视化;
  • Pharo一键式跟随Pharo-by-example书(比吱吱声更新)与更清理的库;
  • 脆弱的清理图形模型(Morphic);
  • 如果您对教育方面感兴趣,请点击一下;
  • 吱吱声一键,寻找一个拥有丰富有趣工具和玩具的环境。

更多地了解您想要实现的目标,我们可以为您提供更好的帮助


10
投票

学习Smalltalk的另一个选择是Cuis

从描述:

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

代码在Github上。最新的图像文件是here

Cuis有大约600个课程。这使得单个人理解一切变得非常可行。稍后您可能希望切换到Squeak,Pharo或其他Smalltalk,因为绝大多数类和方法是兼容的。


5
投票

可能有一个明显的喜爱,但你必须自己开发它。

Pharo和吱吱声有很多共同之处。但是,由于pharo是吱吱声的分叉,它也意味着它们彼此分离。

如果你从学习smalltalk的角度来看,那么两者是平等的。如果从支持的技术角度来看,那么情况可能会有所不同。大多数开发人员要么是哨子,要么是诡计。开发人员创建了库和技术支持框架。如果一个库的开发人员是一个pharoer我会期望该库在pharo中比在squeak中更好地维护(反之亦然)。

你可能应该看看两者并尝试你想要实现的东西。在大多数情况下,体验将是相同的。一旦它停止相同,你可能已经知道你最喜欢的了。


5
投票

现在最吸引力的是Pharo,所以我会去那里。亚军是Visual Works。请注意,没有Smalltalk方言现在有很多牵引力。

我的推理如下。今天,Smalltalk用于两件事:Web编程和研究。对于两者而言,Pharo占据上风(Seaside使用Pharo作为其默认平台,而里尔大学则推出了最多的Smalltalk论文 - 全部基于Pharo)。

Smalltalk使用的第三件事虽然越来越少,但正在开发银行软件。在那里,大众仍然很受欢迎。此外,大众拥有最好的物体检查员。


3
投票

我正在做一系列关于如何使用Squeak from very the start的教程,所以我很自然地偏向于Squeak。当然,我不怕使用不同的分叉来最容易地展示特定的包。例如,我使用一键式码头图像来介绍Seaside和Pier,这基本上就是Pharo。


3
投票

虽然不是严格意义上的Smalltalk实现,但不应忽视Newspeak。还不是一个生产环境,但如果你在Alan Kay和Nicolas Wirth之间挣扎,语言专家Newspeak就像Smalltalk和Modula2的结合。


2
投票

实例化还有VisualAge(VAST),最近的版本是Smalltalk / X,它们共享一个类似的界面,而这个界面又与Pharo或Squeak截然不同。我使用Pharo进行研究,宠物项目和一些概念证据。我的公司软件包是在VAST / VASmalltalk / VisualAge中完成的,它们都是您喜欢的名称。另外,请记住,GNUSmalltalk。

© www.soinside.com 2019 - 2024. All rights reserved.