Google की मुख्यधारा की भाषा बनने की संभावनाएं क्या हैं? [बन्द है]


58

यहाँ कौन सीख रहा है गो? क्या अन्य कंपनियां इसका उपयोग कर रही हैं? क्या इसका व्यापक रूप से उपयोग होने की संभावना है?


21
रूबी लोकप्रिय हो जाता है रेल के बाद, उद्देश्य-सी के बाद iphone, क्या afterजाने के लिए है?
ओहो

1
भयानक, यह ज्यादातर लोगों के लिए कुछ भी हल नहीं करता है।
डैनियल लिटिल

6
मौके 0 और 1 के बीच हैं। किसी भी अधिक विशिष्ट चीज को प्रोगैस्टिकेशन में पीएचडी की आवश्यकता होगी, जो मेरे पास नहीं है।
रीन हेनरिच्स

1
@ हेन हेनरिक्स - आपको एक मिलेगा, हालांकि समिति को अंतिम थीसिस में कुछ बदलावों की आवश्यकता होगी
मार्टिन बेकेट

3
Google को वास्तव में Go भाषा के लिए Android SDK विकसित करने पर विचार करना चाहिए। कम से कम शुरुआत के रूप में।
सेटज़ामोरा

जवाबों:


46

जब प्रोग्रामिंग भाषाओं की बात आती है, तो पुरानी कहावत, "यह वह नहीं है जो आप हैं, यह वह है जिसे आप जानते हैं" निश्चित रूप से सच है। C और C ++ को AT & T द्वारा प्रायोजित किया गया था, जावा को हमारे द्वारा Sun लाया गया था। .NET परिवार Microsoft से बाहर आया, और ये सभी बहुत जल्दी लोकप्रिय हो गए। फिर हमारे पास ऑब्जेक्टिव-सी और पायथन हैं, जो काफी समय से थे और जब तक वे एप्पल और गूगल द्वारा खोजे गए और सम्मोहित थे, तब तक वास्तव में अस्पष्ट रहे, और फिर अचानक वे वास्तव में दूर हो गए। लेकिन एक प्रमुख प्रायोजक के बिना भाषाएँ अस्पष्टता में कम हो जाती हैं, चाहे वे कितनी भी अच्छी हों।

गो Google द्वारा प्रायोजित है। यहां सही निष्कर्ष पर पहुंचना मुश्किल नहीं है। इसे पाँच साल दें और यह बहुत बड़ा होने वाला है।


13
@ixtmixilix: क्या आप गंभीर हैं? ऐप इंजन और GWT अन्यथा कहते हैं।
imgx64

4
@ixtmixilix - Guice (एक जावा आधारित IoC फ्रेमवर्क) Google द्वारा लिखा गया है और इसका उपयोग ऐडवर्ड्स फ्रंट एंड एंड वेव में किया जाता है। Google कई भाषाओं का उपयोग करने के लिए सीवन करता है।
16

3
+1 मैं आपके मुख्य तर्क (फोरट्रान, कोबोल और सी लाइव और अच्छी तरह से) से सहमत हूं, लेकिन मैं गो के बारे में असहमत हूं, क्योंकि यह कॉर्पोरेट प्रायोजन होने के लिए सिर्फ एक प्रयोग है।
अपाला

2
एटी एंड टी ने वास्तव में C या C ++ को धक्का नहीं दिया। सी लोकप्रिय हो गया क्योंकि यह यूनिक्स की भाषा थी, और बाद में क्योंकि यह बड़े कार्यक्रमों के लिए पास्कल से बेहतर था। स्ट्रॉस्ट्रुप की पुस्तक "डिजाइन एंड एवोल्यूशन ऑफ सी ++" के अनुसार सी ++ सिर्फ एक तरह का प्रसार है। आमतौर पर, भाषाओं को इसे हिट करने के लिए एक किलर ऐप या बड़े कॉर्पोरेट प्रायोजन की आवश्यकता होती है, लेकिन भाषाएं इसके बिना बड़ी हिट कर सकती हैं या इसके साथ चूक सकती हैं।
डेविड थॉर्नले

3
पाँच साल हो गए - अब आपको क्या लगता है?
हिप्पिएट्रेल

17

मैं वास्तव में नहीं सोचता कि गो वह सफल होगा। बड़े लोगों तक नहीं पहुंचने का एक कारण यह है कि यह सिस्टम प्रोग्रामिंग के लिए एक भाषा होने का इरादा है


17
मैं असहमत हूं। 'इको' के लिए लिनक्स स्रोत कोड पर एक नज़र डालें, फिर ईको के गो कार्यान्वयन पर एक नज़र डालें। अगर भाषा एक साधारण कमांड की तरह हजारों लाइनों को दाढ़ी कर सकती है, तो यह संभवतः ग्राफिक्स प्रोसेसिंग लाइब्रेरियों की तरह सामान को बंद कर सकती है। और अगर यह ग्राफिक्स प्रोसेसिंग लाइब्रेरी से लाइनों को दाढ़ी कर सकता है, तो शायद आईडी सॉफ्टवेयर (उदाहरण के लिए) पर लोग किसी दिन इसे C / C ++ से अधिक उपयोगी पाएंगे। और चूंकि आईडी में उनके खेलों के लिए स्रोत कोड जारी करने की आदत है, इसलिए गो 3 डी ग्राफिक्स 5 वर्षों के भीतर विशाल हो सकता है।
ixtmixilix

14
@ixtmixilix लिनक्स का गूँज, जीएनयू का हिस्सा जैसा कुछ भी नहीं है।
वैकल्पिक

3
क्या आपने कभी इरलंग में कुछ लिखा है? यह भयानक नहीं है भगवान।
Unix Janitor

2
मुझे लगता है कि यदि Google का OS बंद हो जाता है, तो Go केवल C / C ++ से आगे निकल जाएगा। यदि Google का OS बंद नहीं होता है, तो मुझे लगता है कि मुख्यधारा को मारना बहुत कठिन समय है।
जॉर्डन पैमर

2
नीटर आई थिक कि गो बहुत तेजी से बढ़ेगा। मेरे कारण: 1. सिंटेक्स काफी अजीब है। 2. बहुत अधिक लिंबो 3. लाइब्रेरी संपूर्ण नहीं 4. कॉन्सेलेर मॉडल
एर्लांग

15

अधिक आधुनिक सुविधाओं के साथ एक सिस्टम भाषा की वास्तविक आवश्यकता है। सी और सी ++ बहुत ज्यादा सुधार करने के लिए यहां विरासत कोड और पीछे की संगतता से बंधे हैं। उस ने कहा, मुझे नहीं लगता कि गो उस भूमिका को उसके वर्तमान रूप में पूरा करता है। इसका डिज़ाइन बहुत छोटा है। जबकि इसका कॉन्सेप्ट मॉडल बहुत रोमांचक है, यह उच्च स्तर की भाषाओं से सिस्टम की दुनिया में कुछ अन्य सुविधाएँ लाता है। (पिछली बार जब मैंने जाँच की थी, जो कि कुछ समय पहले, यह अपवाद भी नहीं था।) इसके अलावा, कम से कम इस हद तक कि कंप्यूटर लैंग्वेज बेंचमार्क गेम एक अच्छा उपाय है (यह वास्तव में एक बहुत ही मोटा संकेतक है), यह नहीं है। लगभग "वास्तविक" सिस्टम भाषा जितनी तेज़ होनी चाहिए।

मुझे लगता है कि एक अधिक आधुनिक सिस्टम भाषा के शून्य को भरने के लिए सबसे अच्छा मौका के साथ भाषा डी है । D तकनीकी रूप से Go से ज्यादा मजबूत है लेकिन राजनीतिक रूप से कमजोर है। यह एक प्रमुख निगम द्वारा समर्थित नहीं है। क्या वास्तव में इसकी जरूरत है कुछ पुस्तकालयों (यह तेजी से अब पता चला है कि भाषा की कल्पना स्थिर है) और एक हत्यारा ऐप है।


7
"यह अपवाद भी नहीं था" यह एक बड़ा निर्णय था - golang.org/doc/go_faq.html
user151019

1
@ मर्क: दिलचस्प। दहशत और उबरने के अपवाद की तरह लग रहे हो। डी में स्कोप स्टेटमेंट्स हैं, जो मोटे तौर पर डेफर () के बराबर हैं, लेकिन सामान्य अपवादों के साथ।
dsimcha

3
इसमें अपवाद नहीं हैं, लेकिन उनकी आवश्यकता नहीं है। इसके बजाय, यह कई वापसी मूल्यों की अनुमति देता है, जिससे foo, err := SomeFunc()आम हो जाता है। प्रमुख मुद्दों के लिए, या स्पॉट जहां इरेट बहुत अच्छी तरह से काम नहीं करता है, आप उपयोग कर सकते हैं panic()और recover()। हालांकि, ये जानबूझकर बहुत कम उपयोग किए जाते हैं; यदि स्टैक बहुत छोटा है, तो अपवादों को पास करने का कोई तरीका नहीं है, और छोटे स्टैक आम हैं जहां कई समवर्ती धागे हैं।
पागल 2be

3
"डी गो की तुलना में तकनीकी रूप से बहुत मजबूत है", "इसका डिज़ाइन बहुत छोटा है"। दिलचस्प है कि आप यह कैसे कहते हैं जैसे यह एक तथ्य है। यह सिर्फ आपकी राय है, इसका सामना करें।
मोशे रेवह

10

मैं गो और हाँ सीख रहा हूं, यह Google और हरोकू के अलावा उत्पादक रूप से उपयोग किया जाता है।

सिस्टम प्रोग्रामिंग के लिए गो निश्चित रूप से एक अच्छी भाषा है। सी के रूप में सरल कोड, सी ++ में शक्तिशाली संरचनाएं और जावा में सुरक्षा विशेषताएं। चूंकि यह एक बहुत छोटी भाषा है, अन्य भाषाओं की बहुत सारी अच्छी चीजें विरासत में मिली हैं:

  • श्रेणियों पर पुनरावृत्ति
  • चैनल (भूल म्यूटेक्स आदि)
  • कोई प्रकार पदानुक्रम, केवल इंटरफ़ेस वंशानुक्रम
  • वास्तव में गो कक्षाओं को भी नहीं जानता है लेकिन अधिक लचीले "प्रकार": इंटरफेस स्वचालित रूप से विरासत में मिला है जब परिभाषित तरीकों से मेल खाता है
  • कम बॉयलरप्लेट: के i := 1बजाय int i = 1, के func f(x, y, z int)बजाय void f(int x, int y, int z), के type Foo struct { a, b int }; bar := Foo{1, 2}बजायclass Foo { int a; int b; Foo(int a, int b) { this.a = a; this.b = b; } } /* ... */ Foo bar = new Foo(1, 2);
  • अपवाद ("पैनिक") केवल वास्तव में असाधारण मामलों के लिए: अन्य मामलों में त्रुटि-प्रवण फ़ंक्शन एक अतिरिक्त त्रुटि पैरामीटर वापस कर सकता है जिसे आप आसानी से अनदेखा कर सकते हैं

इन सभी अच्छी बातों और सुरक्षा और प्रदर्शन को केवल वैधानिक रूप से टाइप की जाने वाली भाषाओं से ज्ञात करने पर विचार करते हुए, गतिशील भाषा समुदाय के बहुत से लोग गो को पसंद करने लगे हैं। ज्यादातर मामलों में गो-कोड रूबी-कोड से अधिक लंबा नहीं है, लेकिन हर मामले में सुरक्षित और बेहतर संरचित है।

लेकिन अंत में मुझे लगता है कि गो के लिए हत्यारा तर्क संक्षिप्त है। यह एक सी-लाइक लैंग्वेज है जिसमें एक शक्तिशाली कंसीलर सपोर्ट है जो केवल कार्यात्मक भाषाओं से जाना जाता है।


2
मुझे हाल ही में AppEngine प्रोग्रामिंग के लिए इसे सीखने के दौरान गो के साथ प्यार हो गया है, और मैं इसे बेहतर नहीं कह सकता था तो आपने किया। बहुत बढ़िया।
एडम क्रॉसलैंड

5

मैं यह कहूंगा कि यह मुख्य रूप से पुस्तकालयों / सेवाओं / सॉफ्टवेयर पर निर्भर करता है जो कि गो के लिए / के लिए / बनाया जाएगा। लोग तीन स्थितियों (ऑर्डर मामलों) में कुछ का उपयोग करते हैं: जब उनके पास व्यावहारिक रूप से कोई अन्य विकल्प (ऑब्जेक्टिव-सी) नहीं होता है, जब उनका परिवेश इसका उपयोग करता है (फोरट्रान), जब यह उनके लाइव को आसान बनाता है (रूबी)।


5

इसके लिए थोड़ी देर हो सकती है, लेकिन गो अब एक लोकप्रिय भाषा बनती जा रही है और संभवतः Google के साथ इसे आगे बढ़ाते हुए मुख्यधारा में प्रवेश करेगी। इसे Google के भीतर सिस्टम और उत्पादों के लिए उपयोग की जाने वाली भाषा के रूप में धकेला जा रहा है और Google App इंजन के साथ उपयोग करने के लिए भाषा के रूप में धकेला जा रहा है। गो बिल्डिंग के बैकेंड पर कुछ बहुत तेज लोग हैं और इसे बढ़ा रहे हैं। गो के लिए तीसरे पक्ष के पुस्तकालयों पर काम करने वाले कुछ बहुत ही चतुर और कल्पनाशील लोग हैं।

गो एक शून्य भरता है जो अन्य भाषाओं में बहुत भरा नहीं है। मेरे लिए, मैं उस शून्य को पर्ल और वर्कअराउंड और ट्रिक्स के एक समूह के साथ भरने की कोशिश करता था। मुझे विश्वास नहीं है कि यह सभी स्थितियों और सभी लोगों के लिए सही भाषा है, लेकिन यह निश्चित रूप से काफी बड़ी संख्या में स्थितियों के लिए एक उम्मीदवार है। उदाहरण के लिए, यह वेब ऐप्स के लिए बढ़िया काम करता है, जबकि डेस्कटॉप ऐप्स या सर्वर-आधारित ऐप्स के लिए भी बढ़िया काम करता है। यह HTTP और WebSocket (जिसका अर्थ है कि आप Apache या nginx को पूरी तरह से छोड़ सकते हैं) के साथ ऐसा शानदार काम करते हैं, जबकि दोनों डेमों के लिए और नियमित ol 'डेस्कटॉप ऐप के लिए विंडोज, लिनक्स और OS X पर बहुत अच्छी तरह से चल रहा है। अभी केवल वही स्थिति है जो मेरे लिए विफल है, एंड्रॉइड ऐप्स के लिए है, जो मुझे आशा है कि जल्द ही इसका निवारण किया जाएगा। मैं इसका उपयोग विंडोज डेस्कटॉप एप्स, लिनक्स डेस्कटॉप एप्स और लिनक्स बेस्ड वेब एप्स के लिए करता हूं।

मेरा मानना ​​है कि मुख्यधारा में आने से पहले यह कई साल होगा, लेकिन यह वहां पहुंच जाएगा। मुझे लगता है कि इसे थर्ड-पार्टी लाइब्रेरियों को बनाने की जरूरत है, बहुत कुछ उस तरह की संख्या और चयन की तरह है जो पर्ल सीपीएन के पास है। यह वहाँ मिलेगा।


3

वैसे भी "मुख्यधारा" का क्या अर्थ है? बिना यह जाने कि इस प्रश्न का उत्तर देना कितना कठिन है। उस पर थोड़ा गौर करते हैं।

कई संभावित परिभाषाएं हैं। यहाँ कुछ है:

प्रबंधन दृश्य:

  • ग्राहकों से मांग करें कि आप इसका उपयोग करें
  • प्रबंधन से मांग करें कि आप इसका उपयोग करें
  • इसका उपयोग करने के लिए प्रबंधन द्वारा आलोचना नहीं की जाएगी

डेवलपर्स का दृष्टिकोण:

  • आमतौर पर उपलब्ध भाषा उपकरण (जैसे, लिनक्स वितरण में)
  • भाषा उपकरण आमतौर पर 10 वर्षों के लिए उपलब्ध होंगे
  • सॉफ्टवेयर कलाकृतियों को बनाता है जो कम से कम 10 वर्षों तक बने रहेंगे और उपयोग किए जाएंगे

कैरियर का दृष्टिकोण:

  • भाषा-विशिष्ट कौशल अन्य नौकरियों के लिए हस्तांतरणीय हैं
    • रिक्रूटर इसके लिए पूछते हैं

उपरोक्त सभी को देखते हुए, मेरा तर्क है कि एकमात्र ईमानदार उत्तर शायद "बहुत जल्द बताने वाला है" लेकिन मेरा मानना ​​है कि किसी भी वास्तविक दीर्घायु का सबसे अच्छा संकेतक छोटी संख्या हैव्यवसाय जो भाषा का उपयोग करते हैं। बड़े संगठन बहुत अच्छी तरह से हैं - वे किसी भाषा या उपकरण की प्रणाली के विकास के लिए भी आवश्यक हो सकते हैं क्योंकि वे निवेश के पैमाने पर लागू कर सकते हैं - लेकिन वे कुछ हद तक फैशन (कुछ अपवादों के साथ) होने का खतरा है। इसके विपरीत, यदि एक छोटे से व्यवसाय ने उत्पादों और सेवाओं को वितरित करने के लिए भाषा का उपयोग करते हुए खुद को बनाया है, तो वे यह सुनिश्चित करने की दिशा में योगदान करना चाहते हैं कि वे अभी भी भविष्य में ऐसा करने में सक्षम होंगे। वे क्षेत्र में एक मजबूत नौकरी बाजार का आधार भी बनाते हैं, और उपकरणों की भी मांग करते हैं। मजेदार रूप से, वे मेरी सूची में मुख्यधारा-नेस के कई संकेतक हैं (संभवतः प्रबंधन की सनक के आधार पर)।

तो, Google के बाहर कितने लोग अपने काम के लिए Go का उपयोग कर रहे हैं? मुझे पता नहीं है। (मैं नहीं हूं। मेरी आवश्यकताओं को वर्तमान में जावा, सी और टीएलसी के मिश्रण द्वारा अच्छी तरह से परोसा गया है। YMMV।)


"मुख्य धारा" का क्या अर्थ है, इसका महान सारांश। मुझे लगता है कि गो के पास इन सभी को छोड़कर, "ग्राहकों की मांग के अनुसार आप इसका उपयोग करते हैं।"
वाइल्डकार्ड

2

यह पहले से ही कुछ भाषाओं की तुलना में अधिक लोकप्रिय है।

एक संभावना है, कि 20+ वर्षों में गो सबसे महत्वपूर्ण भाषा है। यह वास्तव में बड़े पैमाने पर डेटासेट के संदर्भ में कुछ महान लाभ प्रस्तुत करता है, जो सोशल मीडिया साइट, क्लाउड कंप्यूटिंग, खोज और मोबाइल मौजूद हैं।

Facebook, Twitter, Linkedin, YouTube और Ad-Serving नेटवर्क जैसी साइटों का Google Go for Ruby On Rails की तुलना में बहुत अधिक उपयोग होता है, कम से कम कुछ संदर्भों में।


1

जब मैंने इसके बारे में सुना तो मैंने गो को देखा। एक पूर्ण शुरुआत के रूप में, मैं अभी भी शुरुआती भाषाएँ सीख रहा हूँ (मेरे मामले में जावा, C #, पायथन और स्कीम) जो कि बहुत कुछ लेना है, लेकिन अगर मैं इतने सारे अलग-अलग भाषाओं में तल्लीन नहीं होता, तो मैं इस पर गंभीरता से विचार करता।

मैं अपने स्तर पर आंकता हूं, बैंडवादन पर कूदने से पहले मूल बातें नीचे लाने में कोई बुराई नहीं है। हालांकि, अगर मुझे सही याद है, जब मैं गो को देख रहा था, तो मैं किसी कारण से एर्लांग के प्रति बहुत आकर्षित हो गया।


1

मैंने केवल इस प्रश्न के कारण गो को देखा है, इसलिए मैं वास्तव में इस पर टिप्पणी नहीं कर सकता कि क्या यह मुख्यधारा की भाषा के रूप में बंद हो जाएगा, लेकिन एक बात अभी मुझे बहुत उत्साहित कर गई है:

http://golang.org/doc/go_spec.html#Channel_types

मैं पहली बार ऑकैम-पीआई में चैनल की अवधारणा पर आया था और मुझे यह कहना चाहिए कि यह अब तक की सर्वश्रेष्ठ प्रोग्रामिंग अवधारणाओं में से एक है । यह संक्षिप्तता इतना आसान लगता है जहां सी-टाइप भाषा में एक ही काम करना कभी-कभी दर्द हो सकता है।

जो मैंने देखा है (10 मिनट में मैंने देखा है) से, गो कई अलग-अलग प्रोग्रामिंग अवधारणाओं को संयोजित करने की कोशिश कर रहा है, लेकिन इससे सभी ट्रेडों के जैक होने का जोखिम है, जो किसी का भी स्वामी नहीं है।


0

मुझे संदेह है कि क्या यह मुख्यधारा बन जाता है, यह इस बात पर निर्भर करेगा कि क्या Google इसे एपेंगिन और / या GWT के लिए एक समर्थित भाषा के रूप में अपनाता है।


2
Google ऐप इंजन के लिए सिस्टम भाषा कैसे उपयोगी होगी?
ixtmixilix

मैं कहूंगा कि सिर्फ इसलिए कि यह वर्तमान में मशीन कोड के लिए संकलित एक सिस्टम भाषा है जो भविष्य में अन्य प्लेटफार्मों को लक्षित करने से Google को रोक नहीं पाएगी। जरा देखें कि उन्होंने जावा के साथ क्या किया है- GWT के मामले में जावास्क्रिप्ट को संकलित करना और एंड्रॉइड के लिए dalvik vm को tafgetting। इसी तरह फेसबुक संकलन PHP। मैं गो के एक आउटपुट की परिकल्पना कर सकता हूं जो भविष्य में किसी बिंदु पर एपेंगिन में स्थापित हो सकता है।
क्रिस बकेट 15

+1 - महत्वपूर्ण बात यह है कि यह किसी चीज के लिए उपयोगी है। बस देखो कि iPhone ने ऑब्जेक्टिव-सी के लिए क्या किया।

3
खैर ये तो बस हो गया । अब देखते हैं कि क्या यह दूर होता है ...
Elad

3
रिकॉर्ड के लिए, मैं वर्तमान में AppEngine Go रनटाइम पर एक बड़ा, महत्वाकांक्षी वेब एप्लिकेशन विकसित कर रहा हूं। गो काफी उत्पादक और तेज है। कोड बहुत पठनीय है। यह एक अद्भुत भाषा है।
एडम क्रॉसलैंड

0

काश गो लोकप्रिय हो जाए।

यह वाक्य रचना में शक्तिशाली है। (अजगर, सी, जावा से लाभ जानें)। यह मल्टी-कोर सीपीयू के लिए अच्छा है। (चैनल बेहतर कार्य करता है तो थ्रेड प्रोग्रामिंग)। डिजाइन कई प्रोग्रामर के नुकसान को रोकता है। (गलत पॉइंटर, टूल गोफ़्म द्वारा समान कोडिंग स्टाइल, वैरिएबल अनइंस्टॉलिज्ड बग को रोकने के लिए, पहली बार में, मैं इसे पहली बार आज़माता हूं क्योंकि यह अजगर + सी है लेकिन सी की 1/2 गति के पास गति के साथ।

लेकिन, गहराई से सीखने के बाद मैंने पाया कि यह दोष सहिष्णुता और मापनीय वास्तुकला को विकसित करने के लिए उपयुक्त है

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