Monoはモノではナイ!

C#で書いたプログラムをLinuxなりMacOSになり移植しようと思うと、Mono(http://www.go-mono.com/)のお世話になる。私はどちらかと言うと「Monoは、.NETのユーザーによる実装なのだ」という程度の低い認識だったのだけど、現場で作業する人たちはもっと意義深いものがあるようだ。


たとえば、id:atsushienoさん。
氏は、日本人でMonoに関わっている数少ない開発者だ。氏の日記にはこうある。


id:atsushieno:20050209


だから、正しい実装のMonoをbuggyなMS.NETに合わせろ、なんていうのは、
僕にとっては敵そのものだ。

その気持ちは良くわかる。「buggyだけどMS.NETと互換性がある」のと、「正しい実装だけどMS.NETと互換性がない」のとどちらが良いのだろう? MSにbug報告してMS.NETを直してもらうのが前向きな姿勢なのだけど、MSが対応してくれるとは限らない。MSを説き伏せるには、下手すると「正しい実装と間違った(MS.NET互換の)実装」の二つの実装をするよりはるかに多くの労力を必要とするだろう。そして、結果的にMSを説き伏せられないとしたら…?その場合、もし、「一番手っ取り早いmonoの価値が互換性にある」ことを認めるならば、最終的にはbuggyな(MS.NET互換の)実装を用意せざるを得ない。


たいていのMonoの紹介記事では、「.NETをLinuxで動かすにはMonoを使うと良い」というような論調で、単なる互換品のような扱われ方だが、かくのごとくMonoに関わる人々の想いは様々だ。