JavaScript の欠点

CUI 好きの管理人は、JavaScript でも、CUI をさくさく使いたい。しかし、残念なことに、JavaScript には、Ruby の gets がないのだ。これでは、コンピュータのプロンプトに答えて、キーボードから入力し、それにまたコンピュータが答えてくれるという、楽しい対話型のプログラムができないではないか。

そこで、input 要素のテキスト入力フィールドを操作して、それらしい動作をさせてみてはどうかと思いついたが、これがうまくいかない。JavaScript は入力用のテキストフィールドは作ってくれるが、入力を待たずに、さっさと次の命令を実行してしまうのだ。JavaScript には前段階の処理を待ってつぎの処理に移るための命令がないし、wait でいったん処理を眠らせて、イベントが来たら次に移るということもできない。

相当悩んだが、メインのプログラムを入力操作が発生する部分で複数の関数に分割し、入力が発生した時点で、次の段階の関数を呼ぶという形にしてみたら、何とかそれらしいものができた。しかし、これを使ってプログラムをつくる気には到底なれない。複雑に考えなくても、

question = ”Please input number >”;
answer = prompt(qutestion);
document.write(qutestion+answer+”<br>”);

などとすれば、プロンプトのウィンドウがパカパカ開いて、目がちかちかするかもしれないが、操作的には同じようなことができるので当分はこれで我慢しなければならないかもしれない。もっとも、JavaScript を CUI で使いたい人もあまりいないだろうけれど。

ただ、JavaScript を、本当にウェブアプリケーションのフロントエンドとしていくためには、JavaScript のオブジェクトに、ターミナルオブジェクトや、スプレッドシートオブジェクトや、グラフィックオブジェクトを追加していくほうが効率的なのではないだろうか。

日常的な業務にはエクセルがひとつあればたいてい事足りるから、JavaScriptに表計算の入力部分のオブジェクトを持たせておけば、バックエンドのサーバーと通信するだけでかなり使い勝手のいいウェブアプリケーションが作れるのではないかと思う。

Google Map は、Ajax や JavaScript を使って、ブラウザに連動したスクリプトと、XMLHttp 非同期通信の組み合わせで、パソコン本体にインストールするアプリケーションに匹敵する動作が、ウェブアプリケーションでできることを示してくれた。しかし、それだけでなく、クライアントがブラウザを持ってさえいればいつでもどこでも使い慣れたアプリケーションやデータが利用できるという新しいパソコンの使い勝手を切り開いたのではないだろうか。

とはいえ、本格的なウェブアプリケーションの時代になるためには、もう少しクライアントサイドのスクリプト言語の進化が必要なのかもしれない。
[PR]
by tnomura9 | 2006-07-29 18:26 | JavaScript | Comments(0)
<< 無名関数 細部にこだわる >>