パソコン・メモメモ備忘録

気の向くままパソコン関係等で気になることを書き記す。時々更新!

Web アプリ開発言語は何を選ぶべきか

クライアントサイド(ブラウザ上)でアプリを動かしたいのだが、一番色々な環境で動きそうなのが Javascript である。だが、本格的な開発には向かない部分、処理効率の悪い部分等が有ると聞く。一応、Javascript のコードは書いた事はあるが、ただ、単になんとか想定通りの動きをした、というレベル。prototype とか、良くわかっていない。そこで、きちんとコードを書けるように、かつ、効率的に、ということを考えて、調べてみた。

AltJS と言われる言語群がある。色々な人が作っているみたいで、数えきれないくらいの種類があるとか。その中で一番メジャーになりそうなのが、Typescript だろうか。VisualStudio 上で開発できるようで、個人的に使い慣れている、という点でもありがたい。対抗としては Haxe というのがいいらしい。Flash の ActionScript3.0 に近い。その他、JSX、CoffeeScriptDart あたりが有名ドコロだが、そこまで手を出す余力もなく… 一から覚えるとはいえ、ベースは Javascript だから大丈夫?

とは言え、Javascript をそのまま使うのもありではある。jQuery を始め、色々なライブラリがあるので、活用すれば、開発をかなり効率化できる。が、ライブラリ自体が、結構一つの言語と言っていいほどの規模やポリシーを持っているのが、またヘビーな印象。その中では、Closure Library というのがなんとなく良さそうに思える。

そういえば、Javascript 自身も ES6(ECMAscript6)へ移行していく、という話もあるそうな。結構、書き方が簡潔になる部分が色々あったり、で、また覚えるのが大変そうだ。

言語もそうだが、開発環境も大事。Google Chromeデベロッパーツールが結構良く出来ていて多機能な印象。唯一、その上でコードを更新しても、サーバー上のコードが変更されない所が欠点だろうか(結構大きい欠点ではあるが)。

そうそう、今回の開発は WebGL を使おうと考えたり。Three.js を使うと、WebGL が簡単になる。ちくちく細かく設定・指定しないと 3D 表示できないのを、定型的なものを用意されていて、普通じゃないことをしようとしない限り手が抜ける感じか。他にも同様のライブラリがあるかもしれないが、Three.js を使うか直接 WebGL を叩くか、が選択肢のような。OSG.js というのも C++ での実績(OpenSceneGraph)から期待できるだろうか。

後、日頃 C++ で開発している小生にとっては、Enscripten も気になる。トランスレートを考慮していない C++ のコードでも、コンバートしてブラウザ上で動かせたりするらしい。こういう系のものは、非常に元のコードに制限がかかったりする印象があるが、Enscripten は結構使えている人がいるような(Unity でも使われているとか)。

どれを習得するにしても、それなりの時間と努力が必要そうで、なかなか思い切りがつかない。調べれば調べるほど迷いが出てくる感じ。この辺にトライするだけで日々生活できるのなら、挑戦するのだが。とか、言い訳かな。はて、どうしようかな〜。