我想用Common Lisp或其他Lisp方言开发一个图形应用程序,可以部署在Mac,Windows和Linux中,作为提高我对这种语言知识的一种方式.理想的情况是:
会编译代码
会使用一个通用的图形库
不需要安装运行时环境.
我想制作一个小游戏或图形应用程序,并能够通过在具有任何这些操作系统的计算机中进行简单安装来显示它.
有人有类似情况的经验,或者可以指出我对图形库和编译器,运行时环境等的最佳选择......
谢谢!
我是lispbuilder-sdl的开发者之一,目前托管在谷歌代码上.
alt text http://img10.imageshack.us/img10/7664/mandelbrot.jpg
http://code.google.com/p/lispbuilder/
这为您提供了一种在Linux,Windows和Mac机器上运行常见的lisp程序而无需修改的方法.我们使用SDL库及其各种扩展.
最小程序看起来像这样:
(sdl:with-init () (sdl:window 320 240) (sdl:draw-surface (load-image "lisp.bmp")) (sdl:with-events () (:quit-event () t) (:video-expose-event (sdl:update-display))))
维基还解释了如何为各种常见的lisp实现构建自包含的exe.
大多数Common Lisp实现都可以转储可执行映像.有时这些是两个文件(内核+图像),但通常这只是一个可执行文件.但是可执行文件通常只在它编译的平台上运行.像LispWorks或Allegro CL这样的商业实现具有扩展功能 - 例如,可以删除Lisp系统中未使用的部分.这称为"交付".
有一些关于LispWorks应用程序的信息.LispWorks是商业广告,覆盖平台可能很昂贵.您必须购买开发环境 - 在流行的平台上免费提供.LispWorks有一个用于Windows,Mac和Unix/Linux的图形库.后者是基于古老的母题.优点是代码可以在平台上非常便携.LispWorks开发环境本身就是一个LispWorks应用程序.例如,在Mac上,32位版本和64位版本在单个应用程序的PowerPC和x86上运行.
在CLIKI上收集有关Common Lisp和库的"免费"版本的信息.编写MS Windows应用程序并不是"免费"Common Lisp中最强大的部分.
PLT计划可以做你所要求的一切.它开箱即用的库是WxWindows,但如果你真的想要,你可以获得其他GUI系统的绑定.
PLT Scheme可能是Lisp,其工作量最大,可以轻松编写和分发"一个小游戏或图形应用程序".它们包括许多基础发行版中的游戏示例,它们的旗舰IDE DrScheme是用自己的图形框架编写的.可以在任何平台上自由创建和分发已编译的PLT Scheme代码.
编辑:你问过任何Lisp方言.Clojure也可以选择吗?
编辑2:
你说Clojure是一个选择.如果您已经非常熟悉Java和Swing,我认为Clojure是一个很好的方法 - 需要注意的是它与其他Lisps有一些非常大的语法差异.即将出版一本书.
如果您还不是Java专家,我认为PLT Scheme仍然是最佳选择.我是从"刚刚开始学习Lisp"和"小型演示应用程序"的角度来实现的.其他人已经注意到商业Common Lisp实现支持你想要的东西,但是那些用作介绍系统会更难(并且更昂贵).
所有这些实现都有宏系统,我认为这就是"代码是一流的".