15

この言語の知識を向上させる方法として、Mac、Windows、および Linux に展開できる Common Lisp またはその他の Lisp 方言でグラフィカル アプリケーションを開発したいと考えています。理想的には:

  1. コードをコンパイルします
  2. 共通のグラフィカル ライブラリを使用する
  3. ランタイム環境をインストールする必要はありません。

小さなゲームまたはグラフィック アプリを作成し、これらのオペレーティング システムのいずれかを搭載したコンピューターに簡単にインストールして表示できるようにしたいと考えています。

誰かが同様の状況の経験を持っているか、グラフィカルライブラリとコンパイラ、ランタイム環境などの最良の選択を教えてくれます...

ありがとう!

4

7 に答える 7

19

私は、現在 Google コードでホストされている lispbuilder-sdl の開発者の 1 人です。

代替テキスト 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 を作成する方法についても説明しています。

于 2009-04-06T04:35:19.857 に答える
6

PLT スキームは、あなたが求めるすべてを行うことができます。そのまま使用するライブラリは WxWindows ですが、必要に応じて他の GUI システムのバインドを取得できます。

PLT Scheme はおそらく、「ちょっとしたゲームやグラフィカルなアプリ」の作成と配布を容易にするために最も多くの作業が行われた Lisp です。基本ディストリビューションには多くのゲームの例が含まれており、主力の IDE DrScheme は独自のグラフィックス フレームワークで記述されています。コンパイルされた PLT スキーム コードを任意のプラットフォームで自由に作成および配布できます。

編集:Lisp方言を求めました。Clojureもオプションですか?

編集2:

Clojureはオプションだとおっしゃいました。すでに Java と Swing に精通している場合は、Clojure が適していると思いますが、他の Lisp とはかなり大きな構文上の違いがあることに注意してください。本が出版される予定です。

まだ Java の専門家ではない場合でも、PLT スキームが最良の選択であると思います。私はこれを「Lisp を学び始めたばかり」と「小さなデモ アプリケーション」の角度から考えています。商用の Common Lisp 実装はあなたが望むものをサポートするが、それらを導入システムとして使用するのはより困難 (そしてより高価) であると他の人々は述べています。

これらの実装にはすべてマクロ システムがあり、それが「コードは一流」という言葉の意味だと思います。

于 2009-04-05T16:21:15.397 に答える
4

Rainer は、基本的な問題について良いコメントをしています: あなたが求めていることを正確に実行する優れた商用ソリューションがあります (ただし、それらは無料の開発環境ではなく、定期的な料金が発生する可能性があります)、十分にサポートされたクロスプラットフォーム ライブラリを備えています。フリー ソフトウェアのアプローチもありますが、必要に応じて 3 つのプラットフォームすべてで配信するのはより困難です (不可能ではありませんが、いじる必要があります)。

ただし、「実行環境をインストールしない」というのは少し問題があります。確かに、エンドユーザーに Lisp を個別にインストールさせる必要はありませんが、実行内容によっては、プログラムを機能させるために、本質的にランタイム全体をインストールする必要がある場合があります。このレベルの柔軟性は、必要なビットと不要なビットをプログラムで判断するのが難しい可能性があることを意味します。これが、フリー ソフトウェア ソリューションが通常、これを行うためのツリー シェイカーを作成するというやや面倒でトリッキーな作業を気にしない理由です。

于 2009-04-05T16:23:24.453 に答える
3

現在、OpenGL と GLFW を使用するグラフィカル アプリケーションのために私が行っていることは、主に SBCL を使用して開発し、テスターに​​ cl-launchを介して配信することです。ただし、私の計画では、CCLを使用して OS X でアプリケーション バンドルをビルドし、ECLを使用して Linux と Windows でスタンドアロンの実行可能ファイルをビルドする予定です。私が現在 cl-launch で構築しているバンドルはかなり大きい (通常は 30M 以上) のに対し、ECL で行ったテストははるかに小さい (私のシステムでは libecl の重量は約 1.3M です)。ただし、私は SBCL の方がパフォーマンスが優れていることを期待しています (ただし、最初に確認するためにプロファイルを作成します!)。そのため、選択はアプリケーションによって異なります。

ただし、これを商用で行う場合は、商用実装の 1 つに投資します。Rainer Joswig は、上記で LispWorks と Allegro について言及しています。Windows アプリの配信については、 Corman Lispも検討できます。私の印象では、これら 3 つの OS にまたがるアプリケーション配信を行うための最速かつ最も費用のかかる方法は Allegro を購入することですが、別の方法 (より手間はかかりますが安価) は、OS X で CCL、Win32 で Corman、および ECL または SBCL を使用することです。 Linux で。LispWorks はその中間の選択肢のように思われますが、多くの人は LispWorks を支持していますが、Allegro の方が手頃な価格だからといって、Allegro よりも劣っているとは考えません。

グラフィック ライブラリの問題は別のものです。私の印象では、状況は常に改善されています (CFFI のコールバックは現在ほとんどのプラットフォームで機能しているようで、これはほとんどの C ツールキットとのインターフェイスに大きな助けになっています)。 (ただし、上記の justinhj によって言及された Lispbuilder はまだ使用されていませんが、これはクールに見えます)。1、2 年前にwxCLを少し試して みましたが、有望に思えました。

CL の優れた点は、非常に多くの優れた実装があるため、選択した実装で開発でき、特定のプラットフォームでアプリケーションを配信するために選択した実装にほとんどのコードを簡単に移植できることです。

于 2009-04-24T18:59:37.937 に答える
1

Ecl lispは非常に小さな実行可能ファイル(数kbs)をコンパイルできますが、Ubuntuでは、この実行可能ファイルを実行するには、/ usr / local/libディレクトリにlibecl.so.11.1ファイルが必要です。このファイルは5.7mbです。

于 2011-03-23T22:04:42.623 に答える
1

Common Lisp の実装であるECLがありますが、これはあなたが望むことを行うようです (ただし、私はまだ使用していません)。

于 2009-04-05T23:45:51.130 に答える