ActionScriptとかJavascriptとか

ActionScript3は良い言語だと思う。
基本的には、型のあるECMAScriptだ。
次のバージョンのECMAScriptはActionScript3の上位互換になるとか。


私はJavascriptが嫌いだ。
DynamicHTML時代の悪い印象があるからだ。
今は随分改善されているようだが、
当時は本当にブラウザの互換性の問題にばかり労力を要した印象がある。
それはJavascript自体とは無関係な、ブラウザ上の話でしかないわけだが、
しかし、言語自体についても苦手意識がある。


クロージャーを乱発するのか、
それとも、そういうことは極力控えて、
慣れしたしんだオブジェクト指向的な記述にするのか、
そのバランスが掴めなかったのだ。
クロジャー乱発スタイルは結構記述量が少なくなる印象があるが、
難しすぎて自分でも理解不能な状態になったりする気がする。
結局、今はクロージャーを使うことは殆ど無くなった。


ただ、そんな負け組みな私でも、例外的にクロージャーを使う局面がある。
非同期な処理だ。
非同期処理では、普通、処理を開始する関数と処理の結果を評価する関数が別々に必要になる。
結果には色々なパターンがあり、しかもそれらが別々のイベントとして通知されたりするので、
普通に結果を処理する関数を定義すると、無節操に関数が増えてしまい、コードが読みにくくなる。
それを解決するためだけに、クロージャーを使っている。


何故だかよく分からないが、他人のJavascriptを読むことが全く無い。
自分のJavascriptActionScriptが正しいのか、全く分からない。
最近の仕事はActionScriptというかFlash,Flexばかりだったりするので、とても不安である。
こんなことで良いのかと。


というわけで、重い腰を上げて、連休中にSWFの仕様書を眺めた。

  • 全体として、知りたかったことは書いてない。
  • 無理やりな拡張を繰り返している印象。
  • 固定小数点数が使われていたが、メリット・デメリットをちゃんと理解しておらず、不安。恥ずかしながら、固定小数点数が実際に利用されているのを始めて見た。内部計算も本当に固定小数点数でやってるのだろうか?
  • Flashのマニュアルにグラデーション空間の大きさが書いてなくて困ったが、この仕様書に書いてあった。
  • 3次Bスプラインを2次Bスプラインで近似というトピックが面白そう。面白そうとか言いつつ、きっと読まないんだけど。。。

次はAVM(SWFのVM)のoverviewとやらを読む予定だが、こういう方針で問題が解決するのかは知らない。


なんか、人生終わった感じがする。