2010-11-09 8 views
5

I gather से, गोसु बस जेवीएम के लिए सी # है (जो एक अच्छी बात है)। क्या यह सच है? गोसु और सी # के बीच कुछ अंतर क्या है (कक्षा पुस्तकालय को छोड़कर और यह तथ्य जेवीएम पर चलता है)?क्या JVM के लिए गोसु सी # है?

उत्तर

7

नहीं। आप "उल्लेखनीय मतभेद" पेज को देखें, तो (जावा और Gosu के बीच मतभेद) आप चीजों को जो सी # की तरह हैं की एक बहुत कुछ देखेंगे, लेकिन यह भी चीजें हैं जो सी # ऐसे में नहीं हैं केस-असंवेदनशीलता और अर्ध-कॉलन वैकल्पिक बनाते हैं।

  • कस्टम मूल्य प्रकार
  • ऑपरेटर ओवरलोडिंग
  • LINQ
  • गतिशील टाइपिंग जहां आवश्यक

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

+1

बहुत बुरा, मुझे सी # पसंद है लेकिन JVM पर प्रोग्राम करने की आवश्यकता है। धन्यवाद। – ripper234

+2

@ ripper234: क्यों स्कैला का प्रयास नहीं करें? – missingfaktor

19

हमने गोसू को एक भाषा या अन्य के लिए जेवीएम के लिए नहीं बनाया। इसके बजाय हमने JOS के लिए उपयोगी भाषा होने के लिए गोसु बनाया। इसके अलावा, हमने स्वीकार किया कि गोसु को मौजूदा प्रोग्रामर के लोगों से परिचित होने की आवश्यकता है जो अनिवार्य, ऑब्जेक्ट उन्मुख मॉडल के साथ सबसे अधिक आरामदायक हैं। यह हासिल करने के लिए कि हमने कई भाषाओं जैसे जावा, सी #, एक्मास्क्रिप्ट, रुबी और कुछ अन्य लोगों से भारी उधार लिया। नतीजा, हम सोचते हैं, एक ऐसी भाषा है जो अद्वितीय रूप से जेवीएम पर स्थित है।

गोसु के बारे में पूरी तरह अद्वितीय क्या है, हालांकि, यह ओपन टाइप सिस्टम है।

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

यह समझना महत्वपूर्ण है कि गोसु में सभी प्रकार के लोडर डोमेन बाइटकोड का उत्पादन करने की आवश्यकता नहीं है। वे जो संबंधित जावा क्लास को प्राप्त करने के लिए इंटरफेस को कार्यान्वित करते हैं। वे क्रमशः चिंतनशील MethodInfo और PropertyInfo मूल्यांकन के लिए कॉल हैंडलर और संपत्ति एक्सेसर्स प्रदान नहीं करते हैं। नोट टाइप करें सभी प्रकार TypeInfo प्रदान करें, IType.getTypeInfo() देखें। उदाहरण के लिए, पार्सर टाइपइन्फो, मेथडइन्फो, इत्यादि के खिलाफ अलग-अलग प्रकार के बीच एक स्तर के खेल के मैदान के साधन के रूप में कार्य करता है। रनटाइम पर, हालांकि, जब तक कोई प्रकार जावा बाइटकोड क्लास प्रदान नहीं करता है, तो MethodInfos और PropertyInfos भी कॉल को संभालने के लिए ज़िम्मेदार हैं।

+0

मैंने गोसु को संदर्भ के लिए इस्तेमाल की जाने वाली भाषा के रूप में संदर्भ देखा है; क्या यह वही गोसु बीमा उद्योग द्वारा उपयोग किया जाता है, या कोई कनेक्शन नहीं है? –

+1

नहीं, गेमिंग थ्रेड में "गोसु" संदर्भों में गोसु प्रोग्रामिंग भाषा से कोई लेना देना नहीं है। –

संबंधित मुद्दे