2003年06月16日

レイアウト

何年経ったか分からないほどJavaとは縁遠い生活を送っていた俺だが、遂に年貢の納め時が来た。iAppliを作れという業務が来るかも来るかもと思いつつ、いやだって、とか、それはCで書けるだろ、とか、うへへーとか言いながらエージェントスミスばりにダッヂしていたのだが、〆切が設定され、嫌でも書かねばならない状況に追い込まれた。嗚呼Java。

tryしてcatchしてfinalizeするJava。ポインタがないJava。型に厳しいJava。できるだけショックを減らそうと思って鼻歌を無理矢理に歌いながらコーディングにかかる。

でもやっぱりやだ。「staticなコンテクストからstaticでないhoge()は呼び出せません」ってどういうこと?コンパイラの言うことが全然サパーリわかりません!しょうがないので某みどりくんに電話をかけて馬鹿みたいにエラーメッセージを詠唱したら、あぁそれはですね。インスタンティエイトしてないオブジェクトでインスタンス用のメソッドを呼んだときに出るんですよという実に分かりやすい(笑)解説をしてくれた。ありがとう緑さま。

とにかくそういうシステム上の方言と戦いながらなんとか書いたわけだが、俺がJavaが嫌いだった理由を最後になって思い出した。仕様書にある「Labelが複数行に渡るときは1行しか表示しなくて残りは全部切り捨てる」みたいなやつだった。部品のレイアウトが阿呆すぎるのだ。

これは、俺のようなフォント気狂い、テキストレイアウト大好きっ子には耐えがたい不自由さなのだ。極端な話、Java プログラミングをやりはじめた初心者が1日目に書くHello, Worldでさえ既に耐えがたいのだ。

カーニングとかリガチャーとかは言わないさ。せめて行間とか禁則は考えてくれよ。とか思うわけです。プラットフォーム非依存にしたいがために、見た目の部品を極度に抽象化して、さらに徹底的に恰好悪くしたのがJavaのAWTと言えよう。

AWT2とかで改善したのかもしれないが、iAppliでは、あの忌まわしいAWT1.0ライクなAPIが堂々と残っている。ボタンとかラベルとかチェックボックスの色見を原色みたいな色から選び、真中とか左とか右みたいな大まかなレイアウトをし、システムで提供されるショボイフォントしか表示できないテキストボックスでささやかなメッセージを表示するしかないのだ。

言語というのは思考を構築するツールであり、思考はその記述言語により規定されるという考え方が正しいならば、恰好悪い部品しかないJavaでは何を組み上げても恰好悪いのだ。昔、そう考えて自然にJavaから手が離れた経緯を鮮やかに思い出した。

とはいえ、アプリケーションが動いてみると結構面白い(笑)。歳をとって変なコダワリがなくなった分世界が広がったというか。

それと関連してMovableTypeのインターフェイスもやっぱりWebページの部品のインターフェイスに縛られている。この文章を入力しているTextAreaもたかだか8-9行くらいしか表示できなくて、最初のころに何を書いたのかすでに見て確認することはできない。普通のエディタで書いたものをコピペとかすればいいのだろうけどそれはすでにインターフェイスとしての役割をMTが放棄していることに近い。

編集する、という行為をもっと真面目に考えてブラウザのインターフェイスを根本から考え直す時期が来てると思うのだが、そういうこと考えている人はプログラマじゃなかったりするわけで。間をつなぐ誰かがいないかなーと思う俺にはなかなか暇がない。

最初に書いたことは全然忘れたんだけど、まあ、俺はいまだに、そして多分永久にJava初心者だと思う。

Posted by MTBeginner at 2003年06月16日 05:00 | トラックバック
コメント

永久に初心者と言うことは、永久に初心忘れるべからずな人と言うこと。
良いではないか、良いではないか。
あーれーーっ!

Posted by: 常乃 at 2003年07月04日 07:45

漏れは「インスタンスって、実はポインタだ」と気付いてからは JAVA に親近感わきましたよ。
ユーザーインターフェースは確かにくそですが、SWT とかも曲りなりにありますし、
サーバサイドでビジネスロジックとかを書く分には、自然言語に近いし、SE とか上流向けな気がしますです。

#誰も読まんかな。

Posted by: 似非PG at 2003年07月28日 01:38
コメントする









名前、アドレスを登録しますか?