Java.use(better, Scala); Season 02

《前の記事|記事一覧次の記事
Java.use(better, Scala);


Season 02

ファインダーを作成する



父親が、子供達にできる最も重要なことは
子供達の母親を愛することだ
The most important thing a father can do for his children is to love their mother.
Theodore Hesburgh - Wikipedia

《関連記事》

《目的》同じアプリケーションを異なるプログラミング言語 Java/Jython/Scala で作成する過程(作譜:プログラミング)を通して、言語の違いに依らない概念を適用するための手法(算譜:プログラム)を紹介します。
《動機》ともすると、プログラミング言語の違いに目を奪われて、言語の違いに依らないプログラムの本質を見失いがちです。そこに、同じアプリケーションを異なるプログラミング言語で作成することの意義があります。その本質を理解できれば、新たなプログラミング言語を習得するときに役立ちます。

┃事例:ファインダー

Macintosh では、オペレーティングシステムの一部として Finder が提供されます。これを利用すると、コンピューター(および接続されたディスク)上にある、ファイル/フォルダーに関する情報を、体系的に検索/管理できます。伝統的なコマンドラインインターフェイスに代えて、GUIポインティングデバイス(マウス/トラックパッドなど)を利用できるので、コンピューターの専門家でなくても、簡単に操作できます。

しかし、その情報を他のアプリケーションでも活用しようとすると、必ずしも容易ではありません。その情報を標準テキストとして扱えるようにすると、他のアプリケーションでも再利用できるので便利です。プログラマーを目指すなら、Finder を自作するだけでなく、新たな付加価値を提供できるようになりたいものです。

□ アプリケーションを起動する

Java で作成した、次のアプリケーションを事例に話を進めます。

$ java cherry.pie.Tips

アプリケーションを起動すると、2つのウインドーが現れます。

(上)フィールドにパス名を入力すると(下)テキスト領域にファイルシステムが扱う情報が表示されます。それは、指定したフォルダーを頂点に、その傘下にあるファイル/フォルダーの名前を、ツリー形式で列挙したものです。このとき、「+」に続くのはフォルダーで、「.」に続くのはファイルです。また、先行するインデントが、その階層に相当します。これらの情報は、プレーンテキストで表示されるので、他のアプリケーション(テキストエディット等)でも再利用できます。

(左)ツリー項目を選択すると(右)テキスト領域に各項目の情報が表示されます。ファイルを選択すると、そのバイトサイズが表示されます。フォルダーを選択すると、その傘下にあるファイル/フォルダーの累計が表示されます。ここでは、フォルダー example 内にある、3つのファイルの合計が size: 463 となるのが分かります。

Java で作成したこのアプリケーションと同等のものを、Scala で作成する過程を、これから段階的に解説します。

TOP

》作業中です《

Created: 2010/05/23|Last updated: 2013/06/03 0:49:49