クロスプラットフォームなC++ライブラリ「CLX C++ Libraries」の開発者に聞く 23
公開していい自作ツールがあったらSF.JPに登録しよう 部門より
プロジェクトの概要
- プロジェクト名: 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 & InjectC++だと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, 参考になる)
以前だったらかぶってて困るなあと思うところでしたが、Kylix亡き今となってはそっちを連想する人は少数派でしょうねえ。
それでも略称をCLXにしないでいただけると何となく嬉しいなあと思う次第です。年寄りの郷愁ですみません。
Re:Kylix... (スコア:1, 参考になる)
ええ、ええ、今でもC++Builderメインでお仕事してますよ!ま、Win32ネイティブアプリ案件がそもそも希少だけどね(苦笑)
Re:Kylix... (スコア:1)
こういうのは前例があるというか、Borland が VCL の前に出していたクラスライブラリ「OWL」には、
有志によってUnicode対応だとかもろもろの拡張を施されてOWL Next [xrea.com]なんてのが存在するんですよね。今回のもそのクチなのかな、と。
「ラッパークラスとして作るなら、ヘッダだけで実体が無いってのも出来ないことも無さそうだな」って…
FirebirdをFirefoxに改名した某を見習って欲しいものです。ていうか、名前を付ける時はとりあえずググる癖ぐらいは付けたほうがいいんじゃないかなーとか。
Re:Kylix... (スコア:1)
delphiの名前候補だったAppBuilderも後で別のところが使ってたし。
過去の名前 (スコア:1)
今となってはBorlandとは無関係に「Turboなんたら」というプログラム言語が出てもおかしくないですね。
あ、今は開発ツールはBorlandから分離したんだった。(Embarcadero社のCodeGear [codegear.com]か…)
一時期社名に使っていたInprise(黒歴史)も、そのうちどっかに使われるのかなぁ。
うじゃうじゃ
類例 (スコア:1)
DataNose論文 [cmu.edu]でも、GUIDEという名前のプロジェクトを10件くらい参照して揶揄してますね。
あと、「TEX」ってシステムが既にあったのでEを少し下げてギリシャ文字ってことにしたタイプセッターとか。
Re: (スコア:0)
Re:Kylix... (スコア:1)
すでに「余計なもの」→「既出」 [srad.jp]になりました。
#このコメントは余計なものかもしれないけど
なんでC++で? (スコア:1, 興味深い)
> その都度(書き捨て)プログラムを書くのが面倒だなという不満を持っていました。
なんでこういう用途に、LLな環境に逃げずに、
C++を選んだんだろうか。
なんか使わなければならないC++資産でも抱えてるんだろうか?
不思議に思った。
Re:なんでC++で? (スコア:2, 興味深い)
>>そのときに、実験によって出力されるデータのフォーマットが違うので、
>> その都度(書き捨て)プログラムを書くのが面倒だなという不満を持っていました。
>なんでこういう用途に、LLな環境に逃げずに、
>C++を選んだんだろうか。
作者さんの環境は知りませんが、私はデータの個数が100万対とか
1個のデータファイルが500MBとかいうC/Fortranライブラリインターフェイスを使う
バイナリファイル数百個から平均値を求めるのでLLな環境は最初から度外視ですた。
##LLなインターフェイスもあるらしいがパフォーマンス悪い
Re: (スコア:0)
でも、500MBのファイルをリニアにメモリに展開する必要があるような、
書き捨てお手軽プログラムが必要になるような状況は考えづらいな。
例に挙がってるクラスもテキストターゲットぽいし、
作者さんの場合とはちがうかな。
とすると、
やっぱ最終的にはC++への愛の問題なんだろうな。
# 私はC++への愛などない。Cにはあるのが問題で。
Re:なんでC++で? (スコア:1)
Re:なんでC++で? (スコア:1, おもしろおかしい)
Re: (スコア:0)
鉛筆を削るのに、肥後守じゃ時々研がなきゃいけなくて不便だからカッターにしたけど、鉛筆削りは使いたくないとかって感じ?
ヘッダーだけでも、ライブラリー (スコア:0)
Re:ヘッダーだけでも、ライブラリー (スコア:2, 興味深い)
#引っ張るのはおじいさんと若者。
Re: (スコア:0)
カタカナが苦手な人っていますよね。個人的な印象だと、お年を召した方に多いような気がします。
年寄りがやっている飲食店とかで、壁にメニューの張り紙で「コーラーあります」とか「オレンジジュスー」とか書いてあるの見ると、ちょっとドキドキします。
Re:ヘッダーだけでも、ライブラリー (スコア:2, おもしろおかしい)
ペットポトル
と書かれたゴミ箱を見たときは吹きました。
Re: (スコア:0)
このダメフォントデザイン何とかしてほしいものだ。
Re: (スコア:0)
http://www.microsoft.com/japan/presspass/detail.aspx?newsid=3491 [microsoft.com]
# ヘッダはヘッダーになってたけどライブラリはわからん。
Re: (スコア:0)
発音記号からも分かるように,もともと伸ばす要素が含まれていない
Re:ヘッダーだけでも、ライブラリー (スコア:1)
archery→アーチェリー とか、theory→セオリー とか、symmetry→シンメトリー とか、
carry とか、summary とか、story とか、jewelry とか、country とか、
末尾の ry / ly はカタカナ語だと伸ばす場合が多いと思います。
binary とか memory とかは伸ばさなくても通じるか。
memory はコンピュータ用語だとメモリで通じるけど、一般用語としてはメモリーじゃ無いと通じない場合が多そうな。