文書の過去の版を表示しています。


基本的な情報

概観

ホームページ https://www.fltk.org/
言語 C++
主要プラットフォーム 各種Unix、BSD、Linux、Windows、macOS
ルーツ 独自
ライセンス LGPL

その他の情報源

簡易レビュー

このレビューは完全に主観的で独善的なものです。

導入段階における学習しやすさ

⭐が多いほど学習しやすいことを意味します。

序盤 ⭐⭐⭐⭐⭐
中盤 ⭐⭐⭐⭐☆
それ以降 ⭐⭐⭐⭐☆
  • 序盤: Hello Worldやそれに少し手を加えたような小さなプログラムを書けるようになるまでくらいを指します。
  • 中盤: ライブラリの機能一通り把握して、それらを利用するケースを体現するようなプログラムを書けるくらいになるまでを指します。
  • それ以降: ライブラリを用いて現実の規模と堅牢さを持つプログラムを書けるようになるくらいと、更にライブラリの仕組みや設計の探求に踏み込んでいくまでを指します。

要求されるプログラミングスキル

⭐が多いほどハードルが低いことを意味します。

言語 ⭐⭐⭐⭐☆
開発環境 ⭐⭐⭐⭐⭐

FLTKを利用するにはクラシックなオブジェクト指向を基礎にしたC++を習得している必要があります。 1) C++は非常にメジャーな言語ではありますが、学習コストはやや高めであることが知られています。 そのため、もしC++をまだ一度も学んだことがないのであれば、FLTKを利用するためのハードルもやや高めになります。 しかし、C++をこれから自分の主要言語の一つとして用いることを決めている場合は、長い目で見るとFLTKを利用するためのハードルはとても低いです。

その理由は、FLTKのAPIが非常にシンプルだからです。 初歩的なC++の知識だけでもとりあえずは目的のものを書けるようになっています。 残念ながら、この「とりあえず」という性質は危険をはらんでいます。 現実的なプログラムを書こうと思ったら、やはり相応のC++習熟度が求められます。

それじゃ意味ないじゃないかというとそうでもなく、C++の学習をサポートするための教材としてFLTKを利用することができます。 C++言語を楽しく学ぶための素材としてはもちろん、優れた現実のソフトウェア(この場合はライブラリ)のデザインを体験することができます。 もちろんこれはFLTKだけのものではなく、どのような優れたソフトウェアを利用する場合にも当てはまることです。 FLTKにおいて特筆すべきなのは、

  • 最初の段階ではとりあえず十分にC++に習熟していることを要求しないこと
  • C++の習熟度が上がっていくに従って現実のプログラムを書けるようになっていくこと(つまりライブラリが現実の使用に耐えうるソフトウェアであること)

この両方を達成していることです。 おもちゃではない現実のライブラリを使いながら楽しく学習を続けられて、最終的には自分で現実のプログラムを生み出せるようになる可能性を得られます。

開発環境に目を向けると、FLTKはメジャーなOSのほとんどで利用できます。 さらに、FLTKの利用形態も標準的なコンパイル・リンクモデルによるものが基本なので、特殊な開発ツールに依存することはありません。 仮にまだプログラミングを初めて間もないなどの理由で、IDEなどの補助に依存したプログラミングのプロセスしか経験がなかったとしても、容易にそのプロセスに取り入れることができます。 したがって、開発環境においてはFLTKを利用するためのハードルは何も存在していません。

1)
Rust、Python、Rubyなどのバインディングが公開されているので、必ずしもC++で書かないといけないわけではありません。しかし、オリジナルであるC++のFLTKについて一切予備知識無しでバインディングだけに頼るのはあまり良い選択ではないでしょう。
文書の編集
文書の先頭へ