touchがあまりに貧弱なため、インタープリタがrequireしたコードを解析中にメモリを使い切ってしまい、どうしようもなくなって[BUG]と断末魔を残して死んでたんだろう、ということだった。コードをあれこれいじってたときに、条件分岐が複雑なコードやオブジェクトを余計に生成するコードが即座に息の根を止めてたんだな。考えればわかりそうなもんで、多分携帯電話とかで開発してる人だったら、そんなリソース馬鹿食いしそうなRubyなんかがモバイル端末でまともに動くわけないじゃん、って言いそうだ。touchが貧弱なんじゃい、っていう声も違う方から聞こえてきそう。touchが携帯電話とも骨董PCとも違うのは、あれは高機能なGUI環境なんだってことなんだよな。サブセットとは言えdarwinが、いやMacOSXが載ってるわけで、だからこそモバイル端末にあるまじき過剰な期待をしてしまうし、(皮肉にも)それが故に骨董PCでもできるようなことが出来なかったりする。touchのインターフェースレベルの層を排してdarwinだけにすれば、Rubyくらいは平気で動くと思うけど、それって何の意味があるんだろう。言ってあんなにスムーズに動くUIがあって、音楽・動画が再生できて、ネットワークにも繋がるのに、ハードの制約でいじれる部分が少ないというのも切ない話。Objective-Cで書いて最適化しまくってなんぼって世界か、あるいはWidget程度の小さなアプリがせいぜいってところなのか。Cocoaは好きなんでそれはそれでいいんだけどさ。RubyやPerl*3があるのにまともに使えないのは残念過ぎる。最初からAppleが言うようにWebアプリで作ればいいじゃんって話だが*4。*1:最初vimがあることに気付かなくて、しばらくviを使ってた。いや、だって入ってないと思ってたし。会社のサーバだってviしか入ってないんだぜ。*2:以前ネタで入れたApacheがlauchd経由で自動起動するように設定されてたらしい。使いみちもないし、即座に消した。*3:もしかしたらPerlならRubyよりまともに動くかもしれないけど、CPANフル活用してバリバリ、というわけにもいかないだろうからどっちみち期待はできない*4:しかしSafariのJSはそれはそれでなんだかなって代物だけど。touchのJailbreakをやってみた。Touchdev若干面倒ではあるけども、ツール類は既に整備されつつあるので、基本的には手順に従っていればこれと言って難しいことはない。touchからネットに接続してあれやこれややる操作が多発するので、無線の接続状況がいいところでやんないといちいち作業が中断してストレス溜まるので注意。SafariのTIFFに関する脆弱性を利用してるのか。この手順すぐに無効化されそうだなぁ。情報がほとんど英語なので、作業手順を書いとこうと思ったけど、既にまとめてくれてる人がいたのでそちらもご紹介。