パスワードを忘れた? アカウント作成
33970 story

クロスプラットフォームなC++ライブラリ「CLX C++ Libraries」の開発者に聞く 23

ストーリー by morihide
公開していい自作ツールがあったらSF.JPに登録しよう 部門より
SourceForge.JPでは、同サイトを利用するオープンソース・プロジェクトを毎月1つピックアップし、その開発者にインタビューする「今月のプロジェクト」というコーナーを設けています。今回は、ヘッダファイルのみで構成されたクロスプラットフォームのC++ライブラリ「CLX C++ Libraries」の開発者cielquis氏にお話を伺いました。

プロジェクトの概要

  • プロジェクト名: CLX C++ Libraries
  • 登録日: 2008-07-11
  • URL: http://clx.cielquis.net/
  • プロジェクトホーム: http://osdn.jp/projects/clxcpp/
  • 動作環境: コンソール(テキストベース)
  • ライセンス: BSD License
  • 言語: 日本語
  • プログラミング言語: C++
  • プロジェクト管理者: cielquis

CLX C++ライブラリは、文字列処理やネットワークプログラミングの補助などを行うための、ヘッダファイルのみで構成されたC++ライブラリです。CLXは、他のライブラリを必要とすることなく単体で利用することができます。また、システム(WindowsまたはLinux)に関わらず、同じインターフェースで利用することができます。動作確認は、gcc 4.1.2およびVisual Studio 2005で行っています。

プロジェクト管理者へのインタビュー

“CLX”は何の略ですか?

CLown eXtended (C++ Libraries)

かなりこじつけですが。clownは、自分が普段使ってるハンドル名です。何か意味があって、それなりに短い名前空間が欲しいなとあれこれ考えた結果、この名前に行きつきました。

CLXの開発コンセプトは?

Download & Inject

C++だとBoostが準標準と言う扱いになっていますが、Boostを使っていると「このライブラリって使うのにビルドが必要だったかな?」と言う風に実際に利用するまでの設定で悩むことが多々あり、それが面倒に感じていました。

なので、(ダウンロードした)アーカイブを解凍してできたフォルダを作業フォルダにコピーするだけで使えるライブラリを目指しています。

プロジェクトを始めた動機は? また、どうやって始めましたか?

実験データから平均値などの値を求めることが多かったのですが、そのときに、実験によって出力されるデータのフォーマットが違うので、その都度(書き捨て)プログラムを書くのが面倒だなという不満を持っていました。そこから、“データ一行分のフォーマットを文字列で与えたら勝手に全部読み込んで(二次元)配列に展開してくれる”ものが欲しいなと思ったのが最初でした。その機能を実装したのが以下のライブラリになります。CLXの中でもかなり思い入れの強いライブラリです。

その後は、プログラムを書くたびにライブラリ化できるものはできるだけ再利用可能な形に書き直し、取り合えずどんどん追加していくうちに現在の形になりました。

SF.JPに開発拠点を移した理由は?

始めは大学のWebスペースで公開していたのですが、それだけだとやっぱり誰も振り向いてくれないので寂しいなと感じていました。それで、どうしたら少しでも使ってもらえるかなと考えていたときに、SourceForge.JPのことを思い出して、OSSと言う形で公開してみようと思い立って申請してみました。

このソフトウェアのターゲット・ユーザーは?

C++でプログラムを書く人全て、でしょうか。

ちょっとしたプログラムを書くときに、このライブラリを使うとグっと楽に書けると思ってもらえるように育っていけばいいなぁと願っています。

プロジェクトがうまく行っていると感じるのはどんなときですか?

このライブラリを使って自分でプログラムを書いている時かな、と思います。隣の人がExcelで実験データを開いている間に、プログラム→コンパイル→計算、の全てが終わったときは勝ったと思いました(笑)

このプロジェクトをやっていて最も驚いた出来事は?

間違いなく、このインタビューですね。メールを頂いたときは本当に驚きました。

このプロジェクトで最も苦労している点は?

リファレンスの作成に一番苦労しています。

ライブラリを使ってもらえるかどうかはリファレンスにかかっていると思うので、できるだけ多くのサンプルプログラムを載せつつ、使い方を分かってもらえるような説明を書くにはどうしたらいいかな?といつも悩んでいます。

今後のプロジェクトの方向性は?

しばらくは、テスト&デバッグをメインにやっていこうかなと思っています。

後は、インターフェース(関数の引数など)が使い易いかどうかの確認。今まで何度も大幅にインターフェースを変えているのですが、そろそろインターフェースを固定して、互換性のことも考えて行きたいなと思っています。ぼちぼちver. 1.0.0を名乗りたいですし。

ただ、今までもそうでしたけど、新規ライブラリの追加は思いつきなので、こんな機能が欲しい!と思ったらまた増えるかもしれません。

このソフトウェアあるいはプロジェクトについて誇れるところは?

誇れるところ……何でしょう。今回、この話を頂いたことは誇れるんじゃないかな、と思っています。

このプロジェクトでどこかやり直せるとしたら、どこを変更したいですか?

CLXというキーワードでgoogleで検索してみると、どうやら既にC++で有名なものが存在しているようで……この辺はきちんと調査すべきでした。

そんな訳で、CLXと言う名前を変えたいです。

あなたの本業は何ですか?

大学生です。そろそろ本業を見つけないといけない頃合なので、就職先を絶賛募集中です!

あなたの開発環境は?

  • 開発環境: Windows XP SP2 + テキストエディタ
  • テスト環境: gcc 4.1.2 (cygwin)、Visual Studio 2005

バージョン・ヒストリー:

  • 2006/02/22 version 0.5.0 最初の公開バージョン
  • 2008/07/12 version 0.9.1 SourceForge.JPにて最初の公開バージョン
  • 2008/08/28 version 0.11.0 最新バージョン

その他は、Update historyのページを参照して下さい。

このプロジェクトに貢献するには?

誰が使っているのかも全然分からない状態なので、取り合えず使っている人の反応を期待しています。後は、こういう機能があると良いのでは?みたいな要望があれば、自分の能力と興味が叶えば実装していきたいと思います。

SourceForge.JPへの要望をお聞かせください。

まだ利用し始めたばかりでそれぞれの機能の役割が分かっていない、と言うことで、チュートリアル的がものがもっとあると良いかもしれません。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • Kylix... (スコア:3, 参考になる)

    by 130R (31126) on 2008年09月01日 16時03分 (#1413514) 日記
    CLXってBorlandがKylixで導入したVCLのクロスプラットフォーム版(Component Library for Cross platform)と同じ名前ですね。
    以前だったらかぶってて困るなあと思うところでしたが、Kylix亡き今となってはそっちを連想する人は少数派でしょうねえ。
    それでも略称をCLXにしないでいただけると何となく嬉しいなあと思う次第です。年寄りの郷愁ですみません。
    • Re:Kylix... (スコア:1, 参考になる)

      by Anonymous Coward on 2008年09月01日 17時34分 (#1413566)
      私もてっきりオープンソース化されたBorlandのCLXかと思って読み始めました。その認識を疑い始めたのは動作確認の環境にBorlandのボの字も出てこないという辺りでございます。
      ええ、ええ、今でもC++Builderメインでお仕事してますよ!ま、Win32ネイティブアプリ案件がそもそも希少だけどね(苦笑)
      親コメント
      • by taka2 (14791) on 2008年09月01日 18時46分 (#1413599) ホームページ 日記
        私もBorlandのCLXと思ったというか、プラットフォームが「WindowsとLinux」ってあたりはまだ騙されてた。
        こういうのは前例があるというか、Borland が VCL の前に出していたクラスライブラリ「OWL」には、
        有志によってUnicode対応だとかもろもろの拡張を施されてOWL Next [xrea.com]なんてのが存在するんですよね。今回のもそのクチなのかな、と。
        「ラッパークラスとして作るなら、ヘッダだけで実体が無いってのも出来ないことも無さそうだな」って…

        FirebirdをFirefoxに改名した某を見習って欲しいものです。ていうか、名前を付ける時はとりあえずググる癖ぐらいは付けたほうがいいんじゃないかなーとか。
        親コメント
        • by 130R (31126) on 2008年09月01日 19時26分 (#1413614) 日記
          そういえばFirebirdもborlandでしたね。borlandは後付けでかぶられやすい名前が多いんでしょうか。
          delphiの名前候補だったAppBuilderも後で別のところが使ってたし。
          親コメント
          • >後付けでかぶられやすい名前が多いんでしょうか。

            今となってはBorlandとは無関係に「Turboなんたら」というプログラム言語が出てもおかしくないですね。
            あ、今は開発ツールはBorlandから分離したんだった。(Embarcadero社のCodeGear [codegear.com]か…)

            一時期社名に使っていたInprise(黒歴史)も、そのうちどっかに使われるのかなぁ。
            --
            うじゃうじゃ
            親コメント
          • by tmiura (6268) on 2008年09月02日 1時17分 (#1413775) 日記

            DataNose論文 [cmu.edu]でも、GUIDEという名前のプロジェクトを10件くらい参照して揶揄してますね。

            あと、「TEX」ってシステムが既にあったのでEを少し下げてギリシャ文字ってことにしたタイプセッターとか。

            親コメント
    • by Anonymous Coward

      このプロジェクトでどこかやり直せるとしたら、どこを変更したいですか?
      CLXというキーワードでgoogleで検索してみると、どうやら既にC++で有名なものが存在しているようで……この辺はきちんと調査すべきでした。
      そんな訳で、CLXと言う名前を変えたいです。

      と、思いっきり本人が書いているわけですが、「余計なもの」では。
  • by Anonymous Coward on 2008年09月02日 0時08分 (#1413755)
    > 実験データから平均値などの値を求めることが多かったのですが、そのときに、実験によって出力されるデータのフォーマットが違うので、
    > その都度(書き捨て)プログラムを書くのが面倒だなという不満を持っていました。

    なんでこういう用途に、LLな環境に逃げずに、
    C++を選んだんだろうか。

    なんか使わなければならないC++資産でも抱えてるんだろうか?
    不思議に思った。
    • by Anonymous Coward on 2008年09月02日 8時11分 (#1413838)
      >> 実験データから平均値などの値を求めることが多かったのですが、
      >>そのときに、実験によって出力されるデータのフォーマットが違うので、
      >> その都度(書き捨て)プログラムを書くのが面倒だなという不満を持っていました。

      >なんでこういう用途に、LLな環境に逃げずに、
      >C++を選んだんだろうか。

      作者さんの環境は知りませんが、私はデータの個数が100万対とか
      1個のデータファイルが500MBとかいうC/Fortranライブラリインターフェイスを使う
      バイナリファイル数百個から平均値を求めるのでLLな環境は最初から度外視ですた。

      ##LLなインターフェイスもあるらしいがパフォーマンス悪い
      親コメント
      • by Anonymous Coward
        バイナリファイルを扱うから論外というのはわかる。
        でも、500MBのファイルをリニアにメモリに展開する必要があるような、
        書き捨てお手軽プログラムが必要になるような状況は考えづらいな。

        例に挙がってるクラスもテキストターゲットぽいし、
        作者さんの場合とはちがうかな。

        とすると、
        やっぱ最終的にはC++への愛の問題なんだろうな。

        # 私はC++への愛などない。Cにはあるのが問題で。
    • by 21 (23614) on 2008年09月02日 0時30分 (#1413762)
      逃げだからじゃないでしょうか。
      親コメント
    • Re:なんでC++で? (スコア:1, おもしろおかしい)

      by Anonymous Coward on 2008年09月02日 3時26分 (#1413799)
      お前はまだまだC++へ愛憎が足りてないから、そんなこともわからないんだよ。
      親コメント
    • by Anonymous Coward
      >なんでこういう用途に、LLな環境に逃げずに、C++を選んだんだろうか。

      鉛筆を削るのに、肥後守じゃ時々研がなきゃいけなくて不便だからカッターにしたけど、鉛筆削りは使いたくないとかって感じ?
  • by Anonymous Coward on 2008年09月01日 15時42分 (#1413504)
    ヘッダーだけでがんばる事に意味があるんだよね!?
typodupeerror

「毎々お世話になっております。仕様書を頂きたく。」「拝承」 -- ある会社の日常

読み込み中...