सही उत्तर " क्योंकि विभिन्न भाषाओं में अलग-अलग ताकत होती है " पहले ही कहा जा चुका है। लेकिन मुझे इस पर कुछ और विस्तार प्रदान करने की आवश्यकता है:
सी ++
C ++ में सबसे तेजी से होने का मुख्य लाभ है। आवश्यक नहीं है क्योंकि जावा और पायथन धीमे हैं, लेकिन क्योंकि C ++ में आपके पास अधिक नियंत्रण है कि चीजों को कैसे निष्पादित किया जाए।
उदाहरण के लिए, यदि आप एक वेब सेवा फ़्रंट लिख रहे हैं जिसके लिए 30ms से कम विलंबता की आवश्यकता होती है तो आप उस प्रदर्शन को प्राप्त करने के लिए C ++ कोड को ट्यून कर सकते हैं। जावा जैसी प्रबंधित भाषा में पूरी तरह से सहयोग करने के लिए जीसी प्राप्त करना थोड़ा कठिन है।
C ++ का उपयोग बहुत सारे magic Google मैजिक ’के लिए किया जाता है जैसे कि BigTable, MapReduce और search goo।
जावा
अधिकांश मानक अनुप्रयोगों के लिए, जावा पूरी तरह से ठीक भाषा है। यह महान उपकरण, मौजूदा पुस्तकालयों के बहुत सारे हैं, और बहुत समय खर्च डिबगिंग नहीं है।
जावा का उपयोग बहुत बड़ी वेबसाइटों के लिए किया जाता है जो कि सी या सी ++ जैसी निचले स्तर की भाषा में बनाए रखना अधिक कठिन होगा। उदाहरण के लिए, मेरी समझ यह है कि GMail को Java में लिखा जाता है।
यह भी ध्यान दें कि जावा कोड को जावास्क्रिप्ट में संकलित करने के लिए आप Google के वेब टूलकिट का उपयोग कर सकते हैं। इतना भयानक वेबपेज या विजेट जिसे आप देखते हैं कि शायद जावा वर्ग के रूप में जीवन शुरू हो गया है।
अजगर
पाइथन एक शानदार सामान्य प्रयोजन की भाषा है, लेकिन यह जावा की तरह बढ़िया-बढ़िया नियंत्रण प्रदान नहीं करता है। (उदाहरण के लिए, चीजों के लिए सभी प्रकार के पागल जेवीएम तर्क हैं - क्या अजगर समान कॉन्फ़िगरेशन प्रदान करता है?)
हालाँकि, पायथन के साथ पूरी तरह से सरल वेबसाइटों और अनुप्रयोगों के लिए अनुकूल है जो अन्यथा भयानक शेल स्क्रिप्ट होंगे। उदाहरण के लिए, यदि आप कुछ स्रोतों से डेटा इकट्ठा करने के लिए एक सरल टेस्टकेस लिखना चाहते हैं, तो उन्हें प्रोसेस करें और उन्हें ऐप इंजन पायथन में अपलोड करना एक अच्छा विकल्प होगा। (यदि आपको 1,000 मशीनों में उस प्रसंस्करण को वितरित करने की आवश्यकता है, तो शायद आप एक अलग भाषा का उपयोग कर सकते हैं ...)
जावास्क्रिप्ट
जाहिर है कि Google बहुत सारे जावास्क्रिप्ट का उपयोग करता है। हालाँकि, Google पर लिखा गया जावास्क्रिप्ट का प्रकार आप जो देखते हैं, उससे अलग है। Google ने एक अनुकूलन जावास्क्रिप्ट कंपाइलर विकसित किया है जो आपको बेहतर अनुकूलन और स्थिर जाँच के बदले टिप्पणियों में एनोटेशन बनाने की अनुमति देता है। देखें गूगल बंद ।
लैटर नहीं है
Google द्वारा केवल एक भाषा का उपयोग नहीं करने का एक और कारण है कि इसकी आवश्यकता नहीं है। बाहरी पुस्तकालयों, पुस्तकालयों में कॉल करने के लिए लगभग हर आधुनिक प्रोग्रामिंग भाषा में सुविधाएं हैं जो एक अलग भाषा में लिखी जा सकती हैं। ( स्विग देखें ।)
इसके अलावा, चूंकि ऐप इंजन JVM चलाता है, आप जावा बाइट कोड के अनुरूप कोई भी भाषा चला सकते हैं। (Google में हम मुख्य रूप से यहां बताई गई भाषाओं से चिपके रहते हैं, लेकिन यह एक कठिन आवश्यकता नहीं है।) यदि आप एप इंजन पर क्लोजर, ग्रूवी, या स्काला का उपयोग करना चाहते हैं यदि आप सही JAR फ़ाइलों को शामिल करते हैं तो सब कुछ बस काम करना चाहिए।
खुला स्त्रोत
इसके अलावा, Google जहां संभव हो, बहुत सारे ओपन-सोर्स का उपयोग करता है और योगदान देता है। ये परियोजनाएं आमतौर पर उपरोक्त भाषाओं में से एक में लिखी जाती हैं और इसके लिए इसे Google पर 'उपयोग' करने की आवश्यकता होती है।
नीचे की रेखा दो चीजें हैं:
- हर प्रोग्रामिंग भाषा की अपनी ताकत होती है। स्थितिजन्य रूप से इन शक्तियों का लाभ नहीं लेना शर्म की बात होगी।
- इंटरॉप टूलकिट और कॉम्पेटिबल रनटाइम के उपलब्ध होने का मतलब है कि एक ही रनटाइम वातावरण में कई भाषाओं का उपयोग करना कम दर्दनाक है।