Smalltalk是否是Mac OS X的一种可行的开发语言?

14
每次我看到有关软件开发的讨论时,总会有人建议或赞扬Smalltalk的特点,不管是美丽的语言结构还是基本上所有方面的更好实现。
因此我很好奇,是否有人在使用Smalltalk进行开发?Smalltalk是否可以用于在Mac上开发软件?或者说Smalltalk的目标平台是什么?这个貌似非常棒但不受欢迎的语言的代表是谁?
6个回答

18

Smalltalk在Mac上并没有被广泛用于GUI应用程序的开发。目前唯一能够生成本地应用程序的分发版是Ambrai Smalltalk,但据我所知它还处于测试阶段就死亡了。Squeak现在是最受欢迎的Smalltalk变体,但如果你发布一个看起来像Squeak的Mac OS X应用程序,你将会被撕成碎片。如果你对学习这种语言感兴趣,可以值得一试(因为它在很多方面仍然是独特的),但你可能不会使用它来开发OS X应用程序。

如果你想找一些类似的东西,请查看MacRuby。Ruby是最接近Smalltalk的语言,具有完全的对象导向、动态性、100%的消息传递、大量使用块等特点。MacRuby是由苹果专门为制作OS X应用程序而开发的一个实现。

Mac OS X的本地Objective-C也受到了很大程度的Smalltalk启发(它基本上是把Smalltalk的对象系统和语法大块添加到C上),但由于其极高的C兼容性,它与原始的Smalltalk略有不同。


1
MacRuby看起来非常令人兴奋。不过,我希望抽象层确实像他们声称的那样薄。这样的粘合项目有一个很好的习惯,就是被放弃,然后随着平台的发展而慢慢消亡。如果它不够薄,因此也不易于维护,那么投入太多时间就真的不值得了。 - guns
3
Squeak/Pharo有一个Objective-C绑定,作为Squeak的iPhone端口的一部分正在得到更新(isqueak.org)。 - Damien Pollet

7

请看一下fscript,它本质上是一种类似于Objective C的Smalltalk语言。


4

Luis: 你是想为Mac做桌面应用程序吗?还是想在Mac上编程?如果你想做一个Web应用程序,例如,你可以完美地使用Squeak或Pharo。如果你想做本地的mac应用程序,你应该看看Squeak的Mars项目:

http://smallworks.com.ar/productos/Mars

作为一个例子,大多数Pharo用户和开发者都使用Mac。

http://www.pharo-project.org/home

下载并至少试用几个小时!


/ productos / Mars未找到。 - Sebastian Sastre

3

我仍然相信Squeak值得研究,即使只是为了开阔一下思路。至于Smalltalk的代表人物,可能就是Seaside了。


Seaside现在托管在Github上:https://github.com/seasidest/seaside - Gene Z. Ragan

2
这值得关注:
“Objective-Smalltalk是专门为解决在25年的Objective-C和Smalltalk使用中遇到的实际问题而创建的,但具有解决这些问题的理论框架,通过简洁而优雅地解决这些问题,而不是通过不断添加特殊功能来解决。” http://objective.st/

2

Squeak不是其用户界面(UI)。你可以对Morphic进行大量配置(例如,看看Pharo的UI与OSX多么相似)。或者,你可以使用wxSqueak来使用本地小部件。


抱歉,但这就像是一张三美元的钞票。我见过人们对此的第一印象反应。试图将定制的Morphic与本机OS X控件进行比较是令人尴尬的。 - Sebastian Sastre
你说得对:有时候本地操作系统的控件真的很难看! - Frank Shearar
我觉得你误解了我的意思。原生的OS X虽然有其不足之处,但它仍是业界最好的操作系统之一。Morphic就像三美元纸币(不是因为概念,而是因为Morphic提供的体验)。Morphic甚至可以用来玩耍,但对于强大的工业产品来说,就不行了。我的观点是,如果我们能够使用Smalltalk来开发带有本地控件的OS X应用程序,那么我们将会开启极好的机遇。 - Sebastian Sastre
不,我是_故意_曲解你的意思的 :) Morphic 不是 Squeak,就像它不是 Pharo 一样。 "在 Mac 上开发" 不 必然 意味着编写 UI,因此我的评论。如果你不喜欢 Morphic,那就把它扔掉,使用其他 UI。就像 wxSqueak 一样,我甚至不记得多少年前提供了它。 - Frank Shearar
好的。顺便问一下,你知道wxSqueak处于哪个状态吗?Pharo呢?你知道它是否可用吗?如果是的话,这可能是一个有吸引力的路径,如果这个项目继续前进的话。https://github.com/sebastianconcept/Creativity - Sebastian Sastre
抱歉,我不知道。几年前我尝试过,但我通常不处理用户界面。 - Frank Shearar

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