Google पर प्रोग्रामिंग भाषा का उपयोग [बंद]


29

मैंने सुना है कि Google Python, Java और C ++ का उपयोग करता है। लेकिन मुझे नहीं पता कि उन प्रोग्रामिंग भाषा में से प्रत्येक का उपयोग कैसे किया जाता है। मेरा मतलब है कि Google पर Python, Java और C ++ का क्या उपयोग किया जाता है। जब 1 भाषा पर्याप्त है तो उन्होंने 3 प्रोग्रामिंग भाषाओं का उपयोग क्यों किया। क्या कोई जानता है?


16
इसके अलावा, आप गो को भूल गए।
सेब्रांडोलिनो

22
यदि एक भाषा पर्याप्त है, तो पायथन, सी ++ या जावा बिल्कुल क्यों है? हम सभी हमारे सिस्टम को चलाने वाले प्रोसेसर के लिए सिर्फ असेंबली भाषा का उपयोग कर सकते हैं।
लाजर

एक भाषा कहना पर्याप्त है, यह कहना कि एक प्रकार की लकड़ी पर्याप्त है, क्या आप उस बढ़ई का सम्मान करेंगे, जिसने केवल पाइन में काम किया था, लेकिन कभी मेपल या ओक नहीं?
ज़ाचरी के

इसके अलावा, आप Sawzall labs.google.com/papers/sawzall.html
Chiron

1
उन्होंने जावा का उपयोग किया इस reddit.com/r/google/comments/3sdx3b/…
Elshan

जवाबों:


97

सही उत्तर " क्योंकि विभिन्न भाषाओं में अलग-अलग ताकत होती है " पहले ही कहा जा चुका है। लेकिन मुझे इस पर कुछ और विस्तार प्रदान करने की आवश्यकता है:

सी ++

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 पर 'उपयोग' करने की आवश्यकता होती है।

नीचे की रेखा दो चीजें हैं:

  • हर प्रोग्रामिंग भाषा की अपनी ताकत होती है। स्थितिजन्य रूप से इन शक्तियों का लाभ नहीं लेना शर्म की बात होगी।
  • इंटरॉप टूलकिट और कॉम्पेटिबल रनटाइम के उपलब्ध होने का मतलब है कि एक ही रनटाइम वातावरण में कई भाषाओं का उपयोग करना कम दर्दनाक है।

आपके स्पष्टीकरण से इसका मतलब यह है कि GMail GWT का उपयोग करता है?
जोशुआ अंश जोगी

1
Google वर्तमान में वेब ऐप्पलिकेशन के लिए भी अजगर का उपयोग कर रहा है।
राफेल

प्रमुख गोगलर एलेक्स मार्टेली बताते हैं "पायथन जहां हम कर सकते हैं, सी ++ जहां हमें चाहिए"
पीटर एम -

17
1 language is enough

हो सकता है कि एक भाषा पर्याप्त रूप से कई अलग-अलग कार्यों को पूरा करने के लिए पर्याप्त हो, लेकिन विभिन्न भाषाओं में अलग-अलग ताकत, कमजोरियां और क्षमताएं हैं।

चूंकि Google सबसे अधिक संभवत: बड़ी संख्या में विभिन्न स्थितियों के लिए कार्यक्रम करता है, जो पाठ्यक्रमों के लिए घोड़ों का मामला है, नौकरी के लिए सबसे अच्छा उपकरण है।


4
+1, नौकरी के लिए सर्वोत्तम टूल का उपयोग करना। मैं वर्तमान में एक एकल डेस्कटॉप एप्लिकेशन पर काम कर रहा हूं जो 3 प्रोग्रामिंग भाषाओं (प्लस विभिन्न मार्कअप और डेटाबेस भाषाओं) का उपयोग करता है। C ++ के साथ धातु के सामान के करीब, जावा के साथ मुख्य अनुप्रयोग, और कुछ Jython यहाँ और वहाँ आसान अनुकूलन के लिए। यह तीनों लोकों, आईएमओ :-)
जूनो पुलकका


9

इन तीन भाषाओं का उपयोग विभिन्न उद्देश्यों के लिए किया जाता है।

स्वचालन स्क्रिप्ट लिखने के लिए अजगर का उपयोग किया जा सकता है।
सी ++ जटिल एल्गोरिदम को लागू करने के लिए। (इंडेक्सर, क्रॉलर, मैप-रिड्यूस, बिग टेबल)
वेब सेवाओं, वेब ऐप आदि के लिए जावा।

ये केवल मेरी धारणाएं हैं।


मैं जटिल एल्गोरिदम लागू करूँगा - पायथन में अत्यंत प्रदर्शन-महत्वपूर्ण नहीं।

3

पायथन का उपयोग उनकी सहायता वेबसाइट के लिए किया जाता है, आप देख सकते हैं कि यह पृष्ठ एक अजगर स्क्रिप्ट द्वारा बनाया गया है, वे वेब अनुप्रयोगों के लिए जावा पुस्तकालयों का उपयोग करते हैं, इसलिए ऐप इंजन में GWT और जावा समर्थन

मुझे लगता है कि वे Google धरती के लिए या सामान्य रूप से डेस्कटॉप अनुप्रयोगों के लिए C ++ का उपयोग करते हैं


2

"मेरी भाषा पर्याप्त है" केवल तभी सत्य हो सकती है जब आप जो भी प्रोजेक्ट करते हैं वह एक विशिष्ट प्रकार का हो। और कुछ परियोजनाओं के लिए, यहां तक ​​कि सी ++ जावा और पायथन भी सर्वश्रेष्ठ उपकरण नहीं हैं। इसके अलावा, केवल एक भाषा को जानना गरीब प्रोग्रामर की एक विशिष्ट विशेषता है।


0

वे मूल मैक और आईफोन एप्लिकेशन भी लिखते हैं, और वे उद्देश्य-सी में हैं। इसका कारण यह है कि यह सरल है: एपीआई उद्देश्य-सी में हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.