パスワードを忘れた? アカウント作成
2872 story

SashXB : JavaScriptでGUIアプリ開発 23

ストーリー by Oliver
コンソールもバッチリ 部門より

mubi曰く、"IBMがリナックス用SashXBを公開したようだ。リナックスを知らないプログラマーでも、HTMLやJavaScriptを使うのと同じ要領でリナックスのアプリケーションを書けるスクリプト言語だ。また、誰でもアプリケーション開発ができることに対するセキュリティー対策として、検証ツールも用意されているとのことである。 いったいどんなモノなのか。詳細を知る方、コメントを求む。"

MozillaやGNOMEをコンポーネントに使ったGtk+のJavaScriptバインディングといった感じか。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • SashXB使い心地 (スコア:2, 参考になる)

    by hajimetyan (3875) on 2002年04月26日 0時09分 (#86543) ホームページ
    Gnomeが国際化になっているので、どんな言語でも使用可能みたいです。
    ためしに日本語入力してみましたが、きちんとkinput受け付けてくれました。
    sash-installというものがちとおもしろいです。
    apt-getみたいな感じでインターネットからインストール可能。
    でも、GUIベースなのね。

    sash-runtimeで動かすんだけど。これ遅くね~か。
    まぁ、JavaでAWTのアプリ動かすよりは早いです。

    アプローチとしては、かなり興味深い。
    --


    .::.:... .::....: .::...:: .::.:.:: .::..:.: .:::..:.
    I 1 2 B H4[keR. :-)
    • by Anonymous Coward

      sash-runtimeで動かすんだけど。これ遅くね~か。 まぁ、JavaでAWTのアプリ動かすよりは早いです。

      やっぱり遅い? エンジンは重たいMozillaベースですからねー。最適化はこれからの課題か。

      アプローチとしては、かなり興味深い。

      • by Average (3404) on 2002年04月26日 11時58分 (#86728) 日記

        やっぱり遅い? エンジンは重たいMozillaベースですからねー。最適化はこれからの課題か。

        Mozillaのエンジンそのものは重くないと思います。
        mozillaが重いのは要するにGUI要素をすべてHTMLのレンダリングとして表現しているから。
        だからGaleonとかK-MeleonとかMozillaに比べれば軽いっすよ。
        --
        -----------------
        #そんなワタシはOS/2ユーザー:-)
        親コメント
        • 厳密にプロファイルとって計測しないことにはなんとも
          いえんけど、Mozillaの GUIが遅い理由を単にHTMLのレンダリング
          というと誤解招きそう。(たとえ「要するに」としても、ね)

          HTMLのレイアウトが重いのではなく、そこに至るまでに動いている
          XPCOMの処理やJavaScriptとDOMによる XUL操作等々のそれぞれが
          それなりに重たいため、
      • by Anonymous Coward

        CORBAとかOpenDocとかPDOとかBeansとかCOMとか.NETとか。知らない?

        OpenDocって生きてたっけ? PDOってIDLあったっけ? BeansはどっちかというとOLE/ActiveX寄りの技術じゃないかなぁ。RMIと一体化して威力を発揮するのは否定しないけど。

        あとは強力なローテクノロ

  • うーん? (スコア:1, フレームのもと)

    by Average (3404) on 2002年04月25日 10時11分 (#86232) 日記
    構成要素にGladeがありますから、WYSWYGでウイジットを配置してコードを書けるんでしょうけど、ビヘイビアを記述するのにJavaスクリプトが使えるから嬉しいという人はごく少数な気が・・・?
    英語がわからんのでタトっている率は高そうですが、私が見た限り、ではサーバーの設定やらなんやらを手早くパパっと書くためにあるような印象を受けましたが・・・
    --
    -----------------
    #そんなワタシはOS/2ユーザー:-)
  • by Anonymous Coward on 2002年04月25日 10時28分 (#86238)
    普通のスクリプト言語と比べたアドバンテージは、コンポーネントモデルの導入でしょう。

    VisualBasicがCOMオブジェクトに直接アクセスできるのと同様に、SashはMozillaで開発されたXPCOMのオブジェクトにアクセスできるみたいです。ということは同時にDOMをサポートしてるってことか。

    さもGNOMEアプリケーションのように謳っていますが、資産の増えないBonoboを使わず実績を持ったXPCOMに流れるあたりはどっちかというとMozillaプロジェクトの一環といった感じですね。

    • さもGNOMEアプリケーションのように謳っていますが、資産の増えないBonoboを使わず実績を持ったXPCOMに流れるあたりはどっちかというとMozillaプロジェクトの一環といった感じですね。
      とは書いたものの、将来的にはBonoboもサポートするかも的な事はウェブサイトに書いてたので、補足しときます。ついでにJava BeansやDCOMもサポートしたら強力やなぁ。
  • コンパイルしなくてよいのはええかもね。
    んじゃったら、RubyとかPythonとかあるってか。
    ま、面白いアプローチなので期待。
    --


    .::.:... .::....: .::...:: .::.:.:: .::..:.: .:::..:.
    I 1 2 B H4[keR. :-)
    • コンポーネント導入してるからRubyとかと違うってば。
      • by G7 (3009) on 2002年04月26日 0時44分 (#86559)
        >コンポーネント導入してるからRubyとかと違う

        そういう捉えかたをすべきものなのかどうか?と、ちょっと惑います。

        コンポーネントねえ。それならば、たとえばrubyのdelphiバインディング
        (逆でもあるが)であるApollo [yun.co.jp]なんかは、どう呼べばいいんでしょうか?

        コンポーネントってつまりはクラスライブラリであるわけだから、
        rubyでだってhogehogeバインディングを作れば同じことであるような。

        で、JavaScriptといえば普通(?)のPrototype型OOP言語であり
        手続き(?)もFirstClassObjectなのでしたよね。
        とくれば、まあ普通の(良質な)スクリプト言語と同じくらいの
        記述能力は有るだろうから、それでweb以外のアプリだって
        書きたいと思うのは人情として不思議じゃないだろうな。
        該当言語だけで素直に書くのが困難な部分は拡張ライブラリとしてくっつける。
        くっつけた結果が今回のコレだということ、かなと。

        ま、スクリプト言語で汎用(?)プログラムを作るための基盤が
        また少し広がった、という感じでしょうか。

        ところで、callbackの記述のしかただけど、ruby方式よりも、
        「括弧をつけたらその手続きの呼びだし。つけなければ
        その手続きをObjectとして扱う」というC類似方式
        (であるJavaScript)のほうがしっくりくると感じるのは俺だけだろうか?
        親コメント
        • by Anonymous Coward on 2002年04月26日 1時08分 (#86571)
          コンポーネントねえ。それならば、たとえばrubyのdelphiバインディング (逆でもあるが)であるApollo [yun.co.jp]なんかは、どう呼べばいいんでしょうか?
          スクリプト言語へのインタフェースは、スクリプト言語側にEval相当があれば実装できて当然ですよね。でもそれは一対多の関係でしかないし、言語依存です。DOMはそのずるい(?)やり方を標準化してしまったわけだけど、これは置いといて。

          コンポーネントってつまりはクラスライブラリであるわけだから、 rubyでだってhogehogeバインディングを作れば同じことであるような。
          「コンポーネント=クラスライブラリ」の図式が間違ってます。ここで言ってるコンポーネントってインタフェースによって言語非依存に再利用できるオブジェクトの事を言ってるんだから。XPCOMもCOMもCORBAも(一応DOMも)IDLを通して言語非依存にオブジェクトを再利用できるからおいしいのです。

          Unixで育った人達はPerlとかばっかり見てるからスクリプト言語はCベースで半手作業で言語バインディング用意するものだと思ってる人が多いかもしれないけど、そんなことはないです。IDLを使わないやりかたで数少ない自動的なC言語バインディングを持ってるのがGuileです。あとライブラリだけどGCCに入っているlibffiっていうのも同等の機能を有します。ちなみにXPCOMの下のxptcallはC言語ではなくC++のメンバ関数をディスパッチできる強力なライブラリなのです。

          親コメント
          • by G7 (3009) on 2002年04月26日 1時42分 (#86583)
            >スクリプト言語へのインタフェースは、スクリプト言語側にEval相当があれば実装できて当然ですよね。

            あれれ?あーゆーものはevalだけで全部つくれると限らないような気がしましたが、
            気のせいでしょうか?
            evalだけではinterfaceの向こうの別世界(もしそれが別世界ならば)と
            対話する術が無いですから。

            >ここで言ってるコンポーネントってインタフェースによって言語非依存に再利用できるオブジェクトの事を言ってるんだから。

            ふむ。じゃあ、その「クラス」ライブラリについて、特定言語だけを
            その出自&供給先にしなければ、それで良いわけですよね。
            じゃあ(ある意味で)簡単だな。
            そういうメタな部分の機能(もちろんきちんとしたもの)を1つ策定すればいいんだから。

            そういやjavaのbytecodeを生成する言語は「たくさん」あるそうですが、
            それのもう少し先の部分が、その「コンポーネント」なんでしょうね。

            ところで、言語非依存というけど、object(class)のアーキテクチャ自体は
            いろんな言語がいろんなものを提示しているわけで、
            共通に使えるinterface仕様を策定しようとしたら
            どうしても最大公約数なものになっちゃいますよね。
            それって時として辛くないですか?
            バイナリレベルでの接続性は確保できても、概念レベルは結局解決しないのわけだから。

            #あるいは逆に、うんと柔軟で多機能でナンデモアリに作っておいて、
            #実行時に状況次第で色々な制約を課す、か。

            蛇足:
            >Unixで育った人達はPerlとかばっかり見てるから

            俺はunixで育ったわけじゃないし、perlは知りませんし。
            あえていえばdelphiで育ったってか(ぷ

            ちなみにCOMとかも呼べますねdelphi。
            ただdelphiネイティブの「コンポーネント」と比べて、COM呼びだし回りは、概念の繁雑さにうんざりしますが。

            >GCCに入っているlibffi

            それを知ってる人は「unixで育ってない」人なのでしょうか?(^^;

            >C++のメンバ関数をディスパッチできる強力なライブラリ

            もしやそれって、あの糞C++の(dispatch回りの)柔軟性の無さを
            迂回できるようになるライブラリですか?だったら嬉しいというか有意義だなあ。

            やっぱり手続きはFirstClassObjectということにして、
            それを適当(^^;なobjectにぶらさげるとメソッドと見なされる、
            という(JavaScriptでも採用してる)Objectアーキテクチャが、
            すっきりしてて良いなあ。C++みたいなのはウザい。

            うーん。ひととおり書いてやっと思い至ったけど、

            >スクリプト言語側にEval相当があれば実装できて当然

            ってのはもしかして、まず「任意のライブラリと結合できるようにするための
            メタライブラリ」へのバインディングを該当言語に作りこんでおいて、
            つぎにそのメタライブラリと(該当言語の)リフレクション機能を駆使することで
            任意の(メタライブラリに準拠した)ライブラリをノーコーディングで呼べるようにする、
            という手順のことを、一言で「eval」と言っている、のですか?

            #それなら俺もいつもやってる(^^;
            親コメント
            • by Anonymous Coward on 2002年04月26日 2時29分 (#86591)
              そういうメタな部分の機能(もちろんきちんとしたもの)を1つ策定すればいいんだから。
              それがいわゆるIDLです。JavaベースのHORBなどは言語が持っているメタ情報を使ってIDLを自動生成できるのでどっちかというと形式的ですが、C++なんかを最初のインプリメンテーションにしているコンポーネント技術はIDLが重要です。んで、IDLが気持ち悪くなった人たちが極限に走ったのが.NETのようにランタイムに型情報を埋め込む技術。むろんJava等も潜在的にその能力を持っています。

              >C++のメンバ関数をディスパッチできる強力なライブラリ
              もしやそれって、あの糞C++の(dispatch回りの)柔軟性の無さを 迂回できるようになるライブラリですか?だったら嬉しいというか有意義だなあ。
              Mozillaの上で動いているJavaScriptこそが、その有意義な言語ですよ。その資産を活用できるからこそ、MailやNewsアプリケーションに続いていろんなアプリケーションがMozilla上で開発されてるんです。Microsoft OfficeがCOMから操作できるのと同じように。

              >スクリプト言語側にEval相当があれば実装できて当然
              ってのはもしかして、...(略)...任意の(メタライブラリに準拠した)ライブラリをノーコーディングで呼べるようにする、という手順のことを、一言で「eval」と言っている、のですか?
              はい。と言いたいところですが、リフレクションは無くてもターゲット言語と橋渡しできれば可能と言ってあげたいところです。TclもCのライブラリさえ呼べればEvalを駆使して喋れたわけですから。
              --
              ...よい子は早く寝ましょう。
              親コメント
  •  こっち [sashxb.org][sashxb.org] にしておいたほうがいいんじゃないかなぁ。

    # 聞き覚えあるなぁと思ったら、自分のサイトの「情報源」に登録してあった
  • by Anonymous Coward on 2002年04月25日 5時44分 (#86181)
    http://pc.2ch.net/test/read.cgi/tech/1019422972/ [2ch.net]
    激しく盛り上がってません。
typodupeerror

皆さんもソースを読むときに、行と行の間を読むような気持ちで見てほしい -- あるハッカー

読み込み中...