2011-11-22 6 views
7

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

मैं उत्सुक क्या फायदे सी ++ सी # से अधिक हो सकता है जब ओपन में 3 डी ग्राफिक्स के साथ काम कर रहा हूँ। कोई भी इनपुट बहुत अच्छा होगा क्योंकि मैं इस पर पूरी तरह से नया हूं।

+1

करीब के लिए वोट दें। Google "सी # बनाम सी ++" पर है और आपको कई सारे अंतर मिलेंगे। असल में जटिलता बनाम प्रदर्शन नंबर एक है। सी ++ बेहतर प्रदर्शन कर सकता है यदि आपके पास सी ++ में थोड़ा सा अनुभव है, तो आपके द्वारा उत्पादित कोड शायद सी # समकक्ष से भी बदतर होगा। – Polity

+1

संभावित डुप्लिकेट [सी # के साथ ओपनजीएल का उपयोग करना?] (Http://stackoverflow.com/questions/536065/using-opengl-with-c) –

+1

जबकि मैं आम तौर पर "भाषा एक्स बनाम वाई" को बंद करने के लिए वोट देता हूं, मुझे लगता है इसमें प्रमाणित उत्तरों के लिए योग्यता है क्योंकि यह अधिक केंद्रित है इसलिए ... दूसरों के लिए छोड़ना। –

उत्तर

5

सी # के माध्यम से ओपनजीएल का उपयोग कुछ कठिनाइयों में है।

  1. एक अप-टू-डेट एसडीके रही। ताओ के बाद से 2008 OpenTK एक स्थिर रिलीज 2010 ओपन के जून के बाद से जून 2010 आप बस सी # से उपयोग नहीं कर सकते कार्यशीलता का एक बहुत कुछ है कि के बाद से दो संस्करण रिलीज हुई नहीं पड़ा है अद्यतन नहीं किया गया है। मुझे नहीं पता कि ओपनटीके की रात कितनी स्थिर है, लेकिन मैं आमतौर पर नाइटली पर भरोसा नहीं करता हूं। सी/सी ++ के साथ, आप जो भी फ़ंक्शन पॉइंटर्स लोड करना चाहते हैं उन्हें प्राप्त कर सकते हैं। सी # के साथ, आप केवल अपने टूलकिट द्वारा प्रदान किए जाने वाले उपयोग का उपयोग कर सकते हैं।

  2. बफर वस्तुओं के साथ काम सी # में काफी दर्द हो सकता है। हां, वस्तुओं को बफर करने के लिए वर्दी मानों के सरणी अपलोड करने के तरीके हैं। लेकिन interleaved vertex डेटा का निर्माण, जहां विभिन्न घटकों के विभिन्न प्रकार होते हैं, सी # में और अधिक कठिन है। सी और सी ++ में, आपके पास स्मृति तक सीधी पहुंच है। इसलिए 3-वेक्टर फ्लोट्स के बाद 4-वेक्टर बाइट्स के लिए आसान है, सभी 16 बाइट प्रति वर्टेक्स में संग्रहीत हैं। यह सी # में और अधिक कठिन है।

  3. ग्राफिक्स कोड आम तौर पर कोड के अधिक प्रदर्शन के लिए महत्वपूर्ण क्षेत्रों में से एक है। आप आम तौर पर नियंत्रण चाहते हैं कि सी ++ प्रदान करता है अगर आप एक गेम जैसे उच्च प्रदर्शन प्रतिपादन अनुप्रयोग बना रहे हैं। सी # की बहुत सी विशेषताएं यहां इसके खिलाफ काम करती हैं।

सी # प्रदान करने का एकमात्र वास्तविक लाभ यह है कि ... यह सी # है। उस डिग्री के लिए जो आपको लगता है कि फायदे हैं, तो यह एक फायदा है।

+0

शायद ** सी ++/सीएलआई ** का उपयोग करना "दो दुनिया का सर्वश्रेष्ठ" होगा? –

+2

@UweKeim: कैसे? निश्चित रूप से, आपको कचरा संग्रह (सीएलआई भाग के लिए) मिलता है, और आप सीएलआर मानक पुस्तकालयों से बात कर सकते हैं। लेकिन आपको सी # की अच्छी भाषा विशेषताओं में से कोई भी नहीं मिलता है।और चूंकि सीएलआर मानक पुस्तकालय एक रेंडरर के लिए बहुत उपयोगी नहीं हैं, इसलिए यह इतना लाभ नहीं है। जितना अधिक आप इसका उपयोग कर सकते हैं वह आपके रेंडरर के साथ इंटरऑप है, लेकिन यह सीधे सी ++ में लिखा जाएगा। इस मामले में, आपके प्रस्तुतकर्ता को यह जानने या देखभाल करने की आवश्यकता नहीं है कि इसे सीएलआर से बुलाया जा रहा है। –

3

लाभ सबसे तुरंत आप के लिए प्रासंगिक है जो सी ++ compilers खुशी से स्वीकार करेंगे सी में लिखे उदाहरण कोड का उपयोग कर ट्यूटोरियल की प्रधानता है।

सबसे व्यापक रूप से लागू लाभ पोर्टेबिलिटी है: सी # माइक्रोसॉफ्ट के बच्चे & गैर-माइक्रोसॉफ्ट प्लेटफार्मों पर उस भाषा के लिए समर्थन सबसे अच्छा है। Wikipedia currently claims कि सी # के लिए नवीनतम आईएसओ मानक 2.0 है, जबकि माइक्रोसॉफ्ट ने 4.0 जारी किया है और पहले ही 5.0 विकसित कर रहा है!

+0

बस अपडेट करने के लिए: एमएस बिल्ड 2014 के अनुसार सी # 5 के लिए आईएसओ केवल कुछ महीने दूर है और एमएस रोज़लीन संकलक खोलता है। सी # वास्तव में क्रॉस प्लेटफार्म के मामले में प्रगति कर रहा है। – Kr0e

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