मैं पक्षपाती हूं (जावा में पायथन विशेषज्ञ लेकिन सुंदर जंग खा रहा हूं) लेकिन मुझे लगता है कि जीएई का पायथन रनटाइम वर्तमान में जावा रनटाइम की तुलना में अधिक उन्नत और बेहतर विकसित है - पूर्व में विकास और परिपक्व होने के लिए एक अतिरिक्त वर्ष था। ।
कैसे चीजें आगे बढ़ेंगी यह निश्चित रूप से भविष्यवाणी करना मुश्किल है - जावा पक्ष पर मांग शायद अधिक मजबूत है (विशेषकर चूंकि यह सिर्फ जावा के बारे में नहीं है, लेकिन अन्य भाषाएं जेवीएम के शीर्ष पर भी हैं, इसलिए इसे चलाने का तरीका है जैसे कि PHP या ऐप इंजन पर रूबी कोड); पाइथन ऐप इंजन टीम को हालांकि, गुइडो वैन रॉसुम, पायथन के आविष्कारक और एक आश्चर्यजनक रूप से मजबूत इंजीनियर होने का फायदा है।
लचीलेपन के संदर्भ में, जावा इंजन, जैसा कि पहले ही उल्लेख किया गया है, विभिन्न भाषाओं द्वारा किए गए जेवीएम बायटेकोड को चलाने की संभावना प्रदान करता है, न केवल जावा - यदि आप एक बहु-भाषा की दुकान में हैं जो एक बहुत बड़ा सकारात्मक है। इसके विपरीत, यदि आप जावास्क्रिप्ट को ढीला करते हैं, लेकिन उपयोगकर्ता के ब्राउज़र में कुछ कोड को निष्पादित करना होगा, तो जावा का GWT (आपके जावा-स्तर कोडिंग से आपके लिए जावास्क्रिप्ट का निर्माण) कहीं अधिक समृद्ध है और पायथन-साइड विकल्प से अधिक उन्नत है (व्यवहार में, यदि आप चुनते हैं पायथन, आप इस उद्देश्य के लिए कुछ JS स्वयं लिख रहे होंगे, जबकि यदि आप चुनते हैं कि जावा GWT एक उपयोगी विकल्प है यदि आप JS लिख रहे हैं)।
पुस्तकालयों के संदर्भ में, यह बहुत धुला हुआ है - जेवीएम पर्याप्त मौजूदा है (कोई थ्रेड्स, कोई कस्टम क्लास लोडर, कोई जेएनआई, कोई संबंधपरक डीबी नहीं) मौजूदा जावा पुस्तकालयों के सरल पुन: उपयोग के लिए बाधा उत्पन्न करने के लिए बहुत अधिक, या मौजूदा पायथन की तुलना में। पुस्तकालयों को पायथन रनटाइम पर समान प्रतिबंधों से समान रूप से बाधित किया जाता है।
प्रदर्शन के संदर्भ में, मुझे लगता है कि यह एक धोना है, हालांकि आपको अपने स्वयं के कार्यों पर बेंचमार्क करना चाहिए - अत्यधिक अनुकूलित JIT- आधारित JVM कार्यान्वयन के प्रदर्शन पर भरोसा न करें जो कि उनके बड़े स्टार्टअप समय और मेमोरी पैरों के निशान से छूट देते हैं। पर्यावरण बहुत अलग है (स्टार्टअप लागत का भुगतान अक्सर किया जाएगा, क्योंकि आपके ऐप के इंस्टेंस शुरू हो जाते हैं, बंद हो जाते हैं, अलग-अलग मेजबानों में स्थानांतरित हो जाते हैं, आदि, आपके लिए सभी trasparently - ऐसे इवेंट आमतौर पर जेवीएम के साथ पायथन रनटाइम वातावरण के साथ बहुत सस्ते होते हैं)।
XPath / XSLT की स्थिति (व्यंजित होने के लिए ...) दोनों तरफ बिल्कुल सही नहीं है, आह, हालांकि मुझे लगता है कि यह JVM में एक कम खराब हो सकता है (जहां, जाहिरा तौर पर, सेक्सन के पर्याप्त उपसमुच्चय को चलाने के लिए बनाया जा सकता है) कुछ देखभाल के साथ)। मुझे लगता है कि उनके शीर्षकों में XPath और XSLT के साथ Appengine मुद्दों के पृष्ठ पर खोलने के लायक है - अभी केवल विशिष्ट पुस्तकालयों के लिए पूछने वाले मुद्दे हैं, और यह मायोपिक है: मुझे वास्तव में परवाह नहीं है कि एक अच्छा XPath / XSLT कैसे लागू किया जाता है। जब तक मैं इसका उपयोग करने के लिए पायथन और / या जावा के लिए। (विशिष्ट लाइब्रेरी मौजूदा कोड के माइग्रेशन को कम कर सकती हैं, लेकिन यह इस तरह के कार्यों को करने में सक्षम होने की तुलना में कम महत्वपूर्ण है जैसे कि कुछ तेजी से "कुछ में XSLT परिवर्तन लागू करें!")। मुझे पता है कि मैं इस तरह के एक मुद्दे को स्टार करूँगा अगर अच्छी तरह से (विशेष रूप से एक भाषा-स्वतंत्र तरीके से)।
अंतिम लेकिन कम से कम: याद रखें कि आपके पास आपके ऐप के अलग-अलग संस्करण हो सकते हैं (समान डेटास्टर का उपयोग करके) जिनमें से कुछ पायथन रनटाइम के साथ कार्यान्वित किए जाते हैं, कुछ जावा रनटाइम के साथ, और आप उन संस्करणों तक पहुंच सकते हैं जो "डिफ़ॉल्ट / सक्रिय" से भिन्न हैं "एक स्पष्ट यूआरएल के साथ। तो आप दोनों पायथन और जावा कोड (आपके ऐप के अलग-अलग संस्करणों में) का उपयोग कर सकते हैं और एक ही डेटा स्टोर का उपयोग कर सकते हैं, जिससे आपको और भी अधिक लचीलापन मिलेगा (हालाँकि केवल एक ही "अच्छा" URL होगा जैसे कि foobar.appspot.com - जो शायद केवल ब्राउज़रों पर इंटरएक्टिव उपयोगकर्ताओं द्वारा पहुंच के लिए महत्वपूर्ण है, मैं कल्पना करता हूं ;-)।