我真的开始学习Smalltalk了.现在我正在使用Squeak,但是有没有办法在Smalltalk中开发而不使用VM,但是像IDE一样?
Smalltalk中的图像类似于VMware机器:它只是运行Smalltalk应用程序的冻结状态. 所有 Smalltalks都使用图像,并且使用one进行开发是在所有Smalltalks中进行开发的首选方法.同样,所有Smalltalks都编译为字节码并在虚拟机上运行,就像Java,.NET,Python和其他人一样.但这与您用于开发Smalltalk计划的程序完全无关,以及体验的本土感受.
正如其他人所提到的,Squeak实际上带有一个非常好的IDE,即所有的Squeak.但是,我不认为这就是你实际要问的.尽我所知,你的问题是:
我可以用我熟悉的方法开发Smalltalk,用我熟悉的方法吗?例如,在逐个文件的基础上,在普通文本编辑器中?
我可以使用Smalltalk制作具有正常外观的应用程序吗?
我可以在熟悉的工具中开发Smalltalk吗?
回答第一个:对于几乎所有的Smalltalks,没有.Smalltalk的文件格式设计为在Smalltalk IDE中操作,而不是直接在文本编辑器中操作.这就是为什么Squeak,Pharo,VisualWorks,VisualAge以及我曾经使用的所有其他Smalltalk都避免让你直接编辑源代码,而是提供他们自己的自定义IDE.由于这些工具是跨平台的,因此它们的IDE通常不是本机的,而是代表模拟的跨平台感觉.虽然您可以直接编辑所有这些系统的源(例如,您可以编辑foo.sources
Squeak图像的文件,然后使用更改浏览器加载您的编辑),实际上没有人这样做.
有两条路线可以让你在这方面更快乐.首先,正如其他人所指出的那样,GNU Smalltalk打破了模式,事实上,它确实具有编辑友好的基于文件的格式.我检查过的GNU Smalltalk在Windows下运行不佳,并且是GPL许可的,这对您来说可能是一个问题.但它确实允许您使用您选择的编辑器.vim和Emacs都有GNU Smalltalk的语法高亮,虽然我不知道NetBeans,Emacs或其他主要IDE之一的软件包,但编写一个并不是很难.
你可以采取的第二条路线,如果你唯一担心的是Squeak看起来"丑陋",那就是使用Dolphin Smalltalk.Dolphin Smalltalk是Smalltalk的Windows原生版本.虽然它的未来目前令人困惑,但您可能希望看一下它,因为如果Squeak困扰您,您可能会在其原生环境中感受到更多回家.
我可以制作原生应用程序吗?
如果你想要真正的原生小部件,那么你现在几乎没有选择.Dolphin提供本机小部件,但正如我之前提到的,它的未来目前还不确定.Squeak,VisualWorks和GNU Smalltalk提供了良好的FFI系统,因此您可以创建本机UI,但这样做会相对艰巨和复杂.所以,基本上:如果这对你来说非常重要,那么,现在,使用Smalltalk可能不是你的最佳选择.
请注意,有许多应用程序使用本机窗口小部件并不重要.游戏和信息亭肯定不需要使用标准小部件,但如果你环顾四周,很少有主流应用程序也会使用它们.微软自己的产品因自定义外观而臭名昭着,Chrome在其运行的每个平台上看起来都很有趣,尽管在Windows系统上看起来真的很奇怪,但iTunes却非常受欢迎,等等.网站上过多的界面也使人们更好地适应非标准界面.所以真的有可能你根本就不在乎 - 而且因为Squeak的界面非常具有主题性,当你靠近航运时看起来很"漂亮"并不困难.
(GNU Smalltalk 确实有很好的Gtk +绑定,这可能是你可以接受的,这取决于你想要做什么.有一些主要的应用程序,比如GIMP和Pidgin,针对Gtk +编写,在Windows中看起来很好.不过,我原谅你不考虑这个可行的选择.)
我的推荐
说实话,我强烈建议您使用自己喜欢的IDE找到其中一个Smalltalks并使用它.你会比尝试使用文本编辑器更有效率,不管它是像Eclipse这样的模糊文件编辑器,还是像Scite这样的糟糕文本编辑器.如果你走其他路线,你会错过很多Smalltalk的伟大之处:没有REPL,劣质调试,劣质代码浏览等等.
如果您坚持使用传统的开发环境,最好的选择是GNU Smalltalk.在使用它之前,你应该仔细评估你是否对它在Windows上的稳定性和性能感到满意,并确保你对它的GPL许可证的含义感到满意,但如果你这样做,那么它是真正真正支持的唯一Smalltalk.基于文件的开发模型.
Squeak 是一个IDE."IDE"的概念可以说来自Smalltalk!您是否想要"面向文件"的工作流程?GNU Smalltalk是一种以这种方式工作的实现.