パスワードを忘れた? アカウント作成
41120 story
インターネット

C/C++でFlashアプリが開発できるAdobe Alchemy 78

ストーリー by nabeshin
各種エミュレータもWeb上で動き出すか 部門より

あるAnonymous Coward 曰く、

C/C++で開発されたコードをFlash Playerで動作させる「Alchemy」というプロジェクトが、プレビュー版ツールキットを公開している。

マイコミジャーナルの記事によると、AlchemyはC/C++コードをActionScript仮想マシンで動作するコードにコンパイルするもので、先日/.でも話題になったLLVMを活用するものだ。OSに依存するようなコードはもちろんコンパイルできないが、Alchemyにより生成されたコードはActionScriptで記述されたものよりもかなり高速に動作するとのこと。

LLVMの仕組みを使えば、C/C++以外にも対応言語を増やせるとのことで、将来的にはPerlやPython、RubyなどでFlashアプリを開発することもできるようになるかもしれない。期待したいところだ。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • よし! とりあえずこれだ (スコア:5, おもしろおかしい)

    by okky (2487) on 2008年11月23日 19時28分 (#1460892) ホームページ 日記
    • Visual コンパイラ

      コンパイラが文字列をパースし、中間言語に変換し、それを最適化していくさまを Flash で表示し続ける。で、それをみんなでお茶を飲みながら眺める…

      「あ、今の所、ソースコードにバグがありますっ」

      一人の観察力溢れる若者のせいで、ゆとりの時間が台無しに…
       
    • Visual デバッガ

      あなたがデバッグしている様を Flash として世界中に公開だ。

      「あ、何を見落としてんだこいつ」

      老練なる技術者から突っ込みコメントが…
       
    • Visual Make

      make とたたくとウルトラマンが怪獣を倒す。一つのターゲットごとに一匹づつ倒す。

      しかし、途中で Warning を食らうとカラータイマーがぴこーん、ぴこーん。

      Error を食らうと赤のままピーーーーーー
       
    • Visual ソース generator

      「私はソースを2つ持ってきた」

      謎な事を言い出すゾフィーを表示してくれる


    以上が全て Flash 内に作られた Sandbox 上で実行されるので、いくら頑張っても結果はディスクに保存されない。

    「これはいい、と思ったら製品を買ってね

    というマイクロソフトからの広告をもって、全プログラムが終了する。そんなVisual Studioトライアル版を作るのに、最適な環境である、という気がした。
    --
    fjの教祖様
  • Adobeの Alchemyやマイコミジャーナル記事でも書かれているけれど、AIRでも大丈夫のよう。

    デスクトップアプリケーションとして十分な速度を AIRは出せますよ。もちろん C/C++ですから(ActionScriptを知らないプログラマでも)安心ですよね。お客さまのところで利用されているC/C++ライブラリも有効利用できますよ〜、などという Adobeのセールストークがふと思い浮かびました。

    --
    MIYAZAKI Yasushi
  • 無限最適化? (スコア:3, おもしろおかしい)

    by Anonymous Coward on 2008年11月23日 22時21分 (#1460925)
    >AlchemyはC/C++コードをActionScript仮想マシンで動作するコードにコンパイルするもので、(中略)
    >Alchemyにより生成されたコードはActionScriptで記述されたものよりもかなり高速に動作するとのこと。

    さあ、そのActionScript仮想マシンをAlchemyでコンパイルする作業に戻るんだ。
  • by nionio (37211) on 2008年11月23日 19時50分 (#1460898)
    WebでOgg Vorbisストリーミング再生できるFlashを探したのですがうまく見つからず、
    ActionScriptで再実装するのもなぁ…と思っていました。これはいけるかも。
    # 既存のがあったらそっち使いますので教えてください
  • 対抗技術 (スコア:1, 興味深い)

    by Anonymous Coward on 2008年11月23日 19時19分 (#1460890)
    C++/CLIでSilverlightコードを書くみたいな感じですかしら
  • by paprika (5024) on 2008年11月23日 19時56分 (#1460899) 日記
    C/C++の経験は長いけど、ECMAスクリプト系言語はどうしても身に付かず挫折したので、ちょっと手を出してみようかな、という気になります。

  • by Sukoya (33993) on 2008年11月23日 20時23分 (#1460907) 日記
    なんというか、「VBでコボルのプログラムが書けます」的なアプローチにも見えてしまうんでありますが

    自分もパールやルビーで書けると面白そうだなあ
    と思ってしまうので、そういう層がターゲットなんでありましょうか

    それとも、近年余りがちなCユーザーの再雇用対
    うわあ!何をするおまえら
    • Re:一体、何の意味が? (スコア:4, すばらしい洞察)

      by Anonymous Coward on 2008年11月23日 23時21分 (#1460952)
      CにもC++にも、VBにもActionScriptにも意味はありません。
      それによって作られるものに意味があるのです。
      親コメント
    • by Anonymous Coward on 2008年11月23日 20時51分 (#1460912)
      Adobeのデモではオープンソースのゲーム DOOMを動かしてました。ブラウザでやることかというと微妙ですが。
      ffmpegを使ったクライアント側動画変換システムとか、X serverやVNCクライアントとか色々できそうですね。速度が残念な事になりそうですが。
      rubyやpythonなどのインタプリタをAS byte codeにしてスクリプトを動かすこともできるかもしれません。夢が溢れます。
      親コメント
      • by Anonymous Coward
        flashのVNCクライアントはFlashVNCが既にありますよね。
        X serverなどサーバー関連はちょっと違うと思います。
        • by Anonymous Coward
          X serverを勘違いしていませんか?
          X clientがアプリケーション側で、X serverは表示側です。
          • by Anonymous Coward
            で、どうやってflashでXの接続を受け付けるつもりなのか、そこから教えてくれ。
            リモート(webサーバ)側で折り返せば、できないこともない....かな?
  • by Anonymous Coward on 2008年11月23日 22時03分 (#1460920)
    これで、C/C++ プログラマを web 開発にアサインできる、と。
  • by hohehohe (11394) on 2008年11月24日 3時46分 (#1460995)
    他の人も書いてましたがDOOMのデモ [youtube.com]はこれですね。
    DOOMってたぶんOpenGL使ってるんですよね。OpenGLのwrapはどうどうしてるんだろう?
    --
    AVG anti-virus data base out of date
    • by Anonymous Coward on 2008年11月24日 8時02分 (#1461010)
      Quakeは、オリジナル版はMS-DOS用で、ビデオメモリ直叩きの自前描画なプログラムでしたから、
      Flashでもフレームバッファへの自前描画ができれば、移植は可能でしょう。
      後からOpenGLを使ったWindows版Quakeが出ましたから、その時代からしか知らなければ
      誤解するのも無理はありませんけど。

      もしかしたら本当にOpenGLの操作ができるのかも知れないけれど…。
      それなら色々楽しいことができそう。
      親コメント
    • by Anonymous Coward
      オリジナルのDOOMはMS-DOSで3D部分も自前(というかものすごく簡易的で近くの壁以外描画しない)だったと思いました。
      • Re:DOOMデモ (スコア:2, 参考になる)

        by Anonymous Coward on 2008年11月24日 8時35分 (#1461014)
        > オリジナルのDOOMはMS-DOSで

        DOOM は NeXTSTEP で開発されたと、何度言ったらわかるんだ!
        オリジナルの DOOM っていうと、NeXTSTEP版を言うんだよ!
        親コメント
        • Re:DOOMデモ (スコア:2, 興味深い)

          by Anonymous Coward on 2008年11月24日 22時08分 (#1461179)
          ゲームコンソール用のゲームなんかはほとんどクロス開発環境なんですが・・・
          それって、オリジナルは開発に使ったWS/PC版がオリジナル、って言います?

          まあ、そいつらには大抵ハードウェアエミュレータが刺さってるので、NeXT
          上のDOOMとはちょっと事情が違いますけど、開発者側の意図としてはたぶん
          一緒じゃないかと思いますけどね。
          貧弱なハード用のソフトを作る事自体はそこそこ面白いけど、貧弱な環境で
          開発するのは耐えられないという。
          親コメント
  • レンガの錬金術師 (スコア:0, オフトピック)

    by Anonymous Coward on 2008年11月23日 19時07分 (#1460884)
    T/O
  • by Anonymous Coward on 2008年11月23日 20時58分 (#1460913)
    なんかもう、まえの悶着見ててVMなのかコンパイラ用の中間言語なのかなんなのかまったくわかんなくなってきちゃったんだけど。
    LLVM使うと結局どうなんの?
    C++でもGCとかがサポートされるってことなの?
    サポートされないんだったら、javaやらperlやらはどうなんの?
    教えてプリーズ
    • by Anonymous Coward on 2008年11月23日 22時40分 (#1460930)
      LLVMはコンパイラフレームワークです。
      llvmでコンパイルしてactionscript bytecodeを生成するという話です。
      c++でもgcがサポートされるということは無いと思いますが、bohem gcなどは使えると思います。
      javaはgcj付きでビルドしたllvm-gccで動くかもしれませんが分かりません。
      perlはインタプリタをactionscript bytecodeにコンパイルすれば動くかもしれませんが分かりません。
      親コメント
      • by Anonymous Coward
        ありがとう。
        なんとなくイメージわいてきた。
        今回のは
        c++ ->(ここから Adobe)-> (コンパイル)->LLVM->(コンパイル)-> (Alchemy ここまで)->Flash
        っていうのが新しいってことね。
        perlやらネイティブコードに変換する代わりにflashにしてみました、と。
        実行時最適化とか、静的にコンパイルするより速くなるってことでLLVMにワクテカしてた時期があったんだけど、
        そういう風にも使えるってことで、別にそのための技術じゃないってことね。
      • by Anonymous Coward
        >bohem gcなどは使えると思います。

        boehem gc「を」そのVM上で動くよう移植する必要が有りますね。
        そしてその移植は常に可能とは限らず、CPUだのなんだのの機能に依存する面が有りますし、
        またイロイロなワザを使うことを禁止される環境では成功率は下がる恐れも有ります。

        Boostあたりのメモリ管理はイケルだろうけど。
        • by kr (10950) on 2008年11月24日 19時04分 (#1461120) 日記
          LLVMのサイトに、 Accurate Garbage Collection with LLVM [llvm.org] というドキュメントがあります。 詳しくは読んでいないのですが、「CPUだのなんだのの機能に依存する面」としては、stack配置やwrite/read barrier等、一般的にGCで必要となりそうな部分は、ある程度考慮されているようにも見えます。

          ただし、このドキュメントが語っているのは、タイトルの通り"accurate" garbage collection向けの機能であり、おのずとcooperative garbage collectionを想定しているようなので、あくまで"conventional" garbage collectorとしてのBoehm-GCを移植したいという場合に、このドキュメントが役に立つかどうかは(よく読んでいないので)分かりません。

          おっしゃる通りBoostのメモリ管理とは相性が良さそうです。

          個人的には、実用的なcopyingもしくはgenerational collectorがどの程度のパフォーマンスでLLVM上に実装できるのかに興味があります。LISP好きなので。 :-)

          ところで、このドキュメントを読んで、OCamlがすでにLLVMで動くらしいことを知りました。 ということは、OCamlで書いてFlash Playerで実行するなんてこともできるのでしょうか? (と、無理矢理ストーリーに関連付ける。)

          親コメント
  • by Anonymous Coward on 2008年11月24日 1時18分 (#1460981)
    ますますiPhoneにflashが載らなくなるからもうちょっと自重していただきたい。
    • by Anonymous Coward
      頭下げて懇願したら考えてやってもいいよw
typodupeerror

普通のやつらの下を行け -- バッドノウハウ専門家

読み込み中...