Mozillaアプリ開発のバイブル登場 70
ストーリー by Oliver
恐竜を意のままに 部門より
恐竜を意のままに 部門より
programmer 曰く、 "O'reilly本
"Creating Applications with Mozilla"がmozdev.orgの1プロジェクトとして公開されとります(OPLで公開されている全文)。
英語は読めんでもサンプルコードはわかるので、いくつか試してみたけどXULっておもろいわ。まさかXMLでGUIが組めるとはねー。うーん、マルチプラットフォームなGUI探すより、マルチプラットフォームであるMozillaでアプリ組んだほうがええかも。"
XUL (スコア:3, 参考になる)
鵜呑みにしてみる?
GRE! (スコア:2, 参考になる)
これとJavaScript(今はECMAスクリプトってんでしょうか?)で出来ないところはJavaも使えるよーん、という話になれば、夢のマルチプラットホーム基盤になりますねー。
コレがOS2にもあれば当分遊べるなー。
-----------------
#そんなワタシはOS/2ユーザー:-)
Re:GRE! (スコア:1, 参考になる)
XUL (スコア:1, 参考になる)
実際のところ、たとえば HTML + CSS + CGI でもそこそこの
UI は作れます。
HTML が XML になって、CGI が JavaScript になっただけですね。
しかしながら、JavaScript 経由で XPCom のコンポーネントが
叩けたりするし、DOM 使ってページそのものをダイナミックに
書き換えられたりするので、なかなか面白いです。
XUL を使った時計とかは、だいぶ前から作ってる人が居ましたね。
Re:XUL (スコア:3, 参考になる)
私の勘違いでなければ,すでにデスクトップ環境みたいなもの [oeone.com]もできているようですね・・・
# 実はXULってスゴい?
Re:XUL (スコア:0)
Re:XUL (スコア:1)
Re:XUL (スコア:1)
まだまだ使い尽くされてはいない。
……ただし、早いところ規格が統一されれば、の話(^^; 使わないのにはそれなりの理由があるのは知ってるし、オイラも普段はサーバサイド命の人間ぢゃき(苦笑
……JavaScriptエンジン、外付けにならねーかなぁ……って、ムリか。あれだけべったりくっついてちゃあなぁ……。
_ to boldly go where no man has gone before!
外付けJavaScriptエンジン(Re:XUL (スコア:2, 参考になる)
んにゃ、mozilla.org の SpiderMonkey [mozilla.org] とか Rhino [mozilla.org] とか
頑張れば使えるっす。
Rhino については WEB PRESS Vol.9 [gihyo.co.jp] の記事が参考になるかと。
あぁそうだ。Rhino は他の製品にも利用されてます。
- Tivoli Distributed Monitoring [tivoli.com]
- How are people using Rhino? [mozilla.org]
Re:外付けJavaScriptエンジン(Re:XUL (スコア:0)
mozillaソースの(トップでなく)jsディレクトリからmakeするだけ。
コマンドラインからスクリプトを読んで、JavaScriptエンジンjs3250.dll(windows版の場合)を呼ぶexeができる。
JavaScriptは言語仕様としては
・一通りの制御構造
・文字列・正規表現
・オブジェクト
があって、一般的なスクリプト言語としては必要十分だと思うし、
mozillaの実装だとxmlとかDOMと
Re:外付けJavaScriptエンジン(Re:XUL (スコア:0)
MozillaではDOMにオブジェクトをマップするために、XPCOMを使って実装しています。MozillaのランタイムはXPCOMのランタイムシステムだと言っても過言ではない
JSエンジン Rhino に関する日本語情報 (スコア:0)
はじめ、google で検索すると結構出てきますね。
Batik にも Rhinoが入っているんですね。
Re:XUL (スコア:1)
個人的にはJavaScript 2.0 [mozilla.org]が欲しいです。
グローバル変数と関数で書くのはもうやめたい(T_T)
Re:XUL (スコア:1)
でも今は、同じCSSが同じ表示にはならない。
同じスクリプトで同じ(期待した)動作をしてくれない
同じ名前のオブジェクトが同じプロパティとメソッドをを持っていない 。
もっと厄介なことに同じ名前のプロパティ/メソッドで違う動作をする(^^;
誰が悪いと犯人探しをするのは簡単だけど [cruel.org]、今そこにある現実も直視しなければならない。とっても不本意なことではあるけど、ね(T_T)
_ to boldly go where no man has gone before!
Re:Global変数と関数だけですか? (スコア:1)
x="global";
function f()
{
document.writeln(x);
var x="local";
document.writeln(x);
}
document.writeln(x);
f();
JavaScript のネックは、セミコロンの省略と、静的なチェックが弱いことだと思います。
# セミコロンの省略は、Mozilla の JavaScript 2.0 で on/off 可能なようですが、既存のソースと互換性が無くなるので…。
Re:XUL (スコア:0)
なにが出来るかって (スコア:1, 参考になる)
まぁそれに限らず mozdev.org 眺めていると楽しい。
Re:なにが出来るかって (スコア:0)
# 私のところだけかもしれませんけど。
たんなるユーザーインターフェースとしてXULを使うのならば全然問題なさそうだけど、こうやってグラフィック表示
Re:なにが出来るかって (スコア:2, 興味深い)
UI とタイトに結び付いたものが必要な場合、ネイティブのライブラリに比べてパフォーマンスが上がらないし、サーバーとインタラクションが必要な場合、フォームで事足りる。インタラクションを減らす目的なら JavaScript で十分事足りる。
フォーム+JavaScript より高度で、ネイティブライブラリを使うまでもない用途、となると凄く狭い領域というか、それこそブラウザの UI 設計だけじゃなかろうか、と少し悲観的な私でございます。
の
Re:なにが出来るかって (スコア:2, 興味深い)
サイドバーにファイル、Webページ、等が登録されていて、メインのペインにWebファイルやローカルファイルが見れてファイルをクリックしたりすると、画像(Gekkoで表示)やhtml(gekkoで表示)、アプリ(ヘルパーアプリとして登録)が動いて、ドラッグアンドドロップでWebページへのアップロードとか、ファイルの整理が出来ちゃったりなんかしちゃったり、とか・・・。機能が足りなきゃローカルなWebサーバーで補助。
駄目っすか<駄目そうな気がする。
-----------------
#そんなワタシはOS/2ユーザー:-)
Re:なにが出来るかって (スコア:1, 参考になる)
他にもオフィスとかCVSのフロントエンドとかあるようです。
# XULプログラミングって楽しそうだなぁ。
Re:なにが出来るかって (スコア:0)
Re:なにが出来るかって (スコア:0)
まぁ確かにかなりの部分は XPCOMに押し込められてはいるけど
XUL(XML+CSS+JS)の JS による scriptable な点にも利点がある
訳だし。
Re:なにが出来るかって (スコア:0)
Re:なにが出来るかって (スコア:1)
WWW ブラウザは、登場当初からファイルマネージャの類をネットワークワイドに拡張したものだ、と言う認識があります。OS と統合される、ってのはそこから来てる話なわけですし。
つまり、ファイルマネージャを作ると言うのは、ブラウザの UI 設計への適用と同じ事ではなかろうかと思うのです。
の
Re:なにが出来るかって (スコア:0)
ものなのでファイルのマネージメントの機能は殆どないですよね。
ファイルマネージャのうち、ファイル・ディレクトリブラウズ
だけを抜き出してネットワ
Webブラウジングとファイルマネージャ (スコア:1)
Re:Webブラウジングとファイルマネージャ (スコア:1)
似たような韻をふむよーなぶつとして
・xmlとLISPのS式
・インタプリタの興隆
・言語の低レベルから高レベルへの変化
とかありそーな気が。
タトってる?
-----------------
#そんなワタシはOS/2ユーザー:-)
Re:なにが出来るかって (スコア:1)
「簡単」というのでは駄目でしょうか?
Form+JavaScriptだけでも多くのことは可能ですが、
例えば、サブメニューを出そうとすると
ごちゃごちゃコードを書かないといけなかったような。
# エディタが何とかしてくれるからいいという話もあるけど。
Re:なにが出来るかって (スコア:0)
どちらかというと、ウェブサイト自体を旧来のアプリケーション的なものにできる、という利点があるというのが私見です。HTTP 経由とかの認証機構がないという問題もありますが。それができれば、.Net と近いものになるのではないでしょうかね
Re:なにが出来るかって (スコア:1, すばらしい洞察)
ボタンが押された時のアクションなどのコールバックはJavaScriptなどDOMオブジェクト(Mozillaの場合はXPCOMオブジェクトで実装)を操作出来る言語にマップされます。まともなアプリケーションとなるとJavaScriptでカバーできるはずもなく、XPCOMを操れる言語であるC++やJavaで行うことになります。この時点でコンポーネントプログラミングの正体を始めてみた人なんかは、しばらく苦悶することだと思われます。まぁ、WindowsでActiveXをC++から書くのや、OpenOffice.OrgでUNOをC++で書くのと同じです。それにくらべればC#やVBやJavaScriptがいかに楽にコンポーネントを作成出来るかを思い知るでしょう。
Re:なにが出来るかって (スコア:1)
Mozilla/XUL を使うと真面目なGUIとウェブとサーバーサイドロジックをスクリプトで結合できるので非常に楽しいです。IEコンポーネントを使ったブラウザが多数出たように、雨後の竹の子のようにこれを使ったブラウザ/アプリケーションが出るかも…
Re:なにが出来るかって (スコア:1)
バージョンアップの度にアプリがランタイムを書き換えて不整合が起こりそうな気がするです。今のOfficeのランタイム書き換えを見ていると、ランタイムを固定してくれればいいけど、ばかすか書き換えが出ると意味ねー、って事になりませんか?
IDLでも似たような問題が起こりそうですが、ランタイムを適切にラップする事が出来るので、Aアプリだと旧ランタイム、Bアプリだと新ランタイムってのも出来る気がするです<ホントか、ソレ?
-----------------
#そんなワタシはOS/2ユーザー:-)
Re:なにが出来るかって (スコア:1)
CORBAベースでWarp4が出た頃は既にあったと思ったっす。OS2とWindows用だったかと。AIX版はあったのかなぁ・・・。
いや、何となく言ってみただけですが:-)
-----------------
#そんなワタシはOS/2ユーザー:-)
Re:なにが出来るかって (スコア:0)
アドベンチャーゲームはどうでしょうか。
HTML Form じゃなくてXULならではのこと(Re:なにが出 (スコア:2, 参考になる)
UI を書いて、処理は HTML内の JS/VBS と Webサーバで実装
しますよね。
XUL は UI部品としても HTML Form よりもリッチな部品が
ありますし、背景に処理も仕込めるので Mozilla Navigator
や ChatZilla、OEOneデスクトップなどが出来るんですよね。
あと、まだあまり実装例がありませんが、XULは Webコンテンツの
ように扱うこともできるので、Java Applet を配布するがごとく
XULコードを XREクライアントへ配布することもできます。
Netscape 6 にWebページ翻訳機能がありましたが、あれを実行
すると翻訳サーバから XULコードが送られてきて部分的に
UIとして使われていました。
また、似た事例として、九州工業大学のグループによる Web
Application Framework for Toolkit-based GUI programming
の SWT Component があります。 HTML Formでは機能不足なので
XULを使った実装が行われているそうです。
http://pcweb.mycom.co.jp/news/2002/11/05/12.html [mycom.co.jp]
全てのブラウザに平等を? (スコア:1, 興味深い)
いや、逆方向はそれでもいいんですよ。
ただ、これまでNetscapeやIEは「便利だからどんどん実装しちゃえ」とばかりに「標準」と「独自仕様」が曖昧(というかいっしょくた)なままに進化してしまったために「全てのブラウザに平等を」という話になっちゃった訳で、この辺の「標準と独自仕様の折り合いをどう付けるか」というのに興味があります。
もちろん「XULとHTMLは別物だ」というのは理解していますが、XULに対応した別の実装が現れてきた時には、また「標準化」が必要になってくるでしょうし、XULもこれから進化して行けば同じMozillaでもバージョンの違いによって振る舞いが変わってくるかもしれない。
そうなると、またHTMLと同じように独自仕様と標準化の追いかけっこが始まって、実装による差異が問題になってくるでしょう。
そうなった時に、またHTMLと同じ事を繰り返してしまうのもアホらしいし、そこから抜け出すのにまた新しいものを作らなくてはいけないのでは進歩がありません。
という訳で、私は「XULで(今)何ができるか」よりも「XULが(今後)どうなって行くのか」という点に興味がありますね。
Re:全てのブラウザに平等を? (スコア:0)
ランタイムの環境が整わなければダメ (スコア:1, 興味深い)
いえ、XML の部分としてはそれで良いでしょうが、XUL の場合は JavaScript の(実行プラットフォームの)挙動が実際 Mozilla のバージョンによって異なります。実に、Mozilla 1.0 と Mozilla 1.2.1 との間での互換性が保たれているわけではないのです。
そのため、XUL の文法がフィックスされているからといって、必ずしも標準的な技術言語となるための基盤が整ったとは言えませんし、それにはまだまだ障壁が多いと言えるでしょう。
何が必要かといえば、「アプリケーション実行環境でもあるブラウザ」ではなく、「ひとつの整ったアプリケーション実行環境」なのだと思います。これは、Gecko の上に乗っかるものにならざるを得ませんが、XRE はそういったものになるポテンシャルはあると思います。Mozilla 1.0 はその前者になるべきものだったのですが、実際にはそうなりませんでしたから。
XUL が使い物になるには、それを支える XPCOM のほうがむしろ重要なポイントになるのではないでしょうか。
Re:ランタイムの環境が整わなければダメ (スコア:0)
他に方法はあるし。
Re:全てのブラウザに平等を? (スコア:0)
旧仕様のクライアントを強制的に新仕様のものに置き換えることは
Re:全てのブラウザに平等を? (スコア:0)
仰る意味がよく分からないのですが、その考察は XUL に対してというよりも、ECMA Script に対して(それとは自覚することなく)当てはまっているような気がしますが。どうでしょう?
Re:全てのブラウザに平等を? (スコア:0)
ECMA Script(JavaScript)に対しても当てはまるのは当然です。
標準化/互換性を考えずに「便利だから」とか「これcoolじゃん」とか言ってどんどん新しい機能を付け加えて行くと、これまでのHTMLやECMA Script(JavaScript)と同じ羽目になっちゃうんじゃない?という話をしてるんですから。
Re:全てのブラウザに平等を? (スコア:0)
Smart-thin frontend (スコア:0)
# G 言語だけで簡単なゲームくらい書けそうだし。
Re:Smart-thin frontend (スコア:1)
ちゅうか、GMWってどうしてメジャーにならんかったんだー。
かっちょええシステムなのになー。
-----------------
#そんなワタシはOS/2ユーザー:-)
Re:Smart-thin frontend (スコア:1)
かっこいいけど当時のマシンスペックでは重すぎたから。
# 関係者と言えば関係者なのでid
Re:コンポーネントモデル比較 (スコア:1)
-----------------
#そんなワタシはOS/2ユーザー:-)
Re:コンポーネントモデル比較 (スコア:1)
#いや、いーがかりですけど:-)
-----------------
#そんなワタシはOS/2ユーザー:-)
Re:コンポーネントモデル比較 (スコア:1)
-----------------
#そんなワタシはOS/2ユーザー:-)