[解決済み] Google App EngineでのJavaとPythonの選択
質問
現在、Google App EngineはPython & Javaの両方をサポートしています。Java のサポートはあまり成熟していません。しかし、Javaの方がライブラリのリストが長く、特にJavaバイトコードのサポートは、そのコードを書くために使用される言語に関係なく、あるようです。どちらの言語がより良いパフォーマンスとパワーを与えてくれるのでしょうか?アドバイスをお願いします。ありがとうございました。
編集する http://groups.google.com/group/google-appengine-java/web/will-it-play-in-app-engine?pli=1
編集する パワーというのは、拡張性の高さや、フレームワークの外にあるライブラリーを取り込むことができるという意味です。Pythonでは純粋なPythonのライブラリしか使えませんが。
どのように解決するのか?
私は偏見を持っていますが(Pythonの専門家ですが、Javaはかなり錆びつきました)、GAE のPythonランタイムは現在Javaランタイムより高度でよく開発されていると思います--結局、前者は開発と成熟に1年余分にかかりましたからね。
特にJavaだけでなく、他の言語もJVMの上に乗っているので、例えばPHPやRubyのコードをApp Engine上で実行するための方法なのです。
柔軟性という点では、すでに述べたように、Javaエンジンは、Javaだけでなく、異なる言語で作られたJVMバイトコードを実行する可能性を提供します。逆もまた然りで、もしあなたがJavascriptを嫌っているが、ユーザーのブラウザで何らかのコードを実行しなければならない場合、JavaのGWT(あなたのJavaレベルのコーディングからあなたのためにJavascriptを生成)はPython側の代替よりもはるかに豊富で高度です(実際には、Pythonを選ぶと、この目的のために自分でいくつかのJSを書いてしまうでしょうし、Java GWTはあなたがJSを書くことを嫌っているのなら使える代替となるのですがね)。
JVMは、既存のJavaライブラリの単純な再利用を妨げるほど制限されており(スレッド、カスタムクラスローダ、JNI、リレーショナルDBなし)、既存のPythonライブラリがPythonランタイムの同様の制限によって妨げられるのと同じかそれ以上に妨げられるのです。
アプリエンジンの環境は非常に異なるので、高度に最適化されたJITベースのJVM実装のパフォーマンスを、その大きな起動時間とメモリフットプリントを割り引いて当てにしないでください(起動コストは、アプリのインスタンスが起動、停止、別のホストに移動するなど、すべて自分とは無関係に頻繁に発生します--そうしたイベントは通常、JVMの場合よりもPythonランタイム環境の方がはるかに安くなります)。
XPath/XSLTの状況(婉曲的に言うと...)は、どちらの側でも必ずしも完璧ではありませんが、私はJVMでは少し悪いかもしれないと思います(明らかに、Saxonのかなりのサブセットは、いくつかの注意を払って実行させることができます)。の問題を開く価値があると思います。 Appengineの課題 のページで、タイトルに XPath と XSLT が含まれている場合、今は特定のライブラリを求める問題しかなく、それは近視眼的なものです。私は、良い XPath/XSLT がどのように実装され、Python 用、あるいは Java 用であっても、それを使うことができるのであれば、気にすることはありません。(特定のライブラリは既存のコードの移行を容易にするかもしれませんが、それは "rapidly apply XSLT transformation" のようなタスクを何らかの方法で実行できることよりも重要ではありません!-). 特に言語に依存しない方法で)うまく表現できれば、そのような問題に星をつけることは分かっています。
最後になりますが、(同じデータストアを使用する)アプリの異なるバージョンを持つことができ、一部はPythonランタイムで、一部はJavaランタイムで実装され、quot; default/active" と異なるバージョンには明示的なURLでアクセスできることを忘れないでください。つまり、Python そして Javaコードは(アプリの異なるバージョンで)同じデータストアを使用および変更するため、さらに柔軟性が高まります(ただし、foobar.appspot.comのようなquot;nice" URLを持つのは一方のみで、おそらくブラウザ上の対話型ユーザーによるアクセスにのみ重要です、私はそう想像します;)。
関連
-
Dateが型に解決できない問題を解決する
-
スレッド "main" で例外発生 java.lang.ArrayIndexOutOfBoundsException: 4 at text.Division.main(Divisi
-
javax.net.ssl.SSLException: 読み取りエラー: ssl=0xdeae5100: システムコール中の I/O エラー、接続 res
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Pythonに三項条件演算子はありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
java.util.NoSuchElementException 原因解析と解決方法
-
スタイルが読み込まれず、ブラウザコンソールでエラーが報告される。リソースはスタイルシートとして解釈されますが、MIMEタイプtext/htmlで転送されます。
-
スタイルシートとして解釈されるリソースが、MIMEタイプtext/htmlで転送される。
-
エラーが報告されました。リソースの読み込みに失敗しました:サーバーは500(内部サーバーエラー)のステータスで応答しました。
-
JDKの設定時にjava.dllが見つからない、java SE Runtime Environmentが見つからない問題が発生しました。
-
Methodのinvokeメソッド実装のJavaリフレクション
-
spring aop アドバイスからの Null 戻り値が、サマリーのプリミティブ戻り値と一致しない。
-
Error: java.lang.NoClassDefFoundError: クラス XXXX を初期化できませんでした
-
java 例外。Javaツールの初期化
-
コミットには何も追加されないが、未追跡のファイルが存在し、gitで未追跡のファイルに対する完璧な解決策