Ruby を使う機会を少しずつ増やしているが、それはあくまでも、小さなタスクを手早くやっつけるために使っている。メインの業務は Web アプリケーションの開発だが、こちらは相変わらず ASP.NET with C# のスタイル。Ruby on Rails など興味はつきないが、メイン業務の性格や需要などを考えると、総合判定の上、APS.NET から宗旨替えする予定は今のところない。
そうは言っても"ちょっとした仕事"をぱっぱと片付けるためには、Ruby は素敵だ。慣れないと暗号めいたコードも書けるが、なに、大勢のプロジェクトで共同で作業するわけでもなし、自分が読めればそれでよし。早く仕事ができるにこしたことはなく、その分野では、私には Ruby が性に合っているようだ(Python - 特に .NET の IronPython - とか、他にも気になる存在はいろいろあって浮気しそうだが)。
だがやっぱり困ることはある。
基本の軸足が C# なので、なかなか Ruby のクラスライブラリを覚えられないのだ。
じゃぁ、というわけで、いくつか .NET Framework と同じ構文をもつクラスやメソッドを書いて自分で再利用している。
例えば、ファイルをコピーしたいのであれば「File.Copy(src,dst,true)」、ファイル名から拡張子だけを取り出したいなら「Path.GetExtension(fileName)」、文字列の書式化には「String.Format("hoge{0:D2}",foo)」、といった具合。
.NET Framework のすべてを移植しようなどとは考えていないが、自分がよく使う機能については、都度、こんな感じで .NET Framework 風味を加えている。
でもこんなことができるのも、やっぱり Ruby のいいところ。C# では string クラスにそのままメソッドやプロパティなどを加えることはできないが、Ruby(や JavaScript など他の同機能を持つ動的言語)ならそんなことは朝飯前。たとえ、Ruby 備え付けのライブラリと .NET Framework とでクラス名がダブっていても、気にせずメソッドを付け加えて利用できる。
そんな大それたライブラリではないので、下記に置いておく。ご利用はご自由にどうぞ。ライセンスがどうこう気になるのであれば GPL にでもしておくか。
http://www.stbbs.net/~junichi/archive/dotNETLike.rb