我安装了 Pharo 1.4 并尝试阅读“Pharo by example”。
不幸的是,这本书和 Pharo 图像完全不同步:菜单不同;用作示例的类不存在,例如;BouncingAtomsMorph 类。
很可惜。也许一个人应该使用特定的 Pharo 版本来学习,而另一个版本来更新……有人可以帮忙吗?
首先一定要完成 Stef 教授的教程,它提供了基础知识。您可以通过执行开始教程
ProfStef go.
在一个工作区。只需在工作区中键入它,选择它,右键单击,执行
还有一本 Pharo 合作的书,里面有很多有趣的东西。还有一些Pharocasts可以帮助你学习一些有趣的东西。
您也可以在 Stack Overflow 上提出问题,如果它更通用并且人们会帮助您,请用pharo或smalltalk标记它们。
正如@Sharphawk 所说,有一张与本书一起使用的图片,可从主页获得。它现在有点旧,但它应该与书同步。
Pharo 的发展太快了,我们跟不上这本书的步伐(还有很多章节在进行中),所以对于最近的图像,你必须自己适应和发现一些东西。幸运的是,还有很多其他资源可以帮助您:当然,这里是本书和Pharo 本身的邮件列表、irc.freenode.net 上的#pharo-project IRC 频道、@ 指向的书籍和截屏视频uko等
从经验来看,通过一些探索和指导,Smalltalk 更容易学习
对于绝对初学者,以下是最近的实用和动手教程,仅涵盖帮助您入门的基础知识:
http://ceronio.net/2017/07/first-steps-with-pharo-smalltalk/
由于您的问题有点模糊(可以理解),而且我不知道您的背景或您的需求,我将尝试对 Pharo 进行简要概述,以便您知道在哪里寻找,因为您获得更多的经验和您的需求演变。
正如 Uko 所指出的,如果您是 Smalltalk 的新手,最好的入门方法是遵循Stef 教授的教程。这将使您熟悉该语言的核心方面。为了快速参考,您可以使用Pharo Cheatsheet。
完成本教程后,您应该熟悉这些工具,以便您可以在 Pharo 中有效地工作。您可能已经知道,重要的工具是Class Browser、Inspector和Debugger。
类浏览器有很多有用的特性,特别是它允许您在系统中搜索方法和类引用,将您指向具体的代码示例。您可以右键单击任何方法,然后在上下文菜单中选择“...的发件人”。同样,对于类,您可以查找引用(Analyze -> Class Refs)。这将告诉您如何使用特定的类和方法,并且通常可以让您更快地获得所需的信息。
另一个不可或缺的工具是Spotter (shift-enter),它提供了一个易于使用的界面来浏览系统(用于类和示例)。但是您必须使用最新的 Pharo 版本。
话虽如此,Pharo 生态系统非常庞大,您需要一些时间才能充分利用它(我已经与 Pharo 合作了很长时间,还有很多东西我需要学习)。
根据您的需求,Pharo 可以提供很多服务:
Roassal 与 Morphic 非常不同,因为它是为在漂亮的布局中呈现各种图形而量身定制的(虽然在 Morphic 中也可以这样做,但您必须编写大量代码)。Roassal 也使用矢量图形,Morphic 是基于光栅的。如果您想编写 GUI 或游戏,我会坚持使用 morphic。如果您必须可视化数据,请使用 Roassal。
Maloney(Morphic 的创始人)对 Morphic的核心概念做了很好的介绍。一些类名已经改变,但你会弄明白的。在 Morphic 中进行事件处理也有不同的方法。一种方法是覆盖方法(就像您在其他面向对象的 GUI 框架中使用的一样),另一种方法是将事件“路由”到方法。我已经使用了这两种方法,对于更简单的应用程序,我会选择第一种。
我的建议是从最基本的开始,最好从一个小项目开始,例如像 Snake 这样的游戏。在学习时添加内容,如果遇到困难,请随时在 stackoverflow 上提问。此外,还有 Pharo 邮件列表。我发现 Pharo / Smalltalk 社区非常热情。
我最后的建议是:保持简单。做到这一点并不总是那么容易,但 Smalltalk 是学习这一原则的绝佳环境。如果您正在寻找如何组织代码的方法,您还想查看Kent Beck 的最佳实践模式。
玩得开心!
编辑:圣线复活!我刚刚意识到这个问题已经超过 4 年了。好吧,也许这篇文章对其他新人有所帮助。