ひがやすを技術ブログ

電通国際情報サービスのプログラマ

プロが仕事で使う場合にApp Engineでどの言語を選べばいいのか

App Engineではどの言語を使えばいいのか - yvsu pron. yasで書いたとおり、App Engineで使う言語は、素のSDKで比べるとPythonの方がJavaより断然出来がいい。
ただ、仕事で使う場合は、素のSDKで開発することはなく、何らかのフレームワークを使うことが普通です。App Engineに特化したKay frameworkやSlim3のレベルで比べるとそんなに違いはありません。
これは、単純なリクエストの処理だと、Javaの方が10倍速いが、実際に行われている処理で比べるとそんなに違いはないのと似ています。


私は、Javaを使っているので、Javaへの評価が良くなりすぎないように、意識的にJavaのデメリットを強調し、Pythonのメリットを強調していますが、実際の仕事で使うレベルにおいては、差はほとんどないということです。


んんーーーー。


たまには本音を書きましょう。プロが仕事で使う場合には、リファクタリングやテストのしやすさは、非常に重要なポイントですが、これらを考慮すると、正直、Javaのほうがリファクタリングはしやすく、テストもしやすい。
リファクタリングのしやすさは、Javaの言語としての特徴とSlim3のタイプセーフクエリのおかげ。テストのしやすさについては、App Engine/Javaがもともとテストしやすいように作られていることと、Slim3のようにテストのしやすさを追求したライブラリが存在することがその理由。
論より証拠。このustを御覧下さい。
http://www.ustream.tv/recorded/6377235


正直、あんなに高速にコーディング出来る人はあまりいないけどねw


App Engine/Pythonはローカルのデータストアのstubの出来が良くないので、ローカルとプロダクションで動きが違うことが結構あり、ローカルでテストできることが限られてしまいます。Javaの方は、Statisticsの機能を除いては、ローカルとプロダクションの動きはほとんど同じです。stubレベルでは、ローカルでプロダクションと違う部分もあったりしますが、Slim3でおなじになるように実装してたりするので、ほとんど違いがないのです。


じゃ、プロならJavaを使った方がいいかというとそんなこともありません。好きで慣れている方を使った方が効率いいからね。


ただ、プロが仕事で使う場合には、リファクタリングやテストのしやすさは、非常に重要なポイントです。その点ではApp Engine/Javaが優れているということは知っておいた方がいい。テストのしやすさは、ソフトウェアの問題なので、改善することが可能です。今回わざわざ指摘したのは、改善されることを期待しているからです。お互いに良いところは学び、悪いところは改善していけばいい。


GAE/PのほうがGAE/Jより良いと無邪気に主張している人は、App Engineに関しては、素人だと思われても仕方がない。最後に大人気なく書いてみましたw