Weblog(2003/06)

2003-06-07(Sat)

互換性

仕様が未だ不確定であり安心して利用できないという話。 どこまでやっても許されるだろうというのは僕も陥りがちな「作る側の甘え」。

えーと。。。 元が野嵜さんのMozillaは、仕樣變更を繰返し過ぎ。ヴァージョンアップの度にユーザプロファイルを作り直さなければならない(かも知れない)と言ふのでは、ユーザも安心してMozillaを使へない。 という部分だと思うのですが、ちょっとプログラマとして反論してみます。

根本的なところで勘違いされていると思うのですが、仕様変更は繰り返すべきです。 無理矢理過去との互換性を重視しすぎると、駄目になりがちです。 プログラムというものはその時に動作するべき機能のみを記述するのが最もシンプルなソースコードといえます。 ソースコードの複雑化のために進化できなくなったアプリケーションが現に存在したことから考えてもソースコードを複雑化させてまでユーザに媚びを売る必要はありません。 つまり、いちいち仕様変更に対して互換性をとるべきではないのです。

ですがユーザにとってこのような仕様変更は、 仕様変更によるメリットよりも不具合として見えることは確かです。 そこで、古い形式から新しい形式への(自動)コンバートが可能なようにして回避するのが最もシンプルでしょう。 *.xlsの95形式から97形式みたいなものです。

ここで問題になるのがMozillaの位置づけです。 Mozillaは一般使用ではなく開発者向けのものですから、バージョン間で互換性がとれていなくても良いと考えることができます。 Nightlyを追いかけている身からすれば迷惑ではあるのですが、それほど強い不満はありません (Milestoneに関しては意見の分かれるところだと思いますが)。

ですが、一般用途向けのNetscape7.xとなると話は別です。 Netscape7.xがでる際にはMozilla1.0.1からMozilla1.4へprofileをコンバートできるべきでしょう。 つまり、仕様変更に対して追加プログラムでそれを感じさせないことが重要だと思うのです。

私の考えをまとめると、あるポイントからあるポイントへのコンバートを可能にするプログラムは製品版には必要ですが、 Nightlyのようにリリース期間が短すぎるMozillaではそれはできないということです。

Mozillaの場合は「甘え」ではなく、「現実的ではない」と考えるべきでしょう。

2003-06-14(Sat)

Bug 3211 要素をセンタリングするとページの左側が切れて表示される(ウインドウ幅より大きい要素)

div[align="center"]と、center要素のレイアウトに、IEやOperaと互換性が無いという問題。 HTMLの仕様書では4.01、3.2共に明確に規定されていない仕様なのでブラウザ間の互換性を重視すべきだと思う。

Bug 3214 [Win9x] 等幅ボールド文字がある条件で欠ける

baffclanさんのコメントから文字のExtraSpace(CSSで言えばletter-spacingによる字間)にもWinNTとWin9xで互換性が無いのではないかという疑惑が浮上中。

Bug 395 [Win9x] 太字/ボールド/boldの幅計算が実際より小さくなっている - 太字の文字列を選択したときに右に揺れ動く - 太字の文字列が右端で綺麗に折り返さない

Win9xを使用している人にとって、次期安定版であるMozilla 1.4で修正される最後のチャンスかもしれません。

協力できる方は斉藤さんのパッチの検証を手伝ってください。

Masayuki Nakano(問い合わせ先)