JUCE(1)

公開:2008-01-04 08:37
更新:2020-02-15 04:36
カテゴリ:

JUCEライブラリの概要はライブラリサイトの冒頭の文章で把握できる。

JUCE(ジュールのUtility Class Extensions)は、クロスプラットフォームアプリケーションを開発するための網羅的なC++クラスライブラリです。

JUCEは、高度に専用化されたユーザーインターフェースを作成したり、グラフィックやサウンドを処理するのに適しています。

対象とするユーザは私のような、C++で巨大で複雑なアプリケーションを書いていて、異なる目的や異なるプラットホームに対応するために異なるライブラリを束ねるよりも1つの明快で、ハイレベルなAPIのみを使用したいと考えている開発者です。

確かに複雑なアプリケーションを書こうとすると、フルスクラッチでない限り、さまざまなライブラリを組み合わせる必要が出てくる。
ライブラリ内は比較的一貫性を保っているのでよいが、ライブラリ間は一貫性がないため、アダプタなどを記述しなくてはならず、それが面倒くさいのだ。
実際、S.F.TrackerもコアはSTL+boost、GUIはJUCEで作成を行っているが、ライブラリ間で一貫性がなく、やはりアダプタをかましたりする必要が出てくる。
そもそも、JUCEはコアなライブラリ(コンテナや文字列、スレッドなどの同期プリミティブも!)、GUIやサウンド・グラフィックに関する事柄ほとんどすべてを網羅しているので、すべてをJUCEで作成すべきなのだ。JUCEの開発者はそう指向しているではないか。

S.F.Trackerはライブラリの利用方法を誤っているよい例になってしまった。

しかし、JUCEはいわゆるSTLライブラリと相互に利用できるようには作られていないので、GUIの部分だけを抜き出してSTL+Boostベースで再構築すればライブラリがコンパクトになり、もう少し利用者の対象範囲が広がるのではないかといつも考えるのだが、手が出ない。