さまざまなファイル形式に対応する圧縮・解凍ユーティリティ「PeaZip」――SourceForgeが選ぶ今月のプロジェクト

 米SourceForgeでは毎月1つのプロジェクトを投票で選び、「Project of the Month(今月のプロジェクト)」の栄冠を与えている。2012年9月の「今月のプロジェクト」に選ばれたのはファイルアーカイバ「PeaZip]だ。以下では、その開発者に対するインタビューの模様をお伝えする。

  今回は、2012年9月の「今月のプロジェクト」に輝いたPeaZipを紹介する。PeaZipはさまざまな圧縮形式に対応する圧縮・展開ユーティリティだ。メールを通じて、その開発リーダーであるTani Giorgio氏にプロジェクトについてやプロジェクトの歴史、そして今後について話を聞くことができた。

 ――「今月のプロジェクト」受賞、おめでとう! そして、まずはPeaZipの機能を紹介してくれないか?

 Giorgio: ありがとう。PeaZipプロジェクトを紹介できる素晴らしい機会を与えられて非常に光栄に思っているし、ここに辿り着くまでに貢献してくれた多くの人たちに感謝している。

 ファイルおよびアーカイブの管理ツールであるPeaZipは十徳ナイフのようなソフトウェアで、データを扱うための機能がたくさん備わっているんだ。これ1つでアーカイブファイルの作成や展開、変換、ファイルの暗号化及び復号、安全なファイル削除、広範囲に渡るチェックサムやハッシュの検出、ファイルのコピーを行える。

 基本的に、ファイルの保存やバックアップ、共有に便利な機能はいずれもPeaZipの開発範囲に含まれるし、含まれるべきだ。と同時に、よく使われるような使用パターンでも操作を複雑にすることなく、機能を簡単に見つけ出すことができるフレンドリーなユーザーインターフェイスを維持することも目指している。

 PeaZipの特徴はその圧縮・展開インターフェイスにあるんだ。あらゆるファイル形式に対応したファイルマネージャが備わっており、圧縮・展開されるアイテムを簡単に確認したり更新することができる。また、GUIアプリケーションの使い勝手の改善と、コンソールのパワーや柔軟性とのギャップを埋めることも目標の一つとしている。たとえば、バックアップ操作を自動化するため、GUIで処理したタスクをバッチスクリプトとして保存できる。

 ――PeaZipの歴史について聞きたいのだけど、このプロジェクトを始めることになったきっかけは?

  Giorgio: 一番最初の重要なきっかけとなったのは、クロスプラットフォームのアプリケーションを作成するのにぴったりな「Lazarus/FreePascal IDE」を見つけたことなんだ。ネイティブなGUIを使い、自己完結型でほぼすべてが揃っており、ネイティブでかつ移植可能なソフトウェアを作成するのに向いている。これは私も大変気に入っているんだ。

 自分は2006年に、Wolfgang Ehrhardt氏が作成したDelphi向けの暗号ライブラリを使って、ファイルの圧縮や認証用暗号化のためのアーカイブ形式である「PEA」(「pack, encrypt, authenticate」の略称)の製作を始めたんだ。当時、PeaZipはPEA形式の作成および展開を行うためのフロントエンドという位置付けだった。というのも、このプロジェクトではほかの目標を優先させており自分の中での優先度は低かったんだ。ところがユーザーからのフィードバックによって汎用のGUIを作成するのに集中することとなり、最終的には7-Zip/p7zipやFreeARC、PAQといった圧縮ライブラリを使って、さらに多くのファイル形式をサポートすることになった。

 ――PeaZipでは12種類もの形式でファイルの圧縮ができるし、展開できる形式は150種類にもなるよね。PeaZipで作成できるファイル形式の中には、ライセンス的に制限のあるものは含まれているのかい? PeaZipで作成できるファイル形式を選ぶにあたって、法的問題は考慮した?

 Giorgio: もちろんさ。可能な限り、ライセンスによる制限がないファイル形式、オープンソースライセンスでリリースされているファイル形式の仕様や標準実装をサポートするように集中して開発している。

 私の意見としては、フォーマットに関する仕様やソースコードの完全公開は、ユーザーが囲い込みを目論むベンダーからその権利を守るための最善の方法なんだ。フォーマットに関するドキュメントが少なかったり、ソースコードにアクセスできなければ充分な分析を独自に行うことも困難であるため、欠陥を見過ごすこととなってしまう。

 ――長いこと、とても早いサイクルでのリリースを行ってきたよね。リリースが毎月行われていたこともある。ファイル圧縮の分野って、そう頻繁に変更が行われるものなのかい?

 Giorgio: そうなんだ。その当時は圧縮分野で非常に多くの改良が行われていた。WinZipやWinRar、7-Zipといった有名なアプリケーションが、早いスピードで改善されている。アーカイブの形式やファイルシステム、通信プロトコルをデザインするにあたって暗号化は欠かせないものとなっているし、マルチコアCPUが主流となり、効率的な並列処理の利用がパフォーマンス向上の重要な鍵となっている。また新たなOSのリリースによって、テストもしなければならなかった。

 これまでの「早期にリリース、頻繁にリリース」というパラダイムに従い、PeaZipで使われているオープンソースな技術をアップデートするペースを遅らすことなく、GUIフロントエンドの操作性やソフトウェアの統合性を改善してきた。

 プロジェクトでは頻繁にアップデートを行い、積極的にユーザからフィードバックを得ることで、プロジェクトを成長へ導くよう努力している。新旧の両ユーザーにとってのアプリケーションが親しみやすく、使い勝手が良いものであるよう、バランスをみながら新機能を導入してきたんだ。

 ――プロジェクトが今後向かうところは?まだやることはある?

 Giorgio: まだまだたくさんあるよ! リクエストされている機能はまだ多くあるし、時として対称的なものある。例えば、WindowsにおけるUTF-8サポートやシステムメニュー統合の改善。ReactOSサポートの改善。Linuxでia32-libsに依存せずに64ビットでネイティブにコンパイルできるようにすること。最新版のQtやGTKウィジェットツールキットのサポート。(PeaZipが使用している)Lazarusはやっと1.0RCの節目に到達したところだから、開発者らに提供されることになる改良点を試すことが楽しみなんだ。次期リリース版のPeaZipはMatt Mahoney氏による「ZPAQ 4.04」をサポートすることになるだろうし、UIの視点から行われるアップデートも画期的で、アプリケーションの挙動を洗練させることになる。ユーザーにとって必要な情報が表示されるようになり、システムリソースの使用もより最適化できるんだ。

 Rich: コミュニティに参加したい人はどうしたらいい?

 Giorgio: PeaZipはSourceForgeやGoogle Codeのほか、TwitterFacebookGoogle+といったソーシャルメディアでも交流が活発に行われている。こうしたネットワークを通じて、それぞれに異なるユーザー体験や目標をもち、アプリケーションを異なる方法で使用する、いろいろなタイプのユーザーと繋がろうとしているんだ。各ユーザーがコードや提案、機能のリクエスト、バグの報告といったフィードバック、そしてときとして必要性が軽んじられていることもある翻訳など、その人にとってももっとも適した方法でプロジェクトに参加できるようにしたいと思っている。翻訳はプロジェクトがより広く、英語をネイティブに話さない人たちにもアクセスしやすいものとするためには不可欠だしね。

 そして、PeaZipの成長に貢献してくれた皆に心から感謝している。PeaZipのベースとなるブロックを組み上げたチーム(Lazarus、7-Zip、FreeARC、Wolfgang Ehrhardt、Matt Mahoney、そのほかの皆さん)は、素晴らしいソフトウェアをオープンソースでリリースしてくれた。翻訳家達は、時間をかけてPeaZipをローカライズし、リリースの度にアップデートしてくれた。ソフトウェアをテストしてくれた皆は、この6年間に渡って重要なフィードバックを提供してくれた。皆、本当にありがとう!