यहाँ कौन सीख रहा है गो? क्या अन्य कंपनियां इसका उपयोग कर रही हैं? क्या इसका व्यापक रूप से उपयोग होने की संभावना है?
यहाँ कौन सीख रहा है गो? क्या अन्य कंपनियां इसका उपयोग कर रही हैं? क्या इसका व्यापक रूप से उपयोग होने की संभावना है?
जवाबों:
जब प्रोग्रामिंग भाषाओं की बात आती है, तो पुरानी कहावत, "यह वह नहीं है जो आप हैं, यह वह है जिसे आप जानते हैं" निश्चित रूप से सच है। C और C ++ को AT & T द्वारा प्रायोजित किया गया था, जावा को हमारे द्वारा Sun लाया गया था। .NET परिवार Microsoft से बाहर आया, और ये सभी बहुत जल्दी लोकप्रिय हो गए। फिर हमारे पास ऑब्जेक्टिव-सी और पायथन हैं, जो काफी समय से थे और जब तक वे एप्पल और गूगल द्वारा खोजे गए और सम्मोहित थे, तब तक वास्तव में अस्पष्ट रहे, और फिर अचानक वे वास्तव में दूर हो गए। लेकिन एक प्रमुख प्रायोजक के बिना भाषाएँ अस्पष्टता में कम हो जाती हैं, चाहे वे कितनी भी अच्छी हों।
गो Google द्वारा प्रायोजित है। यहां सही निष्कर्ष पर पहुंचना मुश्किल नहीं है। इसे पाँच साल दें और यह बहुत बड़ा होने वाला है।
मैं वास्तव में नहीं सोचता कि गो वह सफल होगा। बड़े लोगों तक नहीं पहुंचने का एक कारण यह है कि यह सिस्टम प्रोग्रामिंग के लिए एक भाषा होने का इरादा है ।
अधिक आधुनिक सुविधाओं के साथ एक सिस्टम भाषा की वास्तविक आवश्यकता है। सी और सी ++ बहुत ज्यादा सुधार करने के लिए यहां विरासत कोड और पीछे की संगतता से बंधे हैं। उस ने कहा, मुझे नहीं लगता कि गो उस भूमिका को उसके वर्तमान रूप में पूरा करता है। इसका डिज़ाइन बहुत छोटा है। जबकि इसका कॉन्सेप्ट मॉडल बहुत रोमांचक है, यह उच्च स्तर की भाषाओं से सिस्टम की दुनिया में कुछ अन्य सुविधाएँ लाता है। (पिछली बार जब मैंने जाँच की थी, जो कि कुछ समय पहले, यह अपवाद भी नहीं था।) इसके अलावा, कम से कम इस हद तक कि कंप्यूटर लैंग्वेज बेंचमार्क गेम एक अच्छा उपाय है (यह वास्तव में एक बहुत ही मोटा संकेतक है), यह नहीं है। लगभग "वास्तविक" सिस्टम भाषा जितनी तेज़ होनी चाहिए।
मुझे लगता है कि एक अधिक आधुनिक सिस्टम भाषा के शून्य को भरने के लिए सबसे अच्छा मौका के साथ भाषा डी है । D तकनीकी रूप से Go से ज्यादा मजबूत है लेकिन राजनीतिक रूप से कमजोर है। यह एक प्रमुख निगम द्वारा समर्थित नहीं है। क्या वास्तव में इसकी जरूरत है कुछ पुस्तकालयों (यह तेजी से अब पता चला है कि भाषा की कल्पना स्थिर है) और एक हत्यारा ऐप है।
foo, err := SomeFunc()
आम हो जाता है। प्रमुख मुद्दों के लिए, या स्पॉट जहां इरेट बहुत अच्छी तरह से काम नहीं करता है, आप उपयोग कर सकते हैं panic()
और recover()
। हालांकि, ये जानबूझकर बहुत कम उपयोग किए जाते हैं; यदि स्टैक बहुत छोटा है, तो अपवादों को पास करने का कोई तरीका नहीं है, और छोटे स्टैक आम हैं जहां कई समवर्ती धागे हैं।
मैं गो और हाँ सीख रहा हूं, यह 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);
इन सभी अच्छी बातों और सुरक्षा और प्रदर्शन को केवल वैधानिक रूप से टाइप की जाने वाली भाषाओं से ज्ञात करने पर विचार करते हुए, गतिशील भाषा समुदाय के बहुत से लोग गो को पसंद करने लगे हैं। ज्यादातर मामलों में गो-कोड रूबी-कोड से अधिक लंबा नहीं है, लेकिन हर मामले में सुरक्षित और बेहतर संरचित है।
लेकिन अंत में मुझे लगता है कि गो के लिए हत्यारा तर्क संक्षिप्त है। यह एक सी-लाइक लैंग्वेज है जिसमें एक शक्तिशाली कंसीलर सपोर्ट है जो केवल कार्यात्मक भाषाओं से जाना जाता है।
मैं यह कहूंगा कि यह मुख्य रूप से पुस्तकालयों / सेवाओं / सॉफ्टवेयर पर निर्भर करता है जो कि गो के लिए / के लिए / बनाया जाएगा। लोग तीन स्थितियों (ऑर्डर मामलों) में कुछ का उपयोग करते हैं: जब उनके पास व्यावहारिक रूप से कोई अन्य विकल्प (ऑब्जेक्टिव-सी) नहीं होता है, जब उनका परिवेश इसका उपयोग करता है (फोरट्रान), जब यह उनके लाइव को आसान बनाता है (रूबी)।
इसके लिए थोड़ी देर हो सकती है, लेकिन गो अब एक लोकप्रिय भाषा बनती जा रही है और संभवतः Google के साथ इसे आगे बढ़ाते हुए मुख्यधारा में प्रवेश करेगी। इसे Google के भीतर सिस्टम और उत्पादों के लिए उपयोग की जाने वाली भाषा के रूप में धकेला जा रहा है और Google App इंजन के साथ उपयोग करने के लिए भाषा के रूप में धकेला जा रहा है। गो बिल्डिंग के बैकेंड पर कुछ बहुत तेज लोग हैं और इसे बढ़ा रहे हैं। गो के लिए तीसरे पक्ष के पुस्तकालयों पर काम करने वाले कुछ बहुत ही चतुर और कल्पनाशील लोग हैं।
गो एक शून्य भरता है जो अन्य भाषाओं में बहुत भरा नहीं है। मेरे लिए, मैं उस शून्य को पर्ल और वर्कअराउंड और ट्रिक्स के एक समूह के साथ भरने की कोशिश करता था। मुझे विश्वास नहीं है कि यह सभी स्थितियों और सभी लोगों के लिए सही भाषा है, लेकिन यह निश्चित रूप से काफी बड़ी संख्या में स्थितियों के लिए एक उम्मीदवार है। उदाहरण के लिए, यह वेब ऐप्स के लिए बढ़िया काम करता है, जबकि डेस्कटॉप ऐप्स या सर्वर-आधारित ऐप्स के लिए भी बढ़िया काम करता है। यह HTTP और WebSocket (जिसका अर्थ है कि आप Apache या nginx को पूरी तरह से छोड़ सकते हैं) के साथ ऐसा शानदार काम करते हैं, जबकि दोनों डेमों के लिए और नियमित ol 'डेस्कटॉप ऐप के लिए विंडोज, लिनक्स और OS X पर बहुत अच्छी तरह से चल रहा है। अभी केवल वही स्थिति है जो मेरे लिए विफल है, एंड्रॉइड ऐप्स के लिए है, जो मुझे आशा है कि जल्द ही इसका निवारण किया जाएगा। मैं इसका उपयोग विंडोज डेस्कटॉप एप्स, लिनक्स डेस्कटॉप एप्स और लिनक्स बेस्ड वेब एप्स के लिए करता हूं।
मेरा मानना है कि मुख्यधारा में आने से पहले यह कई साल होगा, लेकिन यह वहां पहुंच जाएगा। मुझे लगता है कि इसे थर्ड-पार्टी लाइब्रेरियों को बनाने की जरूरत है, बहुत कुछ उस तरह की संख्या और चयन की तरह है जो पर्ल सीपीएन के पास है। यह वहाँ मिलेगा।
वैसे भी "मुख्यधारा" का क्या अर्थ है? बिना यह जाने कि इस प्रश्न का उत्तर देना कितना कठिन है। उस पर थोड़ा गौर करते हैं।
कई संभावित परिभाषाएं हैं। यहाँ कुछ है:
प्रबंधन दृश्य:
डेवलपर्स का दृष्टिकोण:
कैरियर का दृष्टिकोण:
उपरोक्त सभी को देखते हुए, मेरा तर्क है कि एकमात्र ईमानदार उत्तर शायद "बहुत जल्द बताने वाला है" लेकिन मेरा मानना है कि किसी भी वास्तविक दीर्घायु का सबसे अच्छा संकेतक छोटी संख्या हैव्यवसाय जो भाषा का उपयोग करते हैं। बड़े संगठन बहुत अच्छी तरह से हैं - वे किसी भाषा या उपकरण की प्रणाली के विकास के लिए भी आवश्यक हो सकते हैं क्योंकि वे निवेश के पैमाने पर लागू कर सकते हैं - लेकिन वे कुछ हद तक फैशन (कुछ अपवादों के साथ) होने का खतरा है। इसके विपरीत, यदि एक छोटे से व्यवसाय ने उत्पादों और सेवाओं को वितरित करने के लिए भाषा का उपयोग करते हुए खुद को बनाया है, तो वे यह सुनिश्चित करने की दिशा में योगदान करना चाहते हैं कि वे अभी भी भविष्य में ऐसा करने में सक्षम होंगे। वे क्षेत्र में एक मजबूत नौकरी बाजार का आधार भी बनाते हैं, और उपकरणों की भी मांग करते हैं। मजेदार रूप से, वे मेरी सूची में मुख्यधारा-नेस के कई संकेतक हैं (संभवतः प्रबंधन की सनक के आधार पर)।
तो, Google के बाहर कितने लोग अपने काम के लिए Go का उपयोग कर रहे हैं? मुझे पता नहीं है। (मैं नहीं हूं। मेरी आवश्यकताओं को वर्तमान में जावा, सी और टीएलसी के मिश्रण द्वारा अच्छी तरह से परोसा गया है। YMMV।)
यह पहले से ही कुछ भाषाओं की तुलना में अधिक लोकप्रिय है।
एक संभावना है, कि 20+ वर्षों में गो सबसे महत्वपूर्ण भाषा है। यह वास्तव में बड़े पैमाने पर डेटासेट के संदर्भ में कुछ महान लाभ प्रस्तुत करता है, जो सोशल मीडिया साइट, क्लाउड कंप्यूटिंग, खोज और मोबाइल मौजूद हैं।
Facebook, Twitter, Linkedin, YouTube और Ad-Serving नेटवर्क जैसी साइटों का Google Go for Ruby On Rails की तुलना में बहुत अधिक उपयोग होता है, कम से कम कुछ संदर्भों में।
जब मैंने इसके बारे में सुना तो मैंने गो को देखा। एक पूर्ण शुरुआत के रूप में, मैं अभी भी शुरुआती भाषाएँ सीख रहा हूँ (मेरे मामले में जावा, C #, पायथन और स्कीम) जो कि बहुत कुछ लेना है, लेकिन अगर मैं इतने सारे अलग-अलग भाषाओं में तल्लीन नहीं होता, तो मैं इस पर गंभीरता से विचार करता।
मैं अपने स्तर पर आंकता हूं, बैंडवादन पर कूदने से पहले मूल बातें नीचे लाने में कोई बुराई नहीं है। हालांकि, अगर मुझे सही याद है, जब मैं गो को देख रहा था, तो मैं किसी कारण से एर्लांग के प्रति बहुत आकर्षित हो गया।
मैंने केवल इस प्रश्न के कारण गो को देखा है, इसलिए मैं वास्तव में इस पर टिप्पणी नहीं कर सकता कि क्या यह मुख्यधारा की भाषा के रूप में बंद हो जाएगा, लेकिन एक बात अभी मुझे बहुत उत्साहित कर गई है:
http://golang.org/doc/go_spec.html#Channel_types
मैं पहली बार ऑकैम-पीआई में चैनल की अवधारणा पर आया था और मुझे यह कहना चाहिए कि यह अब तक की सर्वश्रेष्ठ प्रोग्रामिंग अवधारणाओं में से एक है । यह संक्षिप्तता इतना आसान लगता है जहां सी-टाइप भाषा में एक ही काम करना कभी-कभी दर्द हो सकता है।
जो मैंने देखा है (10 मिनट में मैंने देखा है) से, गो कई अलग-अलग प्रोग्रामिंग अवधारणाओं को संयोजित करने की कोशिश कर रहा है, लेकिन इससे सभी ट्रेडों के जैक होने का जोखिम है, जो किसी का भी स्वामी नहीं है।
मुझे संदेह है कि क्या यह मुख्यधारा बन जाता है, यह इस बात पर निर्भर करेगा कि क्या Google इसे एपेंगिन और / या GWT के लिए एक समर्थित भाषा के रूप में अपनाता है।
काश गो लोकप्रिय हो जाए।
यह वाक्य रचना में शक्तिशाली है। (अजगर, सी, जावा से लाभ जानें)। यह मल्टी-कोर सीपीयू के लिए अच्छा है। (चैनल बेहतर कार्य करता है तो थ्रेड प्रोग्रामिंग)। डिजाइन कई प्रोग्रामर के नुकसान को रोकता है। (गलत पॉइंटर, टूल गोफ़्म द्वारा समान कोडिंग स्टाइल, वैरिएबल अनइंस्टॉलिज्ड बग को रोकने के लिए, पहली बार में, मैं इसे पहली बार आज़माता हूं क्योंकि यह अजगर + सी है लेकिन सी की 1/2 गति के पास गति के साथ।
लेकिन, गहराई से सीखने के बाद मैंने पाया कि यह दोष सहिष्णुता और मापनीय वास्तुकला को विकसित करने के लिए उपयुक्त है
after
जाने के लिए है?