Python と Java で AppEngine アプリを開発してみて

はじめに

PythonJava でそれぞれ AppEngine アプリを何個か作ってきましたが、AppEngine の利用方針を変更したことだし、このタイミングでそれぞれの開発を振り返ってみます。

Python での開発

フレームワークは AppEngine に特化した Kay Framework を使ってきました。Kay はセッションや認証やフォームやなど機能が豊富。認証バックエンドを変更すれば OAuth も使えます。AppEngine テスト用のクラスも提供してあるので、webapp で開発するよりテストしやすいです。ただ、機能が多すぎて使わないのもありますが。REST API とかね。

小〜中規模のサービスを速攻で作るなら、Python + Kay は申し分ないです。ライブラリを足さなくても必要十分な機能があります。

あと、小さいサービスなら、わざわざ Kay を使わなくても Flask で十分かもしれません。

Java での開発

Eclipse の恩恵は大きいです。ソースコードを管理しやすいし、リファクタリングもしやすい。

フレームワークは Slim3 を使ったんですが、テストが異常なくらい書きやすかった。Kay でもテストはサポートしているけど、Slim3 には敵わないですね。

さらに、GWT + Slim3 の組み合わせは強力。今の私の JavaScript スキルでは、Full Ajax なアプリを一か月で実装するなんて無理でした。GWT 様々です。サーバーサイドとクライアントサイドの両方を Java で開発できるスピード感は想像以上でした。

大きいアプリは Java の方が作りやすい印象です。Eclipse と Slim3 の力が大きい。あと GWT も。テストしやすい&リファクタリングしやすいは超重要ですよね。

まとめ

JavaPython 両方使える人は

  • 小規模のとき Python
  • 中規模のとき
    • 開発スピード重視なら Python
    • 作り込みが必要なら Java
  • 大規模のとき Java

という風に使い分けてもいいんじゃないでしょうか。

終わりに

私の場合、C# 歴が長いので、Python よりも Java の方が作り込みやすかったです。「効率とか考えずに速攻で実装→リファクタしまくる」という私の開発スタイルには、静的型付け言語 + IDE が合っているみたい。

まぁ、自分用ツールを作る程度なら、Python の方がサクッと作れるので、今後は Python を使う機会が多くなると思います。HTML5JavaScript のスキルも磨きたいので、GWT を使うことも減るでしょうね。