क्या आधुनिक C ++ C # की जगह ले रहा है? क्या Microsoft डेवलपर्स को C ++ अपनाने के लिए प्रेरित कर रहा है? [बन्द है]


91

मैं आधुनिक C ++ लोकप्रियता के बारे में सुनता हूं और C # या अन्य C- जैसी भाषाओं से C ++ में वापस जाने के बारे में कुछ बातचीत करता हूं।

मैं C ++ 11 विशेषताओं के बारे में जानता हूं, लेकिन मैं आपके अनुभवों को सुनना पसंद करूंगा, खासकर उन डेवलपर्स से जो C # से C ++ में माइग्रेट हुए हैं।

अधिक महत्वपूर्ण बात, क्या Microsoft C ++ का उपयोग करने के लिए डेवलपर्स को धक्का देता है? यदि हाँ, तो क्यों?


16
मुझे लगता है कि C ++ हमेशा एक अधिक व्यापक रूप से इस्तेमाल की जाने वाली भाषा रही है क्योंकि यह C # की तुलना में अधिक अच्छी तरह से स्थापित और आसानी से पोर्टेबल है। मुझे नहीं लगता कि यह C # की जगह ले रहा है। विंडोज़-आधारित व्यावसायिक अनुप्रयोगों के लिए, C # अभी भी एक आसान-से-सामान-प्राप्त भाषा के रूप में भारी मांग में है। सी ++ वास्तव में कभी नहीं गया। यह हाल ही में एक प्रकार का पुनरुत्थान था।
KChaloux 13

2
मुझे आशा नहीं है। जावा और सी # डेवलपर्स के लिए वरदान रहे हैं और वे अभी भी विकसित हो रहे हैं।
जेसी सी। स्लाइसर

4
C ++ और C # दोनों ही उपकरण हैं : किसी विशेष कार्य के लिए सबसे अच्छा चुनें। उदाहरण के लिए यदि आप क्रॉस-प्लेटफ़ॉर्म कोड लिखना चाहते हैं, तो आप C ++ का उपयोग करना चाह सकते हैं; यदि आप छोटे ऐप्स चाहते हैं, जिन्हें .NET रनटाइम इंस्टॉलेशन की आवश्यकता नहीं है, तो आप C ++ (CRT स्टेटिकली लिंक्ड के साथ) का उपयोग करना चाह सकते हैं; यदि आप Windows के लिए कुछ GUI टूल को RAD तरीके से विकसित करना चाहते हैं, तो आप C # और WinForms का उपयोग करना चाह सकते हैं; आदि
Mr.C64

6
यह एक अच्छा सवाल है, शायद कुछ रीवॉर्डिंग की जरूरत है। यह एक और भाषा नहीं है। ए बनाम भाषा बी। बल्कि यह विशेष रूप से माइक्रोसॉफ्ट की स्थिति है, यह क्यों बदल गया और वे कहां जा रहे हैं क्योंकि वास्तविकता यह है कि एमएस काफी बड़ा है कि जब वे कम से कम छोटे पहाड़ों पर प्रभाव डालते हैं हिलाने के लिए। और हां इस मामले में, वे निश्चित रूप से प्रभावित कर रहे हैं।
DXM

9
कृपया इसे सभी को दीवानी बनाए रखें। अशिष्टता बर्दाश्त नहीं की जाएगी।
मेपल_शाफ्ट

जवाबों:


95

हां, आपका संदेह सही है। Microsoft वापस आने और अधिक लोकप्रिय होने के लिए C ++ पर जोर दे रहा है।

मुझे अब यह नहीं मिल रहा है, लेकिन कुछ समय पहले मैंने एक Microsoft बड़े लोगों की एक प्रस्तुति देखी थी और पूरी बात डेवलपर्स की ओर बढ़ रही थी और विंडोज 8 और विशेष रूप से WinRT (.NET .NET के लिए प्रतिस्थापन) के रूप में रोल आउट के बारे में थी। Win32 एपीआई के रूप में)।

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

हालांकि, अब ध्यान मोबाइल और एआरएम-आधारित कंप्यूटरों की ओर अधिक हो रहा है (विंडोज 8 एआरएम के लिए संकलित करने के लिए पहली विंडोज रिलीज है) और कई लोगों का मानना ​​है कि वे बहुत अधिक लोकप्रिय हो जाएंगे और कुछ के लिए डेस्कटॉप पूरी तरह से बदल जाएगा। इसलिए फोकस (कम से कम माइक्रोसॉफ्ट की नजर में) C ++ पर वापस आ गया है क्योंकि अब हम बैटरी लाइफ की परवाह करते हैं। उच्च स्तरीय कोड = अधिक निर्देश = अधिक रस की आवश्यकता।

C ++ में इस परिवर्तन का समर्थन करने के लिए, उन्होंने एक पूरी तरह से नया विंडोज 8 प्रोग्रामिंग एपीआई पेश किया है, जिसे WinRT कहा जाता है (पिछली बार मैंने जाँच की थी, वैसे भी यह नाम था)। यह API कार्यक्षमता प्रदान करने के दायरे में .NET फ्रेमवर्क के विषय का अनुसरण करता है, लेकिन यह C ++ या जावास्क्रिप्ट में उन लोगों के लिए उपलब्ध होगा जो C # या जावास्क्रिप्ट में उन लोगों के लिए भी हैं जो HTML 5 / जावास्क्रिप्ट एप्स लिखना चाहते हैं। वे XAML (WPF में इस्तेमाल की जाने वाली तकनीक, उनके नए UI ढांचे) को C ++ में भी उपलब्ध करवा रहे हैं।

इसलिए मेरे लिए उस तरह के संकेत हैं कि अतीत में माइक्रोसॉफ्ट पर सी ++ पर निश्चित रूप से अधिक फोकस है।

अद्यतन # 1:

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

  1. WinRT .NET फ्रेमवर्क के लिए एक प्रतिस्थापन नहीं है, लेकिन यह अभी तक एक और विकल्प है जो एमएस विंडोज डेवलपर्स के पास है और एमएस उस दिशा में जाने के लिए लोगों को जोरदार धक्का दे रहा है। ऐसा प्रतीत होता है (कृपया अपनी लपटों को पकड़ें यदि यह 100% सही नहीं है) जो कि WinRT को मुख्य रूप से मॉडर्न UI ऐप्स के लिए लक्षित किया गया था, हालांकि नियमित डेस्कटॉप ऐप भी इसका लाभ उठाने में सक्षम होना चाहिए। ऐसा कहने के बाद, एमएस जोरदार तरीके से लोगों को जोर देकर लिख रहा है कि वे आधुनिक यूआई ऐप और बी) WinRT का उपयोग करना शुरू कर दें, क्योंकि .NET फ्रेमवर्क का उपयोग करने वाले लोगों का बैलेंस शिफ्ट प्रतिशत सबसे कम हो जाएगा।

  2. C ++ उच्च स्तर की भाषाओं जैसे C # या अजगर को प्रतिस्थापित नहीं करेगा। बस उन भाषाओं की तरह कभी C ++ को प्रतिस्थापित नहीं करेगा। यह शायद ओपी के सवाल का सबसे विवादास्पद हिस्सा था। लेकिन यह सब संतुलन के बारे में है और तथ्य यह हैं कि:

    • सी ++ समुदाय (एमएस इसका बड़ा हिस्सा होने के साथ) कम-संचालित उपकरणों के लिए एक अच्छी भाषा के रूप में सी ++ को मजबूत वापसी के लिए जोर दे रहा है, जिसका बाजार हिस्सा हाल ही में पागल की तरह बढ़ रहा है। यदि आप मुझ पर विश्वास नहीं करते हैं, तो पिछले साल शुरू हुई वार्ता की "गोइंगनेटिव" श्रृंखला की खोज करें।
    • Microsoft के सभी प्रयासों और प्रभाव के साथ, C ++ का उपयोग निश्चित रूप से बढ़ेगा, जबकि C # कुछ क्या गिरा सकता है। यह वही है जो एमएस के लिए जोर दे रहा है और जैसा कि मैंने ऊपर टिप्पणियों में कहा था, जब एमएस एक विचार के पीछे अपनी पूंजी डालता है, तो वे उद्योग के बड़े हिस्से को स्थानांतरित करते हैं। मुझे संभवतः किसी ऐसे व्यक्ति से प्रतिक्रिया मिलेगी जो बहस करेगा, "क्या उद्योग, मैं हमेशा लिनक्स पर रहा हूँ" और उसके लिए मेरी एकमात्र प्रतिक्रिया है, जागो! हां, वहाँ अन्य ओएस हैं, लेकिन डेस्कटॉप बाजार के अधिकांश उपभोक्ता और व्यवसाय दोनों ही इस समय विंडोज हैं और कोई भी गंभीर डेवलपर जो अपने समय के मूल्य को अधिकतम करना चाहता है, बहुत ही मूर्खतापूर्ण होगा कि वह डेस्कटॉप बाजार के उस हिस्से को लक्षित न करे।

इसलिए निष्कर्ष में: हां, MS C ++ पर वापस आने के लिए जोर दे रहा है, इसलिए सबसे अधिक संभावना है कि इसकी लोकप्रियता बढ़ेगी। नहीं, C ++ कभी C # की जगह नहीं लेगी।

अपडेट # 2:

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

  1. .NET फ्रेमवर्क किसी भी समय (या कभी भी) दूर नहीं जाएगा। बस हर उस तकनीक के बारे में जो 90 के दशक से थी, आज भी किसी न किसी रूप में है। तो उन लोगों के लिए जो .NET फ्रेमवर्क से जुड़े होते हैं: ए) इसके गायब होने के बारे में चिंता न करें और बी) इसके पक्ष में बहस करना बंद कर दें जैसे कि आपका जीवन इस पर निर्भर है, आपका एपीआई सुरक्षित है।

  2. WinRT बहुत सारी कार्यक्षमता को फिर से लागू करता है जो अतीत में Win32 और .NET फ्रेमवर्क एपीआई द्वारा प्रदान किया गया था। जो लोग चाहते हैं कि कार्यक्षमता में एक विकल्प होगा यदि वे WinRT, .NET फ्रेमवर्क का उपयोग करना चाहते हैं, या Win32 API के साथ जारी रखें (यह या तो नहीं है)। अगर आज WinRT वेब एप्लिकेशन के आसान निर्माण का समर्थन नहीं करता है, तो बहुत अच्छा मौका है कि यह भविष्य में उनका समर्थन करेगा।

Microsoft द्वारा घोषित स्थिति यह है कि WinRT एक बड़ी रूपरेखा है, जिसने Microsoft को क्लीन स्लेट के साथ शुरुआत करने का मौका दिया और Win32 API और .NET फ्रेमवर्क में सीखे गए पाठों का उपयोग करके एक एपीआई का निर्माण किया। मैंने उस वीडियो की तलाश करने की कोशिश की, और फिर भी वह नहीं मिल रहा है, लेकिन जिन चीजों का उल्लेख किया गया है उनमें से एक यह है कि .NET फ्रेमवर्क के कुछ निश्चित क्षेत्र हैं जिन्हें बेहतर / सरल / क्लीनर परिभाषित किया जा सकता था और WinRT उसी कार्यक्षमता को उजागर करता है उस नए क्लीनर इंटरफ़ेस में।


7
क्या यह सी + और उससे आगे, "व्हाई सी ++?" शीर्षक से हर्ब सटर की बात क्यों थी? चैनल 9 पर इसका एक वीडियो है, हालांकि मुझे इस समय इसे एक्सेस करने में परेशानी हो रही है, शायद इसलिए कि रेडमंड एक विशाल स्ट्रीमिंग इवेंट की मेजबानी कर रहा है। आपका तर्क समझ में आता है, लेकिन इस तरह के बयानों को वास्तव में कुछ संदर्भों के साथ बैकअप लेने की आवश्यकता होती है, क्योंकि यह Microsoft और किसी और के लिए एक प्रमुख रणनीतिक बदलाव का प्रतिनिधित्व करेगा जो Microsoft के उत्पादों के साथ सॉफ्टवेयर विकसित करता है।
रॉबर्ट हार्वे

13
WinRT .NET के लिए प्रतिस्थापन नहीं है। कृपया अपने तथ्यों को जांच में रखें।
व्यंग्यात्मक

4
@ यूफ़ोरिक: दूसरे शब्दों में। .NET फ्रेमवर्क Win32 API के लिए कभी भी रिप्लेसमेंट नहीं था। एक ही समय में, जब C # बाहर आया तो बहुत से लोग स्विच ऑन कर गए और C- स्टाइल फंक्शन कॉल्स को विंडोज़ DLL में बनाना भूल गए। MS अब उसी स्विच के लिए जोर दे रहा है। तो हाँ, .NET फ्रेमवर्क WinRT के हुड के नीचे मौजूद रहेगा और सुनिश्चित करें कि आप अभी भी .NET फ्रेमवर्क का उपयोग कर सकते हैं, लेकिन MS लोगों को नए ढांचे पर स्विच करने के लिए जोर दे रहा है।
DXM

21
@ जीबीजैनब - यह 100% झूठा है। पहली ऑल .NET कभी भी हमेशा Win32 लाइब्रेरी के लिए एक बहुत अच्छा आवरण था। दूसरा। Full.NET प्रोफाइल और 'WinRT' .NET प्रोफाइल के बीच केवल मामूली अंतर हैं , प्रमुख अंतर, बहुत सारे सामान हैं जिन्हें 10-15 साल पहले खराब तरीके से लागू किया गया था और बेहतर डिज़ाइन किए गए कोड से बदल दिया गया था। जब तक उन्हें Win32 लाइब्रेरी से छुटकारा नहीं मिल जाता है। आपकी टिप्पणी .NET और C # भाषा के संबंध में पूरी तरह से पूरी तरह से पता नहीं है।
रामहाउंड

6
वेब अनुप्रयोगों के लिए इसका उल्लेख नहीं है। .NET महान है। यदि यह कभी 'प्रतिस्थापन' होता, तो यह डेस्कटॉप ऐप्स के लिए होता, न कि वेब एप्लिकेशन के लिए।
जॉर्ज स्टॉकर

22

नहीं, विंडोज 8 आपको जिस भी भाषा में काम करने की जरूरत है (या जानता है) का उपयोग करने के बारे में है। जावास्क्रिप्ट, .Net भाषाएँ (C #) और C / C ++ सभी समान रूप से समर्थित हैं।

कुछ भी नहीं बदला जा रहा है और यह डेवलपर्स के लिए अंत तक वैसे भी है। हालांकि बेहतर बैटरी जीवन के लिए एक धक्का है जिसे WinRT आसान बनाता है।

अपवाद खेल है जहां C ++ को अधिक समर्थन मिल रहा है, खासकर विंडोज फोन 8 पर जबकि प्रबंधित भाषाओं में कोई मूल समर्थन नहीं है (उर्फ नो xna)।


1
+1 Microsoft स्मार्टफोन और टैबलेट बाजार में अपनाए गए विंडोज 8 को पाने के लिए बेताब है। Apple iPhone से अधिक राजस्व अकेले Microsoft की तुलना में कुल मिलाकर बनाते हैं । एक बाधा यह है कि स्थापित प्लेटफार्मों की तुलना में विंडोज फोन / टैबलेट के लिए बहुत कम एप्लिकेशन हैं। इसलिए वे अपनी पसंदीदा भाषा में, किसी के लिए भी ऐप बनाना संभव बना सकते हैं। C #, C ++, या JavaScript।
MarkJ

मुझे नहीं पता कि उन्होंने विंडोज़ फोन 7 से शुरू होने वाले देशी सी / सी ++ समर्थन को छोड़ने का फैसला क्यों किया। उस दिन के बाद से, हमारी कंपनी के लिए विंडोज़ + विंडोज़ मोबाइल 90% प्रमुख मंच से 10% महत्व में स्थानांतरित हो गया। 10% केवल सर्वश्रेष्ठ विकास साधनों (विजुअल स्टूडियो) के कारण है, अन्यथा हम विंडोज़ डेस्कटॉप के लिए भी उत्पाद नहीं बनाते हैं।
पी

1
@ मुझे यकीन नहीं है कि आप वहां क्या कह रहे हैं ..
डैनियल लिटिल

@Pavel -they ने WinPhone7 से मूल कोड गिरा दिया, फिर WinPhone8 से प्रबंधित कोड गिरा दिया। हो सकता है कि आप अभी प्लेटफ़ॉर्म पर फिर से जा सकते हैं, या इसे तब तक अनदेखा कर सकते हैं, जब तक कि इसे बहुत बड़ा बाज़ार हिस्सा न मिल जाए।
gbjbaanb

19

मैं C ++ 11 सुविधाओं के बारे में जानता हूं लेकिन मैं आपके अनुभव सुनना चाहूंगा

सोचा था कि लोग सामान्य उद्देश्य प्रोग्रामिंग के लिए C ++ ओवर सी # (या बहुत अधिक किसी भी अन्य पोस्ट [गैर-php] परिवर्तनशील) को पसंद करेंगे, हंसी के योग्य है । C ++ 11 कुछ अच्छे लापता बिट्स को जोड़ता है, लेकिन यह अभी भी एक कुत्ते को पैरों को हिला रहा है

C ++ में कुछ अच्छे niches हैं, और यह अभी भी सीमित कंपाइलर समर्थन वाले कुछ प्लेटफार्मों पर सबसे अच्छा विकल्प है। लेकिन नहीं, आधुनिक सी ++ कहीं भी कुछ भी जगह के करीब नहीं है सिवाय शायद पुरातन, टूटे सी ++।


31
आप जो लिख रहे हैं, उसे पढ़ें। आप स्पष्ट रूप से दावा कर रहे हैं कि C # पर सामान्य प्रयोजन प्रोग्रामिंग के लिए C ++ का उपयोग करना हंसी के योग्य है । क्या यह ईमानदारी से आप पर विश्वास करते हैं, या यह केवल आपकी अपनी अतिरंजित राय है?
zxcdw

38
@zxcdw - अगर मुझे 100 सामान्य प्रोग्रामिंग समस्याएं हैं, तो मैं उनमें से ~ 90 को तेजी से, बेहतर तरीके से करूँगा, C # या Java या Python या Scala या ... का उपयोग करके कम बग के साथ। यह मेरे द्वारा ज्ञात प्रत्येक पेशेवर प्रोग्रामर का सामान्य दृष्टिकोण है; यहां तक ​​कि जो लोग C ++ को अपनी प्राथमिक भाषा के रूप में उपयोग करते हैं।
तेलस्टिन

33
@zxcdw: मैं एक हार्डकोर C ++ डेवलपर हूं। मैंने 15+ वर्षों से C ++ किया है और ज्यादातर बैक-एंड ऐप्स पर काम किया है जिन्हें C ++ की आवश्यकता है। मैं सभी एसटीएल और आधे बूस्ट पर रहा हूं। अपनी टीम के बारे में बहुत कुछ जानने के लिए मैंने कुछ स्थानों पर टेम्पलेट मेटाप्रोग्रामिंग की शुरुआत की है, जिनके बारे में मुझे लगा कि मैं इसके लायक था। बिंदु मैं बनाने की कोशिश कर रहा हूं कि मैं सी ++ से प्यार करता हूं और इसके साथ काम कर रहा हूं। ऐसा कहने के बाद, मैं टेलस्टीन से सहमत हूं, अगर मुझे एक सामान्य समस्या है, जिसे C ++ की पेशकश की आवश्यकता नहीं है, तो मैं सी # या यहां तक ​​कि पायथन को चुनूंगा। वे उच्च स्तरीय भाषाएं हैं और आप बस उनमें तेजी से काम कर सकते हैं। कम से कम विन देवों के लिए यह सच है
DXM

5
@MadKeithV - अगर मैं OSX, iOS और Android पर चलाए जा रहे C # ऐप पर काम नहीं कर रहा था, तो मैं उस क्रॉस प्लेटफॉर्म तर्क को थोड़ा और वज़न दे सकता हूं। यहां तक ​​कि इसे अनदेखा करते हुए, गैर-सी # भाषाएं जिन्हें मैंने सूचीबद्ध किया है, लगभग हमेशा सी ++ की तुलना में बेहतर विकल्प हैं जब क्रॉस-प्लेटफॉर्म एक मजबूत चिंता का विषय है। C ++ 11 उन विकल्पों को दूर धकेलने के लिए बहुत कुछ नहीं कर रहा है।
तेलस्टाइन

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

2

DXM ने लिखा है:

इसलिए फोकस (कम से कम माइक्रोसॉफ्ट की नजर में) C ++ पर वापस आ गया है क्योंकि अब हम बैटरी लाइफ की परवाह करते हैं। उच्च स्तरीय कोड = अधिक निर्देश = अधिक रस की आवश्यकता।

इस शब्द के अनुसार जावा को Google की Android के लिए प्राथमिक भाषा / रूपरेखा के रूप में चुनना एक गलती थी। यह नहीं था। उच्च स्तर की भाषा का मतलब आमतौर पर चीजों को तेजी से प्राप्त करना होता है और मुझे लगता है कि यह माइक्रोसॉफ्ट और गूगल के लिए सबसे महत्वपूर्ण चीज है। प्लेटफ़ॉर्म के लिए जितने अधिक और बेहतर एप्लिकेशन बनाए जाते हैं, उतना ही ओएस निर्माता का लाभ होता है।

दूसरी ओर, विंडोज के लिए सी ++ में अभी भी बहुत सारे सॉफ्टवेयर हैं, इसलिए उन डेवलपर्स को सी # / जावास्क्रिप्ट / कुछ भी स्विच करने के लिए धक्का देना पागल हो जाएगा। Microsoft Win8 ऐप को अधिक से अधिक डेवलपर्स के लिए विकसित करने की संभावना देने पर ध्यान केंद्रित करता है क्योंकि यह संभव है कि इस कारण से मेरी राय में उन्होंने Win8 विकास स्टैक में C ++ और जावास्क्रिप्ट का समर्थन करने का निर्णय लिया।


5
जावा एक गलती थी। यदि आप कच्चा प्रदर्शन चाहते हैं (और आप अक्सर करते हैं) तो आप C / C ++ में लिखना चाहते हैं। यदि आप डेवलपर उत्पादकता चाहते हैं तो आप पायथन या पीएचपी या रूबी या जेएस जैसी उच्च स्तरीय भाषा चाहते हैं। जावा (और C #) मध्य-ग्राउंड सिस्टम हैं जो आपको न तो सर्वश्रेष्ठ प्रदर्शन देते हैं और न ही सर्वश्रेष्ठ उत्पादकता। जैसा कि यह है, C ++ इतना बुरा नहीं है - जब आप जानते हैं कि आप क्या कर रहे हैं, तो आप इससे अच्छी उत्पादकता प्राप्त कर सकते हैं।
gbjbaanb

8
@gbjbaanb मैं आपकी टिप्पणी के बारे में मिश्रित भावनाएँ रखता हूँ: कुछ साल पहले, जावा और C # को अमूर्त स्तर पर रखने से समझ में आता होगा, लेकिन .NET के नए संस्करणों में LINQ, लैम्ब्डा एक्सप्रेशन और async प्रोग्रामिंग सुविधाओं की शुरूआत हुई है। C # को एक उच्च स्तर पर ले जाया गया (जावा JDK8 में कार्यात्मक प्रोग्रामिंग की कमी को पकड़ने जा रहा है, लेकिन यह अभी भी प्रारंभिक चरण में है)।
कोडस्पार्कल

2
@gbjananb सौभाग्य से, WCF केवल .NET का एक छोटा सा हिस्सा है, और सामान्य है कि C # भाषा पर लागू करने के लिए अमान्य है। क्या आपने वास्तव में .NET 3 के बाद से नई सुविधाओं का उपयोग किया है ? क्योंकि वीएस इतना बड़ा विकास का माहौल नहीं है (वास्तव में, यह वास्तव में रेस्पर के बिना कष्टप्रद है)। इसलिए, यह देखते हुए कि यह बहुत ही साइट (और पूरे एसई नेटवर्क) को C # के साथ बनाया गया है, आपकी टिप्पणी थोड़ी गलत है।
कोडपार्कल

1
@rotman कृपया अपने स्वयं के उत्तर में अन्य लोगों के उत्तरों का जवाब न दें। उत्तर केवल मूल प्रश्न को संबोधित करना चाहिए :)
एंड्रेस एफ।

6
@ जीबीजैनब: मैं कहूंगा कि यह इस बात का सबूत है कि मिडिल-ग्राउंड सिस्टम आपको न तो सर्वश्रेष्ठ प्रदर्शन देता है और न ही सर्वश्रेष्ठ उत्पादकता एक गलती है। यह देखते हुए कि प्रदर्शन और उत्पादकता दोनों महत्वपूर्ण हैं, सबसे अच्छा समाधान एक है जो दोनों को संतुलित करता है, और जावा या सी # की तरह एक मध्य-ग्राउंड विकल्प कई उपयोग के मामलों के लिए एक उत्कृष्ट विकल्प है।
कार्सन 63000

2

C ++ में अभी भी हैडर फाइलें, लचीली प्रीप्रोसेसर (#define) हैं, ... ऐसे सामान को कुछ लोगों ने इन सुविधाओं को 'बुराई' या 'प्रबंधन करना मुश्किल' माना।

दूसरी ओर, सी #, मेटाडेटा का उपयोग करें, हेडर फ़ाइलों को लिखने और बनाए रखने की कोई आवश्यकता नहीं है।

Microsoft के बारे में C ++ में अधिक सुविधाएँ जोड़ना: कोई आश्चर्य की बात नहीं है।

हर C ++ कंपाइलर C ++ 11 सुविधाओं सहित और अधिक सुविधाएँ जोड़ रहा है। जीसीसी भी है।


7
यदि आप सभी C ++ के बारे में बुरा कह सकते हैं, तो यह अच्छी तरह से हेडर फाइल है, आपने परोक्ष रूप से इस बिंदु को साबित कर दिया है। मैं गंभीर सी # मुद्दों, गैर-पोर्टेबिलिटी, गैर-नियतात्मक, रन-टाइम ओवरहेड, मालिकाना, आदि की एक पूरी मेजबानी की सूची कर सकता हूं
user805547

1
सही काम के लिए सही टूल का उपयोग करें। C ++ इंटेल जैसी कई कंपनियों के लिए महान है, जिनके लिए विभिन्न मानवरहित कोड परफॉर्मेंस के लिए मेडल प्रोजेक्ट्स के लिए निम्न स्तर की आवश्यकता होती है, लेकिन अगर आपको एक वेबसाइट / वेब सेवा की आवश्यकता है, जो हर कंपनी के लिए C ++ के साथ सौभाग्य से बेहतर हो!
टॉम स्टिकेल

1

यह सिर्फ मेरे लिए हो सकता है, लेकिन, मुझे C ++ की तुलना में अधिक सादा सी उपयोग दिखाई देता है।

यह तथ्य कि C ++ ने सादे C को निगल लिया है, यह पता लगाना कठिन बना देता है कि कौन क्या उपयोग कर रहा है।

लेकिन C ++ की तुलना में बहुत अधिक C ओपन सोर्स प्रोजेक्ट हैं।

मेरा विचार है कि यदि आपको धातु की गति उपयोग सी के करीब की जरूरत है। यदि आपको उचित प्रदर्शन उपयोग सी # या जावा के साथ लचीलेपन और प्रबंधन क्षमता की आवश्यकता है। यदि आप चाहते हैं कि एक साफ डिजाइन जल्दी से पायथन, स्काला, ग्रूवी या पूरी तरह से चित्रित भाषाओं में से किसी एक का उपयोग करें।


2
नहीं, मुझे लगता है कि आप यहाँ गलत हैं। C ++, यदि आप अपवादों को अक्षम करते हैं, तो C के समान धातु के करीब है, जब तक आप जानते हैं कि आप क्या कर रहे हैं। समस्या एबीआई है। C ++ में स्थिति को अभी भी हल किया जाना है, वे इस पर काम कर रहे हैं। एक बार यह हो जाने के बाद, मुझे लगता है कि C ++ के बजाय C का उपयोग करने के लिए बहुत अपील नहीं होगी जब वास्तव में C ++ में बेहतर त्रुटि की जाँच होती है और एक सुपरसेट होता है, इसलिए उपकरण उस बिंदु पर बेहतर होगा।
जर्मेन डायगो

0

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


C ++ अभी भी गैर-ऊर्ध्वाधर वाणिज्यिक विंडोज सॉफ्टवेयर विकास में भारी रूप से उपयोग किया जाता है।
बिट-टिडलर

1
C ++ सबसे पेशेवर टूल की तरह है जिसका उपयोग आप सॉफ्टवेयर लिखने के लिए कर सकते हैं। लेकिन आपको अच्छा कोड लिखने के लिए कुशल होना होगा, क्योंकि यह काफी स्वतंत्र है और इसमें कुछ क्विर्क हैं जो पश्चगामी संगतता के लिए करते हैं। मुझे लगता है कि यह स्क्रिप्टिंग को छोड़कर सभी तरह के सॉफ्टवेयर के लिए वास्तव में अनुकूल है। समस्या सीखने की अवस्था है। आधुनिक पुस्तकालयों के साथ यह उत्पादकता में भी बहुत सक्षम है। और सोचें कि यदि एप्लिकेशन सफल है, तो आपको इसे पोर्ट करना होगा। सी / सी ++ कोडबेस के साथ पोर्टिंग आसान है, उपलब्धता को संकलित करना। C ++ में लिखे गए सॉफ्टवेयर की सूची अंतहीन है: amazon, google, dropbox, telecom, games, facebook ...
जर्मेन डायगो

-4

नहीं, C ++ C # को प्रतिस्थापित नहीं कर सकता क्योंकि सभी गैर- Direct3D Windows Phone 8 ऐप्स को C # के साथ विकसित किया जाना चाहिए। आप केवल C ++ या HTML5 / Javascript का उपयोग करके wp8 ऐप स्टोर में एप्लिकेशन विकसित और प्रकाशित नहीं कर सकते। और जब तक Microsoft इस प्रतिबंध को नहीं हटाता, C ++ कुछ भी प्रतिस्थापित नहीं कर रहा है। नतीजतन, मुझे यकीन है कि बहुत कम लोग WP8 के लिए विकसित होंगे। गरीब नोकिया, एक बार और हार।

यहाँ Microsoft देव केंद्र से अंश है :

Windows Phone 8 XAML UI का समर्थन C ++ कोड-पीछे ऐप मॉडल के साथ नहीं करता है जो Windows स्टोर ऐप्स के लिए समर्थित है।

अभी तक एक और:

क्या इसका मतलब यह है कि मैं Windows PHone 8 पर ऐप विकसित करने के लिए XAML के साथ C ++ का उपयोग नहीं कर सकता, क्या मैं C # + XAML का उपयोग करने के लिए प्रतिबंधित हूं?

वह सही है। XAML का उपयोग केवल C # के साथ किया जा सकता है। C ++ का उपयोग C # प्रोजेक्ट द्वारा उपयोग किए जाने वाले WinRT घटक के लिए किया जा सकता है।

यहां तक ​​कि Microsoft MVP का दावा है कि यह अफवाह Microsoft द्वारा खुद की गई एक जानबूझकर गलत सूचना है:

मुझे पसंद है कि Microsoft WinRT और Windows Phone 8 के साथ क्या कर रहा है, लेकिन मैं चाहता हूं कि वे इसके बारे में कुछ भी न बताएं क्योंकि यह उपयोगकर्ताओं को इस मामले की पूरी तरह से सच्चाई जानने के बाद ही निराश कर देगा।

और यह जानबूझकर गलत विपणन लोगों के महीनों को बर्बाद करता है :

इस MONTHS AGO को जानकर अच्छा लगा होगा, इससे पहले कि मैं अपने मेट्रो ऐप के साथ सभी मूल कोड रूट नीचे जाता।


1
आपके लिंक दोनों राज्य को आप WP8 विकास के लिए C ++ का उपयोग कर सकते हैं, और यह केवल XAML है जिसके लिए C # की आवश्यकता है। इसके अलावा, Direct3D केवल C ++ द्वारा समर्थित है।
ली

@Lee, क्या आप WP8 के लिए C # का उपयोग किए बिना गैर- Direct3D ऐप विकसित कर सकते हैं?
.zgür
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.