例えば、ちょっと前まで流行ってたオレオレ言語インタプリタを書こうとすると、オレオレ言語で記述されたソースコードをどうやって読み込めばいいのか?つまり、ファイル I/O ってどうやるの?という疑問。
普通に JavaScript を使いこなしている人は
<script type="application/x-mylang"> オレオレ言語で記述されたソースコード </script>
var scripts = document.getElementsByTagName("script"); for (var i = 0, len = scripts.length; i < len; i++) { if (scripts[i].type == "application/x-mylang") { interpret(scripts[i].text); } }
- textarea タグで生成される領域に入力された文字列を取得する。*2
<textarea id="mylang">オレオレ言語で記述されたソースコード</textarea>
interpret(document.getElementById('mylang').value);
みたいな方法で実装してるわけだけど、これって HTML 経由で文字列としてオレオレ言語のソースコードを貰っているのだから、JavaScript インタプリタで読み込んでいるわけではないと思う。
だけど、みんなこのように書いているということはやっぱり JavaScript インタプリタのみではデータの読み込みはできないということなのだろう。*3
ということは JavaScript はデスクトップアプリケーションを書くには向いていない言語なのかもしれない。
*1:参考 : http://svn.coderepos.org/share/lang/javascript/naoscheme/naoscheme.js
*2:参考 : http://blog.livedoor.jp/dankogai/archives/51005691.html の真ん中あたりの textarea
*3:そもそも JavaScript でローカルのファイルを自由に読み込めたら、セキュリティもクソもないということになるだろうし。