InfoQ

News

ActionScript 3.0に関する議論は終わりか?

作者 Moxie Zhang , 翻訳者 渡辺 裕之 投稿日 2008年10月9日 午前6時54分

コミュニティ
Java
トピック
RIA

独立したFlashプラットフォームのエキスパートであるColin Moock氏(リンク)O’Reilly InsideRIA上で“ActionScript 3.0に対する苦情(リンク)”という記事を7月に発表したの受け、Flash/Flexのコミュニティでは活発に議論が行われてきた。

議論の火ぶたを切るようにMoock氏は次のように述べた。「多くのFlashユーザはActionScript 3.0に加えられたいくつかのワークフローの変更に対していまだに不満を抱えています。本当に問題になる変更はごくわずかですが、その蓄積によって典型的なFlashユーザの日常業務には大きな影響を与えています。」

Moock氏は投稿でActionScriptに対する9つの苦情を並べた。

    1.  Flash CS3からon()/onClipEvent()を削除したことで簡単なインタラクティブ作用を作るのが難しくなった。
    2. ロードされた.swfファイルを(メモリ上から)除去するのが難しくなった。
    3. DisplayObject.parentへのキャストが必要になったことで親ムービー・クリップの制御が難しくなった。
    4. getURL()メソッドを削除したことでリンクを生成するのが難しくなった。
    5. loadMovie()メソッドを削除したことで.swfファイルや画像などをロードするのが難しくなった。
    6. ActionScript 3.0で追加されたエラー通知によってコーディングが面倒になった。
    7. ライブラリにあるシンボルに対する動的な参照の方法が直観的でない。
    8. 自作のテキスト・フィールドやムービー・クリップ、ボタンに対して独自の機能を追加するのが面倒になった。
    9. duplicateMovieClip()メソッドを削除したことでMovieClipインスタンスのクローンを生成するのが(とても)難しくなった。

Moock氏は合わせてそれぞれの苦情に対する徹底した説明と提案も示している。

Atlanta Flash Community(アトランタにあるFlashのコミュニティ)のLeif Wells氏(リンク)も似たような考えを持っていて、次のように述べている。「ユーザ・グループのメンバにはActionScript 3.0のコードを見せた際に文字通り冷や汗をかく人がいますが、それもそのはずです。今、彼らはFlash Player 10の機能に関心がありますが、ほとんどの人がそれらの機能を使いこなすスキルを持っていません。」

一方で、andCulture(リンク)のInteractive DirectorであるFrancis Lukesh氏(リンク)はFlashの進化に言及して別の見方をしている。曰く、

Macromedia社がFutureSplashを獲得した頃からFlashを使ってきた身であり、さらにデザイン/アニメーションとプログラミングの両方の経験がある身としてAS3によってFlashにおけるActionScriptをより構造化された実装にしようというAdobe社の判断には賛成します。Flashを成長可能なRIA開発のプラットフォームに位置づけるための戦略的な変化だと信じています。

.記事で指摘されたいくつかの機能を提供するようなAPIをツールキットに用意することができない理由は何もありません。それによってデザイナ/アニメータの開発効率は向上する一方で、AS3のアーキテクチャ上の完全性は保持されるでしょう。

Examino社のMatthew Tretter氏(リンク)はデザイナではなく開発者の観点から苦情に対する異議を唱えている。

私はプログラミング言語は非プログラマーでも利用し易くなくてはならないという苦情にはまったく賛成できません(プログラマーにとって使い易くなくてはならないとは思いますが。)。あなたが指摘したいくつかの内容についてはそんなに難しいことだとは思いません。ただ(方法が)違うというだけです。人々がある方法に慣れているからと言って、その方法が必ずしも"より直観的である"とか"より簡単である"という意味ではないのです。時には、普及している方法の方が直観的でないこともあります。"on()"の例はまさにそのような例でしょう。

Flex開発者のSteve氏はちょうど中間の立場をとっていて、次のように述べている。「Flex Builderという贅沢なツールを使うことのできるフル・タイムのAS3開発者としては、これらの問題には賛同できません。ただし、何年にも渡ってFlashを利用してきた者として見れば、言いたいことはよく分かります。」

別のFlash開発者、John Isaacks氏は慣れの問題だとして以下のように述べている。

私は(プログラミングとアニメーション制作のために)バージョン4の頃からFlashを使っています。ActionScriptは私が最初に習得した(プログラミング)言語です。ActionScript 3が世に出たとき、私はゾッとしました。というのも新しいFlashファイルを作成して使い慣れたコードを入力すると多くのエラーが発生したからです。

今はもうActionScriptが過去の限界を超越したということを理解できました。そして、ほとんどの場合にAS3はAS2よりも直観的であるということにも気が付きました(それでもたまに2.0では簡単に出来たことをやろうとしてつまずきますが)。


これらの意見に答えて、Moock氏は以下のように説明している。

率直に言って、私はプログラミング・ツールをとても支持しています。ActionScript 3.0が好きですし、Flashがプラットフォームになることもいいことだと思っています。Adobe社が遂にプログラマー向けにFlex Builder、 ActionScript 3.0プロファイラ、ASDoc、ANTとの統合、データ・サービス、デバッガ、コマンドライン・コンパイラ、Flexフレームワーク、公開されたバグ・データベース、UI開発のためのMXMLなどといった強力なツールを提供することは素晴らしいことだと思います。Adobe社はプログラマの集団に向けて素晴らしい仕事をしています。そして彼らの努力が空前の人数の新しい開発者をFlashに惹きつけています。

技術の発展が続く限り、このような健全な議論は続いていく。

原文はこちらです:http://www.infoq.com/news/2008/09/actionscript3-debate

ブックマーク
digg+,
reddit+,
del.icio.us+,
dzone+,
slashdot+
Hatena

特集コンテンツ一覧

Agile Japan 2009

2009年4月22日、東京千代田区にある放送会館で「アジャイルジャパン2009」が開催されました。本イベントは「ソフトウェア開発の次世代リーダーをつくる」ことを合い言葉に、200人以上の参加者を集めてスタートしました。

Flex 4の新機能トップ10

今週(2009年6月1日)AdobeはFlex 4の正式な初ベータ版をリリースしました。Flex 4はGumboというコードネームで開発されています。今回のリリースには大きな変更が多数含まれています。このRIAフレームワークの最新バージョンにおいて変更された事柄についての概要を以下のリストで見ていきましょう。

Domain Driven Design(ドメイン駆動設計) Quickly 日本語版

ビジネス領域の深い理解を反映したドメインモデルを設計するための、ヴィジョンとアプローチです。この本は、Eric Evans氏の「Domain Driven Design」の主要点を短く読みやすく要約しました。

JavaプログラマがFlexとBlazeDSを学んだ方がいい13の理由

この記事ではJavaプログラマがなぜFlexとBlazeDSを学ぶべきなのかについて13の理由を述べています。なぜ高度にインタラクティブなWeb サイトからJavaで開発されたバックエンドをもつエンタープライズ・アプリケーションまでを含む、リッチ・インターネット・アプリケーション(RIA)の開発にFlexとBlazeDSの組み合わせが最適な選択肢となるのかについて述べています。

仮想パネル: バックログは重要な成果物とプラクティスか、それとも無駄か?

Mary Poppendieck氏、Ron Jeffries氏、Jeff Patton氏、David West氏、Steve Freeman氏、Jason Yip氏が、バックログに関する彼らの意見とアジャイルチームを成功させるために必要な事を語った。

Perf4Jを使ったパフォーマンス解析とモニタリング

この記事ではAlex Devine氏が、Java開発者がPerf4Jをどのように利用できるかと、タイミングステートメントにコードを追加し、ロギング、結果の解析とモニタリングを行うオープンソースツールセットの説明をします。

複雑な外部DSLを開発する

本稿では、Vaughn Vernon氏が内部DSLと外部DSLの違いを説明し、複雑な外部DSLを開発する際のステップを示します。

J2EEアプリケーションにおけるAOPを使ったフェッチ戦略の実装

この記事では低レベルのサービス・レイヤやリポジトリ・レイヤを肥大化させることなく、フェッチング・ストラテジによってモジュール化された方法でバックエンドにあるシステムからデータを取得する処理を最適化する方法について説明します。