言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

Squeak, VisualWorks, C# で書いた Techo

違いが分かるかな?

なんだかまた寒くなって調子が悪い。

今日昨日と、少し気分を変えて再び VisualWorksC# を触っていた。これらの環境で自作ツールの Techo を実装し、それぞれの言語やライブラリの特徴を見てみる。手前味噌ながら、こういった用途に Techo は非常に都合が良い。実用アプリに必要な以下の機能を一通り揃えているからだ。

  • テキストファイル入出力。
  • ソート。
  • リストボックスとテキストボックス、そしてモデル間の依存関係。
  • 日付の整形。
  • ディレクトリツリーをごそっと検索したり削除したりする。

実はこういう目的には、言語の違いはあまり気にならなくて、ライブラリの構成に大きく影響される。無駄なほどの便利機能が山盛りの Squeak、一つのことをするのに一つしか手段が無い禁欲的な VisualWorks、沢山の静的関数があって、あまりオブジェクト指向しなくても良い C# とそれぞれ特徴があって面白い。

ライブラリには言語の文法以上にどうしても成熟が必要だと思う。言語本体と違い、ライブラリは現実世界の不合理さと付き合わなくてはいけない。そのなかで、例えば二つのライブラリの作り方や名前の付け方が良く似ていたら、その設計は支持された物で、より使いやすい物に近いと言えるだろう。例えばファイルを読み込む時のストリームとエンコーディングオブジェクトの組み合わせは、VisualWorksC# の双方で典型的なパターンになっているだろう。

そんな事を考えながらソースを探索するのは楽しい。