Tôi thiên vị (là một chuyên gia về Python nhưng khá thô lỗ trong Java) nhưng tôi nghĩ rằng thời gian chạy Python của GAE hiện đang tiến bộ hơn và được phát triển tốt hơn so với thời gian chạy Java - trước đây, đã có thêm một năm để phát triển và trưởng thành .
Tất nhiên mọi thứ sẽ tiến triển như thế nào là điều khó dự đoán - nhu cầu có lẽ mạnh hơn ở phía Java (đặc biệt là vì không chỉ về Java, mà cả các ngôn ngữ khác cũng nằm trên JVM, vì vậy đó là cách để chạy ví dụ như PHP hoặc mã Ruby trên Máy ứng dụng); Tuy nhiên, nhóm Python App Engine có lợi thế khi có trên tàu Guido van Rossum, người phát minh ra Python và một kỹ sư mạnh mẽ đáng kinh ngạc.
Về tính linh hoạt, công cụ Java, như đã đề cập, cung cấp khả năng chạy mã byte JVM được tạo bởi các ngôn ngữ khác nhau, không chỉ Java - nếu bạn đang ở trong một cửa hàng đa ngôn ngữ có giá trị khá lớn. Ngược lại, nếu bạn ghét Javascript nhưng phải thực thi một số mã trong trình duyệt của người dùng, thì GWT của Java (tạo Javascript cho bạn từ mã hóa cấp Java) sẽ phong phú và tiên tiến hơn nhiều so với các lựa chọn thay thế của Python (trong thực tế, nếu bạn chọn Python, bạn sẽ tự viết một số JS cho mục đích này, trong khi nếu bạn chọn Java GWT là một lựa chọn thay thế có thể sử dụng được nếu bạn không thích viết JS).
Về mặt thư viện, điều này khá rõ ràng - JVM bị hạn chế đủ (không có luồng, không có trình tải lớp tùy chỉnh, không JNI, không DB quan hệ) để cản trở việc tái sử dụng đơn giản các thư viện Java hiện có, hoặc nhiều hơn so với Python hiện có các thư viện bị cản trở tương tự bởi các hạn chế tương tự đối với thời gian chạy Python.
Về hiệu năng, tôi nghĩ rằng đó là một sự gột rửa, mặc dù bạn nên đánh giá các nhiệm vụ của riêng mình - đừng dựa vào hiệu suất của các triển khai JVM dựa trên JIT được tối ưu hóa cao để giảm thời gian khởi động và dấu chân bộ nhớ lớn của chúng, bởi vì công cụ ứng dụng môi trường rất khác nhau (chi phí khởi động sẽ được thanh toán thường xuyên, vì các phiên bản ứng dụng của bạn được khởi động, dừng, chuyển sang các máy chủ khác nhau, v.v., tất cả đều theo bạn - các sự kiện như vậy thường rẻ hơn nhiều với môi trường thời gian chạy Python so với JVM).
Tình huống XPath / XSLT (trở nên uyển chuyển ...) không hoàn toàn chính xác ở cả hai bên, thở dài, mặc dù tôi nghĩ rằng nó có thể là một ít tệ hơn trong JVM (trong đó, rõ ràng, các tập hợp con đáng kể của Saxon có thể được thực hiện để chạy , với một số chăm sóc). Tôi nghĩ rằng đáng để mở các vấn đề trên trang Các vấn đề về Appengine với XPath và XSLT trong các tiêu đề của họ - ngay bây giờ chỉ có các vấn đề yêu cầu các thư viện cụ thể và đó là cận thị: Tôi thực sự không quan tâm làm thế nào một XPath / XSLT tốt được triển khai, cho Python và / hoặc cho Java, miễn là tôi có thể sử dụng nó. (Các thư viện cụ thể có thể dễ dàng di chuyển mã hiện tại, nhưng điều đó ít quan trọng hơn việc có thể thực hiện các tác vụ như "áp dụng nhanh chóng chuyển đổi XSLT" theo cách MỘT SỐ! -). Tôi biết tôi sẽ giải quyết vấn đề như vậy nếu diễn đạt tốt (đặc biệt là theo cách độc lập với ngôn ngữ).
Cuối cùng nhưng không kém phần quan trọng: hãy nhớ rằng bạn có thể có phiên bản ứng dụng khác nhau (sử dụng cùng một kho dữ liệu) một số được triển khai với thời gian chạy Python, một số với thời gian chạy Java và bạn có thể truy cập các phiên bản khác với "mặc định / hoạt động "Một với các URL rõ ràng. Vì vậy, bạn có thể sử dụng cả mã Python và Java (trong các phiên bản khác nhau của ứng dụng) và sửa đổi cùng một kho lưu trữ dữ liệu, cho phép bạn linh hoạt hơn nữa (mặc dù chỉ có một URL sẽ có URL "đẹp" như foobar.appspot.com - mà có lẽ chỉ quan trọng đối với truy cập của người dùng tương tác trên trình duyệt, tôi tưởng tượng ;-).