ActionScript3.0は好み

前回の記事で、ActionScript3.0(以下AS)は肌に合うと書きました。
今まで多くの言語を触ったことはあれど、仕事で使うレベルだった言語はCだけなので僕が言語について語るのはおこがましいですが、ASについて語ってみます。

ASについては文法や開発手法を1週間かけて大体理解したつもりです。
以下の点が気に入っています。
①言語仕様が綺麗
②完全なオブジェクト指向言語(OOP言語)
コンパイル言語、型チェック
④高水準言語、ガーベッジコレクション
⑤開発する対象


まず①について。
ASはJavaScriptと同様、ECMAScript仕様に従っています。
だから、という訳でもないのですが、非常に言語仕様が統一感があり、不自然に思うところがありません。
最近人気のObjective-CはCに他の言語をくっつけたような形で拡張しているので見た目が醜く感じます。
あの言語が気に入っているジョブズの気がしれません。
C++は仕様がごてごてしすぎて。。。

②について。
AS3.0はOOP的でない仕様がほぼありません。
また、エンジニアでない人でも使うからでしょうが、仕様が限定されておりコンパクトで学習しやすいです。

③について。
僕はインタプリタ言語はそんなに好きではありません。
試作段階ではインタプリタで実行してもいいけど、作り上げたらやっぱりコンパイルして高速に実行したい。

とはいえASもSWFという中間コードをFLASHプレイヤーというインタプリタで読みながら実行するのでそれほど速くはないのですが、純粋なインタプリタよりはいいです。
最近はインタプリタ言語もコンパイルしてたりするのかな?

型についても同じで、試作では省けるけど、最終的にはつけることで最適化したりバグを減らせればいい。

④について
CやC++のポインタは便利ですがバグを生みやすいので、できれば無い方がいいと思っています。
最適化はコンパイラの能力に任せたい。
また、GCがあるとかなりバグが減らせると思うのであった方がいい。
携帯電話開発のような仕事は、エラーケースが非常に多いのに開発はCやC++なので、ヒープの解放には相当に気を使います。

⑤について
ASは開発対象が限定されるのがネックです。Adobeに全てを握られています。
しかしそれによって言語仕様がコンパクトになっているというのもあると思います。
視覚的にリッチなものやゲームやエンタメ関連が好きなテーマである僕にとっては別に構いません。


こうしてみると、ASはC#Javaと似た特性を持つ言語だと思います。
それらの言語から良い仕様を取り入れた形跡を感じます。
C#SilverLightJavaやAS対抗で作られた言語ですから似ていて当然です。

ASは付き合いは短いですが、勉強していて楽しいし非常に気に入りました。
これからは何を作るにしても、基本はASでやろうかと考えています。
後は、FlashPlayerの高速化、省メモリ、3Dの扱いが簡単になることを望んでいます。