5

clojure / seesawアプリ用のシンプルなタイムラインコンポーネント(ビデオ編集ソフトウェアなど)が必要ですが、これをclojureとseesawで直接実装するのが良いアプローチなのか、それともJavaで記述してclojureラッパーを作成する必要があるのか​​疑問に思っています。その周りに。

または、より一般的には、関数型プログラミング言語はUIウィジェットの作成に最適ですか?多くの国家が関与しなければ、それを行うことは想像できません。そして、OOはそもそもUI開発のために発明されたのではありませんか?

4

3 に答える 3

4

どちらにでも行くことができます。Overtoneでは、 Seesawを使用してClojureで直接多数のカスタムグラフィカルコンポーネントを構築しました。多くの場合、原子と(seesaw.core/canvas)この種のものには十分です。

どれだけ凝ったものになるかに応じて、Clojureでそれを行う理由の1つは、Seesawのプロトコル(選択、バインドなど)を新しいウィジェットに拡張して、Seesawとシームレスに連携できるようにすることです。もう1つの考慮事項は、ウィジェットがアプリの他の部分からのClojureデータを利用する必要があるかどうかです。これは、JavaよりもClojureの方がはるかにクリーンです。

とは言うものの、Swing / Javaに慣れている場合は、そこでそれを行うことができ、SeesawはJavaで構築されたカスタムウィジェットを使用して完全に満足します。幸運を!

于 2012-03-23T14:36:08.277 に答える
2

FPはUIプログラミングを行うのに適していますが、そのためには、基盤となるUIフレームワークもFRPなどのFPの概念に基づいている必要があります。あなたの場合、基盤となるUIフレームワーク(Swing)はOOベースであるため、Javaでの実装がより簡単になります。しかし、それでもシーソーでそれを行うことができます。

于 2012-03-23T11:53:45.367 に答える
2

他のすべてが等しい場合(つまり、ClojureとJavaの両方を知っていると仮定すると)、おそらくこれをJavaのカスタムSwingコンポーネントとして記述します。

理由:

  • Swingは基本的にJavaベースのOOPフレームワークであり、パラダイムの観点からJavaとの適合性が高くなっています。
  • 可変状態は、ClojureよりもJavaの方が簡単です
  • Javaで作成すると、他の場所でより簡単に使用できます(たとえば、他のJavaコードのライブラリとして)
  • Swingコンポーネントを作成した後は、Clojureで簡単にラップできます。

もちろん、アプリケーションロジック自体については、Clojureの方が確かに好きです。

于 2012-03-23T12:02:22.323 に答える