fn:avg()
よく考えてみると面倒だよなぁコレ。int/float/double/decimal/TimeSpanのそれぞれについて、桁あふれしないように計算する必要があるんだもの。ざっくりぐぐってみたらこんなのが出てきた。
monoチームの反応
RPMパッケージを作っている仲間が例のこれとこれを見て喜んでいました。曰く
「この人でも使えたんだから、monoのパッケージインストールはとても簡単だ」
パッケージマネージャの懊悩
って、こりは単なる冗談じゃないんだって。何でそんな話が出てきたかというと、ちょうど今「monoはパッケージが多すぎて複雑だから、monoとmono-develだけにしたい」という話がMiguelから出ていて、依存パッケージの問題があるからそれはやりたくない、というのがパッケージやってる仲間の立場なのだ。
一方、なぜパッケージを2つだけにしたいかというと…いや、まあもちろん「簡単だから」ということもあるけど…パッケージングの問題は、実際にはインストール時ではなく後からやってくることが多い。例えばmono-remoting-blah.rpmをインストールするのを忘れたとしよう。これでもインストールは正常に動作する。でもその後、System.Runtime.Remoting.dllを使おうとすると、そんな型は見つからないと実行時1に言われてしまうのだ。これは、パッケージが(現状)たくさん分割されているから生じる問題だ。
もちろん、それぞれの問題は簡単に解決できる。でも、問題の発生の仕方は、それぞれのユーザーによって変わってくるので、質問に答える方も、どのパッケージがインストールされているかを、確認しなければならなかったりする。これはけっこう面倒なことだ。
でも、パッケージを全部まとめたら、使いもしないSystem.DrawingのためにXまわりを入れたりしなければならなくなる…といっても、System.Drawingは実際にはSystem.Webなんかでも参照されていたりするので、(現状では)結局は必要になってしまう。この辺は、結局再編することになるんだろう、とは思う。
@ITの記事って訂正されないものなんだろうか
そういえばずっと昔、XmlSerializerについての間違いを指摘したんだけど、今見たら直ってなかった。@ITってそういう場所なのかな。
勘違いされると困るから…いや、困らないけど…書いとくけど、Monoの記事は良い内容なんだって。重要なのはmonoを開発するに至った思想じゃないですか。技術的な話なんかどうせ@ITの短い連載じゃ掘り下げられないだろうから、あれでいいんだって。
Footnotes
-
利用時.mcsでのコンパイル時を含む ↩