Webアプリの開発は今やモバイルアプリ開発より難しい気がする

ツール書いたり、 iPhone にエディタを移植したりする作業の合間に、それをサポートするWebアプリをフレームワーク上で作ってて、ふと衝撃的なことに気づいた。

Webアプリの開発は、デスクトップアプリやモバイルアプリと比較して、難しいかも……い、いや、難しいよね?確実に。

開発フレームワークで、Rapidにはなっとるけど、Easyにはなっとらん。

元々、ゲームエディタ上でゲーム作るよりは難しい、とは思っとったけど……デスクトップアプリやモバイルアプリの開発がマッハの勢いで簡単になっていくなか、相対的に難易度が高く感じられるようになったんかもしれん。

モバイルアプリを書くんが方が楽なんて、数年前じゃ考えれん。ハードの進化、カーネルツールキットの技術者の努力の賜物なんじゃけど、なんにしてもツールキットが恐ろしい。Webアプリ開発における規約によるジャンプ制御や、インスタンスの生成でグルーコードを軽減する構造を見たときも目からウロコじゃったけど、それはある意味 AI を持ってない bot のシーケンスルールに人間が合わせていく行為なので Rapid じゃけど Easy とはいえない。

モバイルアプリだと、ちゃんと人間側の判断でやれて、操作はマウスで線引っ張ったりするだけ。ちょっと勉強すりゃあ誰でもできるで。

はぁデスクトップアプリ開発やモバイルアプリ開発は「君にもゲームが作れるけー作りんさい!」「君にも漫画が描けけー描きんさい!」の領域に達しつつある。Webはまだちょっとそんな感じではない。「君にもWebアプリが作れる!」というフレーズ自体もはや見かけなくなった。素人がWebアプリを作るな、というフレーズはよく見かけるけど。学習が容易で分かりやすく使いやすい言語と環境なんか素人さんが手ェつけないで誰が使うんですか、という気がするんじゃが、なんか今そうなってるっぽい。

よく id:tohokuaiki さんは「新しい人が XOOPS に来ない」と言ってるが、Web の世界自体どうなんじゃろう。新しい人、の定義が噛み合ってないかもしれんけど、いま何かを作りたいと思う人は iPhone やAndloid、 XNA などに行っとる気がする。あるいはニコ動とかかもしれん。

エディタへのアプローチ

マウスでイベントを配置し、イベント発生後のロジックをコマンド配置して作る、という開発手法はRPGツクールでお馴染みなんじゃけど、その成立はPC-98時代にさかのぼる。RPGツクールは現在 RubyVM を搭載しとって、そちらでもゲームプレイ制御を行うことができる。

スクリプトが書ける人はスクリプトを書いて、スクリプトが書けん人はそれを貰って使っとる。もちろんRPGツクールをきっかけにRubyを勉強し始めた人も多い。

こちらも類似の手法として、 cubson GUI Force というツールの開発を始めた。じゃけど、 LittleBigPlanet のようなアプローチは思いつかんかった。そうこうしとるうちに、まっとうなツールキットも十分簡単になってきて、モバイルアプリも楽々作れるようになったという現状に気づいた次第。しかもノンプログラミングのモバイルアプリ開発ツールもいくらか出てきてますけーね。ゲームエディタのランタイムのサブセットを移植するだけじゃけー。

エディタの不足

いまWebフレームワークを使っとって、感じたことをざくざくと書くと、

  • データベースのエディタがない。デスクトップアプリやモバイルのツールキット、それどろかゲームエディタにさえついてるのに……
  • コンポーネントのインポートや適用はいくらかコードを書く必要がある。少なくともマウス操作ではない。
  • 自動生成してくれるとはいえ、テンプレートのソースアセットは事実上、自作しなければいけない。UIツールキットが不足している。ここがもっともデスクトップアプリなどと異なる点。
  • コンポーネント間の接続はコードで行わなければならない。ただ、これをマウスでやれるツールキットのほうが最新鋭すぎると言えるので、これはあまり考えないようにします。(^^;


LittleBigPlanet で楽しくレベルを作成してる人たちを、XCワールドに御招待できんにゃあいけんと考えると、やること山積みではある。こういったアプローチ自体が受託開発に使用できないという点で、あまり支援を受けられんのが辛い。

わしからすりゃUIなんか用意されとるものを突っ込んで終わりでええんじゃけど、仕事でやっとる人はUIは客の言う通りにせにゃあ金貰えんけー自由度高いっていうか、勝手に変なことされるくらいなら全部書けたほうがええわいな。

本当は色んなアプローチがあるんがええと思うんじゃけど、ひとつのものを複数人が別々に作るということ自体が滅多に起きとらんけー、結果として幅が狭い開発になってしまっとる気がする。コストがかかるなら別の判断がかぶってくるのは百も承知じゃけど、わしゃ本質的にものづくりは、「まとめる、絞る、ひとつにする」とかいった行為とは相性悪いと思っとる。