每次我看到关于软件开发的讨论时,总会有人建议或赞扬 Smalltalk 的品质,无论是优美的语言结构还是基本上所有内容的更好实现。
所以我很好奇,有人在 Smalltalk 开发吗?Smalltalk 真的可以用来在 Mac 上开发软件吗?或者 Smalltalk 的目标平台是什么?这种看似奇妙但不受欢迎的语言的典型代表是什么?
Smalltalk 并没有真正用于 Mac 上的 GUI 应用程序开发。唯一可以生成原生应用程序的发行版是 Ambai Smalltalk,它在测试版 AFAIK 中死亡。Squeak是当今最流行的 Smalltalk 变体,但如果你发布一个看起来像 Squeak 的 Mac OS X 应用程序,你会被撕成碎片。如果你有兴趣学习这门语言(这在很多方面仍然是独一无二的),值得一试,但你可能不会用它来开发 OS X 应用程序。
如果您想要类似的东西,请查看MacRuby。Ruby 与 Smalltalk 非常接近,而无需真正成为 Smalltalk — 完全面向对象、动态、100% 基于消息、大量使用块等。MacRuby 是 Apple 开发的专门用于制作 OS X 应用程序的实现。
Mac OS X 的原生 Objective-C 也深受 Smalltalk 的启发(它基本上是 Smalltalk 对象系统和语法的一大块固定在 C 上),但由于其极端的 C 兼容性,它离树有点远。
看一下fscript,它本质上是一种用于 Objective C 的类似 smalltalk 的语言。
Luis:你想为 Mac 做桌面应用程序吗?或者你想在 Mac 中编程?例如,如果你想做一个 Web 应用程序,你可以完美地使用 Squeak 或 Pharo。如果你想做原生的 mac 应用,你应该看看 Squeak 的 Mars 项目:
http://smallworks.com.ar/productos/Mars
例如,大多数 Pharo 用户和开发人员都在 Mac 下。
http://www.pharo-project.org/home
下载并尝试至少几个小时!
我仍然相信 Squeak 非常值得研究,如果只是为了拓宽你的视野。至于 Smalltalk 的典型代表,它可能是Seaside。
吱吱声不是它的用户界面。您可以大量配置 Morphic(例如,看看 Pharo 与 OSX 的相似程度)。或者你可以只使用带有wxSqueak的原生小部件。
这值得引起注意:
“Objective-Smalltalk 是专门为解决 Objective-C 和 Smalltalk 使用 25 年中遇到的实际问题而创建的,但它的理论框架可以优雅而最低限度地解决许多这些问题,而不是通过一个又一个的特殊功能来解决特征。”