orto javascript で動く javavm - john resigorto javascript で動く javavm...

34
Orto JavaScript で動く JavaVM ( ) アクセラートジャパン  代表取締役 小林 悠

Upload: others

Post on 30-Jan-2021

3 views

Category:

Documents


0 download

TRANSCRIPT

  • Orto JavaScript で動く JavaVM

    (株)アクセラートジャパン 

    代表取締役小林 悠

  • デモテトリス

  • なぜ必要か?

  • Ajaxとは?

  • Asynchronous JavaScript + XML

  • Ajax な Web アプリは操作とは

  • なぜAjaxが必要か?

  • 8秒ルール

  • 8秒ルール▶ユーザーは8秒以上待たせると、飽きてよそのサイトに行ってしまうという統計があります。

    ▶アプリケーションをダウンロード→インストールさせると8秒以上かかってしまいます。

  • すぐに使えるWebアプリと

  • Ajax, Flash, Javaアプレット……

  • Ajaxの問題点▶ブラウザ間の差が大きすぎます。▶ JavaScriptがちょっとしたエフェクトを前提として作られていて、大規模アプリケーションを指向していないです。

  • Flashの問題点▶アニメーションにはいいが、アプリケーションを作るには生産性が激しく悪い。

    ▶でも、最近、Flex 2でがんばっているかも。

  • Javaアプレットの問題点▶起動が遅すぎます。▶そもそも、インストールされていないことが多いです。

  • Ajax問題点の解決方法

  • Google Web Toolkit▶先月登場。▶ Javaソースコード → JavaScriptソースコードに変換。

    ▶今や、AdSense, Map, Calendar, … と多くのGoogle AjaxアプリがJavaで書かれています。

  • 似たようなことを2002年からやってまし

  • Orto▶ Googleとは違って、バイトコードを直接実行。

    ▶ Javaとの互換性が高い。

    ▶スレッドが作れます。

    クラスライブラリ

    Java VM

    HTML + JavaScript

  • テトリスの場合

  • 約400行のJavaのプログラム

  • ブロックが落ちるところ

    private class BlockMover extends Thread {

    int moveXDirectionCount = 0;

    int rotateCount = 0;

    int moveDownCount = 0;

    public void run() {

    int dropWaitCounter = 0;

    while (onGame) {

    // Block movement on users key

    action.

    if (moveXDirectionCount < 0) {

    moveXDirectionCount++;

    moveBlock(-1, 0, 0);

  • デザインとコードの完全分離

  • デザイン部分

  • 実装例さるとら算

  • スレッド

  • Javaスレッド = OSスレッド

  • JavaScriptスレッドがない!!

  • setTimeout(関数名,時間)

  • GOTOがない!!

  • switch

  • 実例DataInputStream.readInt()

  • スレッド切り替え

    関数呼び出し

    Return

    ネイティブメソッド

    ネイティブチェック 通常ループ

    VM 内状態遷移図

  • http://orto.accelart.jp/

  • ありがとうございます