答え:キミと同じくらいに、かな。
こんにちは。この1年くらい、Titaniumなんてオワコンって言い捨てるのは、特に良心の咎めもなく(だいたいPHPをくさすのと同じくらい)気軽にできることで、塩分控えめ安心安全な雲の高みから技術っぽいことを語る挨拶代わりに丁度いいというのがテック系の常識となりつつあるようです。かくいうわたくしめも「Titanium、覚えていますか?」といったタイトルでスライドを作ったりしてウケを狙うこともあります。かつてTitaniumに喜んで飛びついた物見高いアルファな人たちもすでに去り、RubymotionとかReact Nativeとかのなんか似たような違うようなあれな別物に飛びついてはまた次々と去っていくのを見るにつれ(ネイティブ開発に進んだ人たちに幸あれ)、そして彼ら彼女らに追随して一時はガンガン書き立てていたのに今では見向きもしない各メディアの動向を見ると、ああ広報活動もしない小さな海外ベンダの製品なんて、結局そうやってトレンディ〜な人たちにつまみ食いされて使い捨てられるしか道はないのね、と暗い倉庫の片隅に積み上げられたセーラーズのトレーナー1で涙を拭きたい気分です。
でも、それはそれで、正しく安全な生き方なんだと思います。技術業界というのは、誰もが最安の航空機のチケットを買おうとしている貧乏な旅行客のようなもの2で、自分が選択した技術が果たして最適なものなのか、他のを選んだ連中の方がずっと楽をしていたんじゃないのか、と常に疑心暗鬼の目で周囲を見ています。誰だって損をしていると感じるのは嫌ですからね。だから、新しく出てきたあれやこれやの製品がちょっとトレンドになれば目の色を変えてすぐさま飛びつき、そこであれこれ試してうまくかず、また別のもう少し良さそうなものが出てくると今度はそちらにふらふらと吸い寄せられるのですが、結局どれも下地となる知識の裏付けがなければ同じように苦労するだけだという単純な事実の繰り返しでしかない、という(まるで、だめな、追っかけ)スパイラル3から抜け出すことができません。そして、そんな厳しい現実なんて毎朝鏡で見るだけで十分だからと、今日もまた別の希望にすがってしまう。
人間だもの4、というセリフは、人間というものを侮辱していますね。
で、じゃあ結局Titaniumってどうなのさ?という方には、逆に、何を知りたいのか教えてほしいな、と思います。だって、普通どの技術を選択するにしても、そこでなんか手を動かして作ってみてうまくいったりいかなかったりでおしまいじゃダメですよね。プログラマだったら経験上わかると思うんですが、優れた技術者というのは、あるプラットフォームに取り組むとなると、必ずその下で動作している仕組みについて興味を持ってあれこれ調べるようになります。例えば、Titaniumであれば、JSという言語についての知識を深めた後は、Titaniumを動作させている仕組みそのもの、ソースコードが公開されているSDKの中身を覗いて、なるほど実際はこんなことが行われているんだ、だからこういう動作をするんだ、と理解していくようになれば、エクスパート5への道を着実に歩んでいることになります。大事なことなので繰り返しますが、どんどん下のレイヤー、抽象化され普段は見ることがない層にまで踏み込んでいくのが優れた技術者なのです。そういう姿勢が全然ない優れたプログラマという人には、あいにくこれまで一人もお目にかかったことがありません。これは別にTitaniumに限らず、ありとあらゆるプログラミングの現場に当てはまります。で、Titaniumについていえば、行き当たる解決可能な問題のほとんどが、各プラットフォームの動作についての理解が足りないがために起きていたりします。クロスプラットフォームだからそこそこ面倒は見てくれますが、そこに安住できるようなものを探しているなら、これだけ標準化が進んだブラウザとHTMLでさえまだまだ対応しなければいけないことがあるのが現実なのですから、答えは見つからないと思います。なので、Androidってどんなことが出来て、どうやって実現するもので、Titaniumはどうやっているんだろう、と書籍を読んだりソースコードを追っているうちに、やがて身につく知識が問題解決に一番役に立つでしょう。
そういうことを考えて実践しながら生きていると、じゃあTitaniumってオワコンなの?と聞かれて改めて考えてみても、適切な答えの持ち合わせがないことに気づきます。なので、笑顔で「そうだね、今年は◯◯と◯◯が来るけど、◯◯が本命かな?」とかいうトークでお茶を濁すくらいしかありません。なぜなら、その質問者が求めているものはきっと答えではないと思うからです。なんとかはオワコン、って言ってみるとなんか格好いいし、まともな人はそのときの自分に見合った適当な場所から始めたとしても、結局どんどん掘り進んで、最後には必ずちゃんとした技術的バックグラウンドとなる知識の層を掘り当てるから、そんな間抜けな質問をしている暇はないでしょう。
じゃあさ、なんであんたはTitanium使ってるの?と聞かれたら、やっぱり笑顔で、だって使えるし、そこらへんを歩いてる人より上手に使えるから、としか言いようがないです。JS自体も好きで言語仕様もコンパクトだから頭を使うことが少なく、JSだけでクロスプラットフォームで動作するだいたいのところまで作ったら、あとはLiveViewで変更をすぐに実機やシミュレータに反映させながらUIの調整をして、短期間でリリースできるし、困ったら最悪Obj-CとかJavaでちゃちゃっと書いてしまえばいい。それより普通の案件ではもっと根本的なところ、例えばスマートフォンのアプリというのもを全く理解していない人たちが仕様を作って、スケジュールも守らず無茶な日程を強いるといったことの方がずっと深刻で、それなのに、まあ誰だって反省するのは嫌だし責められるのは怖いから、Titaniumとかの使っているツールのせいにする人たちもいっぱいいて、社会人って怖いな、というのが目下のいちばん深刻な問題です6、はい。