मुझे किन कारणों के लिए जावा और सी ++ पर सी # चुनना चाहिए? [बन्द है]


46

सी # इन दिनों लोकप्रिय हो रहा है। मैंने सुना है कि वाक्यात्मक रूप से यह लगभग जावा जैसा ही है। जावा और C ++ लंबे समय से मौजूद हैं। मुझे किन कारणों के लिए जावा और सी ++ पर सी # चुनना चाहिए?


16
जैसा कि प्रश्न लिखा गया था, रचनात्मक नहीं "एक भाषा बेहतर है?" ऐसे सवाल जो यहां ऑफ टॉपिक हैं। मैंने इसे एक संपादन के साथ और अधिक रचनात्मक बनाने का प्रयास किया है क्योंकि यह वास्तव में अच्छा है, अच्छी तरह से सोचा जवाब है। फिर भी, कृपया इस प्रकृति के प्रश्न पूछते समय FAQ और इस ब्लॉग को ध्यान में रखें।
एडम लेअर

मुझे कुछ edgier आइटम जोड़ें। .NET के पास अपनी भाषा के लिए एक अच्छी तरह से परिभाषित DOM ( जैसे CodeDOM ) है और परिणामस्वरूप रनटाइम पर गतिशील रूप से चीजें पैदा करना बहुत सरल और अधिक कुशल है। यह एक अवसंरचनात्मक क्षमता के रूप में भी सहायक हो सकता है। साथ ही, टाइप सिस्टम में सभी देशी W3 प्रकारों के साथ 1-टू -1 मैच होता है। इसके मूल में, W3 और अन्य इंटरॉप्स शुरू से ही भाषा में पके हुए थे। अन्य भाषाओं के लिए, इन चिंताओं को सिर्फ उकसाया गया था, और उनके लिए कई चुनौतियां पेश की गईं। इसके अलावा, यदि आप बहुत सारी भाषाओं और / या प्रोटोकॉल के साथ इंटरोपिंग करेंगे तो .NET बहुत मजबूत होगा
जोकि 8

5
अरे, जोजीकी, अपनी टिप्पणी को प्रश्न के उत्तर के रूप में जोड़ें ।
एंथनी मस्तरीन

1
असली सवाल यह है: किन कारणों से मुझे नीमरेल, एफ * और एफ # ओवर सी # चुनना चाहिए? (यानी, तीनों भाषाएँ MS से हैं और तीनों ही बेहतर हैं)
mrsteve

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

जवाबों:


76

प्रश्न यह होना चाहिए कि "आधुनिक, विशिष्ट अनुप्रयोग विकास के लिए कौन सी भाषा बेहतर है?"।

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

तो मेरे सिर के ऊपर से (कुछ तर्क दोनों भाषाओं पर लागू होते हैं) ...

C # C ++ से बेहतर है:

  • इसमें देशी कचरा-संग्रह है।
  • यह आपको क्लास-मेथड्स के हस्ताक्षरों को फ्री फ़ंक्शंस के रूप में व्यवहार करने की अनुमति देता है (यानी सांख्यिकीय रूप से टाइप किए गए thisसूचक तर्क की अनदेखी ), और इसलिए कक्षाओं के बीच अधिक गतिशील और लचीले संबंध बनाते हैं। संपादित करें यदि आपको यह पता नहीं है कि इसका क्या मतलब है, तो एक सदस्य विधि को शून्य देने और शून्य को एक void (*ptr)()चर में स्वीकार करने का प्रयास करें। C # प्रतिनिधियों ने thisसूचक को अपने साथ रखा, लेकिन उपयोगकर्ता को हमेशा इस बारे में परवाह नहीं करनी चाहिए। वे void()किसी भी वर्ग के किसी भी अन्य void()प्रतिनिधि को एक विधि प्रदान कर सकते हैं ।
  • यह एक बहुत ही उपयोगी सामान के साथ एक विशाल मानक पुस्तकालय है जो अच्छी तरह से लागू है और उपयोग करने में आसान है।
  • यह प्रबंधित और देशी कोड ब्लॉक दोनों के लिए अनुमति देता है।
  • असेंबली का संस्करण आसानी से DLL नरक की समस्याओं को दूर करता है।
  • आप असेंबली-आंतरिक होने के लिए कक्षाएं, विधियां और फ़ील्ड सेट कर सकते हैं (जिसका अर्थ है कि वे डीएलएल के भीतर कहीं से भी सुलभ हैं जो वे घोषित किए गए हैं, लेकिन अन्य विधानसभाओं से नहीं)।

इसमें C # जावा से बेहतर है:

  • बहुत सारे शोर (ईजेबी, निजी स्थिर वर्ग कार्यान्वयन, आदि) के बजाय आपको गुण और घटना जैसे सुरुचिपूर्ण और मैत्रीपूर्ण देशी निर्माण मिलते हैं।
  • आपके पास असली जेनेरिक हैं (न कि खराब कास्टिंग जोक जिसे जावा जेनेरिक कहता है), और आप उन पर रिफ्लेक्शन कर सकते हैं।
  • यह मूल संसाधन-प्रबंधन मुहावरों ( usingकथन) का समर्थन करता है । जावा 7 भी इसका समर्थन करने जा रहा है, लेकिन C # ने इसे एक लंबे समय तक ले लिया है।
  • इसने अपवादों की जाँच नहीं की है :) (यह बहस अच्छी है कि यह अच्छा है या बुरा)
  • यह विंडोज के साथ गहराई से एकीकृत है, यदि आप यही चाहते हैं।
  • इसमें लैम्ब्डा और लिनक्यू है, इसलिए थोड़ी मात्रा में कार्यात्मक प्रोग्रामिंग का समर्थन करता है।
  • यह स्पष्ट रूप से जेनेरिक कोवरियन और कंट्रोवर्सी दोनों के लिए अनुमति देता है।
  • यह गतिशील चर है, अगर आप उन्हें चाहते हैं।
  • yieldबयान के साथ बेहतर गणना समर्थन ।
  • यह आपको नए मान (या गैर-संदर्भ) प्रकारों को परिभाषित करने की अनुमति देता है।

संपादित करें - टिप्पणियों को संबोधित करना

  • मैंने यह नहीं कहा कि C ++ देशी RAII का समर्थन नहीं करता है। मैंने कहा कि जावा के पास यह नहीं है (आपको स्पष्ट रूप से एक कोशिश / अंत में करना होगा)। C ++ में ऑटो पॉइंटर्स हैं जो RAII के लिए बहुत अच्छे हैं, और (यदि आप जानते हैं कि आप क्या कर रहे हैं) कचरा-संग्रह भी स्थानापन्न कर सकते हैं।
  • मैंने मुफ्त कार्यों का अनुकरण करने के बारे में कुछ नहीं कहा । लेकिन उदाहरण के लिए, यदि आपको एक thisपॉइंटर द्वारा किसी क्षेत्र तक पहुंचने की आवश्यकता है , और उस विधि को बांधें जो इसे एक जेनेरिक फ़ंक्शन पॉइंटर (यानी एक ही कक्षा में नहीं) में करता है, तो ऐसा करने का कोई मूल तरीका नहीं है। C # में आपको मुफ्त में मिलता है। आपको यह भी पता नहीं है कि यह कैसे काम करता है।
  • "नि: शुल्क कार्यों के रूप में सदस्य विधियों का इलाज करके" मेरा मतलब है कि आप उदाहरण के लिए, मूल विधि से एक नि: शुल्क फ़ंक्शन हस्ताक्षर के लिए बाध्य नहीं कर सकते, क्योंकि सदस्य विधि "गुप्त रूप से" thisसूचक की आवश्यकता है ।
  • usingबयान, स्पष्ट रूप से IDisposable रैपर के साथ साथ, आरए II का एक बड़ा उदाहरण है। इस लिंक को देखें । गौर करें कि आपको C ++ में RAII की उतनी आवश्यकता नहीं है जितनी आप C ++ में करते हैं, क्योंकि आपके पास GC है। विशिष्ट समय के लिए आपको इसकी आवश्यकता होती है, आप स्पष्ट रूप से usingकथन का उपयोग कर सकते हैं । एक और थोड़ा अनुस्मारक: स्मृति को मुक्त करना एक महंगी प्रक्रिया है। जीसी ने बहुत सारे मामलों में अपने प्रदर्शन का लाभ उठाया है (विशेषकर जब आपके पास बहुत मेमोरी है)। मेमोरी लीक नहीं होगी, और आप डीलक्लॉकिंग पर बहुत समय खर्च नहीं करेंगे। क्या अधिक है, आवंटन और भी तेज़ है, क्योंकि आप हर बार मेमोरी आवंटित नहीं करते हैं, केवल एक बार ही। कॉलिंग newबस एक अंतिम वस्तु-सूचक बढ़ रहा है।
  • "C # इससे भी बदतर है कि इसमें कचरा संग्रह है"। यह वास्तव में व्यक्तिपरक है, लेकिन जैसा कि मैंने सबसे ऊपर कहा, अधिकांश आधुनिक, विशिष्ट अनुप्रयोग विकास के लिए, कचरा संग्रह एक लाभ का एक नरक है।
    C ++ में, आपकी पसंद या तो मैन्युअल रूप से आपकी मेमोरी का उपयोग करने का प्रबंधन करती है , newऔर deleteजो अनुभवजन्य रूप से हमेशा यहां और वहां त्रुटियों की ओर जाता है, या (C ++ 11 के साथ) आप ऑटो पॉइंटर्स को मूल रूप से उपयोग कर सकते हैं, लेकिन ध्यान रखें कि वे बहुत सारे और बहुत सारे जोड़ते हैं कोड के लिए शोर । इसलिए जीसी के पास अभी भी एक बढ़त है।
  • "जेनरिक टेम्प्लेट की तुलना में कमजोर होते हैं" - मुझे नहीं पता कि आपको यह कहां से मिला है। टेम्प्लेट के अपने फायदे हो सकते हैं, लेकिन मेरे अनुभव में बाधाएं, जेनेरिक पैरामीटर टाइप-चेकिंग, कंट्रोवर्सी और कोवरियनस बहुत मजबूत और सुरुचिपूर्ण उपकरण हैं। टेम्प्लेट्स में ताकत यह है कि वे आपको थोड़ी सी भाषा के साथ खेलने देते हैं, जो शांत हो सकता है, लेकिन जब आप कुछ डिबग करना चाहते हैं तो बहुत सारे सिरदर्द हो सकते हैं। तो सभी सभी में, टेम्पलेट्स की अपनी अच्छी विशेषताएं हैं, लेकिन मुझे जेनरिक अधिक व्यावहारिक और साफ लगता है।

5
और अगर आप अभी भी C ++ के लिए गारबेज कलेक्टर चाहते हैं, तो आप एक डाउनलोड कर सकते हैं ।
fredoverflow


6
प्रदर्शन कारणों से, जावा की तुलना में C # में एक अन्य महत्वपूर्ण विशेषता "संरचना" है, एक प्रकार की वस्तु जिसे स्टैक पर संग्रहीत किया जा सकता है (या विशेष मामलों में सीपीयू रजिस्टरों में) या अन्य ढेर वस्तुओं के भीतर एम्बेडेड। वे अक्सर 1-4 क्षेत्रों के साथ छोटी वस्तुओं के लिए उपयोग किए जाते हैं, जैसे कि एक्स, वाई समन्वय जोड़े।
क्वर्टी

2
@LokiAstari मन समझा रहा है? जब तक आप ईवेंट हैंडलर को अपंजीकृत करना याद रखते हैं और कक्षाओं में डिस्पोज़ पैटर्न का उपयोग करते हैं, जिसमें देशी रैपर होते हैं, आप ठीक होने जा रहे हैं। C ++ में मेमोरी मैनेजमेंट की तुलना में यह जानना और याद रखना बहुत कम है।
यम मारकोविक

2
-1 से मुझे याद आ रहा है कि "C ++ उस में C # से बेहतर है ..." और "Java # C से बेहतर है ..."। मुझे नहीं लगता कि सभी क्षेत्रों में C # श्रेष्ठ है, इसलिए इन दोनों वर्गों के बिना उत्तर में कुछ महत्वपूर्ण जानकारी का अभाव है।
जियोर्जियो

30

पर्यावरण

.NET फ्रेमवर्क और विंडोज क्लाइंट

क्लाइंट कंप्यूटर पर विंडोज का वर्चस्व वाला ऑपरेटिंग सिस्टम है। विंडोज अनुप्रयोगों के लिए सबसे अच्छा जीयूआई फ्रेमवर्क .NET फ्रेमवर्क के साथ एक साथ Winforms और WPF है । .NET फ्रेमवर्क के साथ काम करने के लिए सबसे अच्छी प्रोग्रामिंग भाषा है और यह एपीआई सी # है । जावा इसके लिए कोई विकल्प नहीं है। और C ++ स्वचालित मेमोरी प्रबंधन के बिना एक पुरानी भाषा है। C # C ++ के समान है, लेकिन इसमें स्वचालित मेमोरी प्रबंधन है और आपको पॉइंटर्स के साथ काम नहीं करना है, जो आपको अधिक उत्पादक बनाते हैं। C ++ अभी भी कुछ मामलों के लिए सबसे अच्छा विकल्प हो सकता है, लेकिन फॉर्म-गहन डेटाबेस अनुप्रयोगों के लिए नहीं जो व्यवसाय में सामान्य है।

IIS और Windows सर्वर

यदि आप Windows परिवेश में और C # के साथ काम करने के लिए उपयोग किए जाते हैं, तो आपको मूल प्रशासन के लिए सर्वर प्रोग्रामिंग और विंडोज सर्वर के लिए IIS सीखने के लिए कम से कम निवेश की आवश्यकता होगी।

सक्रिय निर्देशिका और विंडोज सर्वर

यदि आप ऐसे सॉफ़्टवेयर विकसित कर रहे हैं जो कंपनी नेटवर्क में तैनात होने जा रहे हैं, तो संभव है कि वे सक्रिय निर्देशिका के लिए Windows सर्वर का उपयोग करके Windows केंद्रित वातावरण का उपयोग करें। ऐसे वातावरण में यह C # और .NET फ्रेमवर्क में बने समाधान को एकीकृत और तैनात करने में आसान है

व्यक्तिगत रूप से, मैं एक जावा डेवलपर हूं, सी # डेवलपर नहीं, लेकिन मैं वेब के साथ काम करता हूं। अगर मैं विंडोज नेटवर्क के लिए नेटवर्क एप्लिकेशन विकसित कर रहा था तो मैं C # पर स्विच करूंगा। लेकिन मैं लिनक्स आधारित वेब सर्वर के लिए जावा पसंद करता हूं। मैं एम्बेडेड सिस्टम के लिए C ++ का चयन करूंगा मैं कई निर्भरताएं नहीं करूंगा।

हां, C # C ++ और Java की तुलना में अधिक आधुनिक सुविधाओं के साथ एक बेहतर भाषा है, लेकिन C # को चुनने के लिए यह सबसे महत्वपूर्ण बात नहीं है

सारांश

आपके सॉफ़्टवेयर के लिए वातावरण C # चुनने के लिए सबसे महत्वपूर्ण है । यदि आप Windows क्लाइंट, Windows सर्वर, सक्रिय निर्देशिका, IIS और शायद SQL सर्वर के साथ वातावरण में काम करते हैं तो C # .NET फ्रेमवर्क के साथ सबसे अच्छी भाषा है ।

यदि आप उदाहरण के लिए वेब सेवाओं के साथ यूनिक्स वातावरण में काम करते हैं, तो जावा मेरी पसंद होगी। और यदि आप एम्बेडेड सिस्टम के साथ काम करते हैं या हार्डवेयर उपकरणों के साथ एकीकृत करना चाहते हैं तो C ++ एक अच्छा विकल्प होगा।


3
बिल्कुल - यही कारण है कि मैं C # का उपयोग वास्तव में किसी अन्य कारण से नहीं करता हूं
मर्फ़

आप निश्चित रूप से मोनो, मोनोआटच और मोनोडायर के माध्यम से अन्य प्लेटफार्मों पर .NET का उपयोग कर सकते हैं, लेकिन मेरे बेंचमार्क ने मोनो को विंडोज के लिए .NET की तुलना में काफी धीमा पाया, और माइक्रोसॉफ्ट का अपना कॉम्पैक्ट फ्रेमवर्क विंडोज सीई पर बहुत धीमा है: codeproject.com/B/cross -platform / BenchmarkCppVsDotNet.aspx ... बेशक, WPF केवल विंडोज पर उपलब्ध है (लेकिन मुझे यह बिल्कुल भी पसंद नहीं है।)
20

आपको कौन सी निर्भरता से मतलब है, "मैं एम्बेडेड सिस्टम के लिए C ++ का चयन करूंगा, मैं कई निर्भरताएं नहीं करूंगा।" क्या आपका मतलब जावा लाइब्रेरी से है?
पुकल

@Puckl हाँ, लेकिन ज्यादातर jvm / jre।
जोनास

रूबी, अजगर, Node.js आदि: "आप जैसे वेब सेवाओं के साथ एक यूनिक्स वातावरण में काम करते हैं" कुछ अन्य भाषाओं और चौखटे कि माना जा सकता है देखते हैं
MarkJ

15

सी # और जावा

C # एक बहुत अच्छी भाषा है अगर:

  • आप सामान्य उद्देश्य वस्तु उन्मुख विकास करना चाहते हैं। यह एक क्लासिक, वैधानिक रूप से टाइप की गई OOP भाषा है।
  • आप केवल Microsoft प्लेटफ़ॉर्म को लक्षित कर रहे हैं (यह याद रखने योग्य है कि Microsoft ने # बनाने के लिए जावा को प्रभावी रूप से क्लोन किया था क्योंकि वे एक जावा जैसी भाषा चाहते थे जो लोगों को विंडोज में लॉक कर दे। वे जावा का उपयोग कर सकते थे, लेकिन इससे लोग आसानी से एप्लिकेशन चला सकेंगे। अन्य प्लेटफार्म ....)

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

दूसरी ओर, जावा के कुछ बड़े फायदे भी हैं:

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

इसलिए जावा बनाम सी # एक बहुत ही करीबी कॉल है और यह वास्तव में नीचे आता है कि क्या आप माइक्रोसॉफ्ट शिविर या ओपन सोर्स / क्रॉस-प्लेटफॉर्म शिविर में रहना चाहते हैं।

व्यक्तिगत रूप से, मुझे जावा पसंद है क्योंकि:

  • लाइब्रेरी इकोसिस्टम मेरे विचार से अधिक महत्वपूर्ण है कि तथ्य यह है कि सी # में जावा की तुलना में अच्छे सिंटैक्स हैं
  • लंबे समय में, मैं चाहता हूं कि मेरे सभी कोड ठीक से क्रॉस-प्लेटफ़ॉर्म पर हों और क्लाउड पर सस्ते लिनक्स मशीनों के बड़े समूहों पर चलने में सक्षम हों।
  • क्लोजर अभी दुनिया में सबसे अधिक आशाजनक भाषा है, और अगर मैं जेवीएम प्लेटफॉर्म के साथ चिपकता हूं, तो मैं समय के साथ क्लोजर में अपने कोड और कौशल को आसानी से बदल सकता हूं।

C / C ++

C / C ++ मूल रूप से पूरी तरह से एक अलग जानवर है। मैं निम्नलिखित कारणों से आजकल सामान्य प्रयोजन अनुप्रयोग विकास के लिए इसकी अनुशंसा नहीं करूंगा :

  • मेमोरी प्रबंधन - आजकल अधिकांश सामान्य प्रयोजन प्रोग्रामिंग के लिए, आप अपनी स्मृति का प्रबंधन नहीं करना चाहते हैं। C # या Java में कचरा संग्रह आपकी उत्पादकता और पवित्रता के लिए बहुत बेहतर है, किसी भी स्पष्ट स्मृति प्रबंधन तकनीक की तुलना में आपको C / C ++ में उपयोग करना होगा।
  • जटिलता - C ++ विशेष रूप से एक अत्यंत जटिल भाषा है। मास्टर होने में लंबा समय लगता है और कोड स्वयं भी बहुत जटिल हो सकता है। (C ++ उदाहरण के लिए खासतौर पर बालों वाले हैं ....)
  • उत्पादकता - अधिकांश समय और बाकी सभी समान होने के कारण आपको C / C ++ में काम करने में अधिक समय लगेगा।

हालाँकि, यह विशेष रूप से कुछ विशेष डोमेन की सीमित संख्या में एक बढ़िया विकल्प है:

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

इसलिए मूल रूप से, C / C ++ एक बढ़िया विकल्प है यदि और केवल यदि आप एक ऐसे डोमेन पर ध्यान केंद्रित करते हैं जहाँ यह विशेष रूप से अनुकूल है।


1
आप जावा के लिए बेहतर साधनों के उदाहरण के रूप में मावेन का उल्लेख करते हैं। मैं इसके साथ विशेष रूप से पारिवारिक नहीं हूं, लेकिन प्रलेखन को देखते हुए, मावेन देशी .Net बिल्ड टूल MSBuild के समान ही दिखता है। मावेन MSBuild से बेहतर क्या है?
केविन कैथार्ट

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

2
ऐसा क्यों है कि हर कोई सोचता है कि C ++ कोड मैन्युअल मेमोरी मैनेजमेंट से भरा है। इसकी सी आपको नहीं पता, RAII का मतलब है कि आपको लगभग कभी भी मैन्युअल रूप से / मुफ्त मेमोरी आवंटित करने की आवश्यकता नहीं है (आप जो करते हैं वह वही है जहां C # जैसी भाषा आपके लिए बेकार होगी)।
gbjbaanb

3
@ जीबीजैनब - शायद इसलिए कि आरएआई सामान्य उद्देश्य स्मृति प्रबंधन के लिए अपर्याप्त है। यह किसी भी तरह से लचीलेपन के बराबर नहीं है, जैसा कि आप जावा या सी # में देखते हैं। जैसे ही आप RAII की सीमा से आगे जाते हैं, आप मैन्युअल मेमोरी मैनेजमेंट क्षेत्र में वापस आ जाते हैं।
मईरा

3
@mikera बस यह बताना चाहता हूं कि .NET प्लेटफ़ॉर्म पर भी भाषा का काफी विकास हुआ है। ईजी एफ # एक साफ-सुथरी कार्यात्मक भाषा है जो कि .NET के बाकी हिस्सों को सुचारू रूप से एकीकृत करती है, और पायथन ने हाल ही में .NET को आयरन पायथन के रूप में पोर्ट किया (और एक अच्छी आईडीई भी प्राप्त की!)।
ikh

13
I heard that syntactically they are almost the same.

वाक्य रचना? वाक्य रचना के बारे में उड़ने वाले बंदर कौन देता है? सिंटेक्स केवल एक ही चीज़ के लिए अच्छा है: सिंटैक्टिकली समान भाषाओं से तेज़ी से माइग्रेशन की अनुमति। बस।

C # जावा से काफी बेहतर है। उनके सामान्य और कार्यात्मक प्रोग्रामिंग समर्थन पर विचार करें- C # जावा से आगे का रास्ता है। ऑपरेटर अधिभार का उल्लेख नहीं करने के लिए, और अन्य अच्छी चीजें- C # काफी हद तक बेहतर है। कोई रास्ता नहीं है कि जावा को संभवतः C # से बेहतर माना जा सकता है।

C ++ और C # एक प्रतियोगिता से अधिक है। C ++ में एक अविश्वसनीय रूप से कष्टप्रद पुरातन संकलन मॉडल और C से विरासत में मिली बीमारियों का एक समूह है, लेकिन यह टेम्प्लेट जेनेरिक की तुलना में बहुत अधिक शक्तिशाली हैं, और यह संसाधन प्रबंधन के दृष्टिकोण सामान्य रूप usingसे बहुत अधिक लचीले और शक्तिशाली हैं, जैसा कि एक पूर्ण विफलता है, और यह निष्पादित करता है और तेज।


6
मुझे लगता है कि किसी को भाषा की विशेषताओं और विभिन्न प्लेटफार्मों पर भाषा की उपलब्धता की तुलना करनी चाहिए। के साथ C # एक Microsoft के साथ बंद है, जावा के साथ एक नहीं है: यह एक बड़ा लाभ है, कम से कम UNIX / Linux डेवलपर्स के लिए। ओओपी + एफपी शांत विशेषताएं हैं लेकिन आप सी # के बारे में क्यों परेशान हैं यदि आप स्केल का उपयोग कर सकते हैं, जो जेवीएम पर चलता है और विरासत जावा कोड के साथ इंटरफेस कर सकता है? जब तक मुझे मजबूर नहीं किया जाता मैं एक मंच-विशिष्ट भाषा नहीं सीखूंगा।
जियोर्जियो

2
@ जियोर्जियो: मोनो परियोजना मौजूद है। लेकिन दूसरी बात, माइक्रोसॉफ्ट वास्तव में अपने प्लेटफॉर्म की देखभाल करता है- वे इसे नियमित रूप से बड़े उन्नयन देते हैं। जावा में शायद ही कुछ नया था। इसके अलावा, सवाल सी # बनाम जावा के बारे में है, न कि सीएलआर बनाम जेवीएम।
डेडएमजी

4
@ डेडएमजी: जहां तक ​​मुझे पता है कि मैं विंडोज पर विकसित किसी भी सी # प्रोग्राम को नहीं ले सकता और इसे मोनो के साथ बना सकता हूं। सीवीआर बनाम जेवीएम नहीं? सवाल यह है कि लोग C # या Java का उपयोग क्यों करते हैं। लोगों को एक भाषा का उपयोग करने के लिए उन्हें एक रनटाइम और एक ऑपरेटिंग सिस्टम की आवश्यकता होती है। मैं इस तथ्य के बारे में चर्चा नहीं करता कि सी # में जावा की तुलना में अधिक विशेषताएं हैं, लेकिन जावा बहुत अधिक पोर्टेबल है: यह कारक है जो किसी भाषा को अपनाने को प्रभावित कर सकता है। वास्तव में जावा को अभी भी C # की तुलना में अधिक बार उपयोग किया जाता है, भले ही उसमें कुछ उन्नत सुविधाओं का अभाव हो।
जियोर्जियो

3
@ जिओर्जियो, आप किसी भी C # प्रोग्राम को ले सकते हैं और इसे मोनो के साथ बना सकते हैं। आप कुछ पुस्तकालयों का उपयोग नहीं कर सकते (जो वैसे भी C # भाषा के भाग नहीं हैं)। और जावा "बहुत अधिक पोर्टेबल" नहीं है। आप उदाहरण के लिए, C # में iOS के लिए कोड कर सकते हैं, लेकिन जावा में नहीं।
एसके-लॉजिक

2
@Giogio, मोनो कम से कम JVM की तरह पोर्टेबल है।
तर्क

7

अच्छी तरह C#से कुछ अच्छी तरह से निर्मित सुविधाओं LINQऔर प्रतिनिधियों की तरह है । यह दोनों दुनिया से सबसे अच्छा हो रहा है - Javaऔर C++। पूर्ण तुलना के लिए यहां देखें ।

लेकिन मैं Javaदुनिया को बेहतर पसंद करता हूं - बहुत अधिक ओपन सोर्स फ्रेमवर्क और यह हर प्लेटफॉर्म पर चलता है। और मुझे इसके बारे में मत बताओ Mono- यह एक विश्वसनीय विकल्प नहीं है।


9
+1: "लेकिन मुझे जावा दुनिया बेहतर पसंद है - बहुत अधिक खुला स्रोत फ्रेमवर्क और यह हर प्लेटफॉर्म पर चलता है।" चलो आशा करते हैं कि ओरेकल इसे नहीं बदलता है!
जियोर्जियो

15
मन की व्याख्या, मोनो में "विश्वसनीय" क्या नहीं है?
एसके-लॉजिक

2
@Petar Minchev, यह कुछ और नहीं बल्कि आपकी अपनी गलती है। आपको पोर्टेबिलिटी दिशानिर्देशों का पालन करना चाहिए और आपको गैर-पोर्टेबल पुस्तकालयों का उपयोग नहीं करना चाहिए - और इस तरह से कोई भी जटिल एप्लिकेशन मोनो के साथ मज़बूती से चलेगा। WPF जैसी चीजों को कभी पोर्ट नहीं किया जाएगा।
एसके-लॉजिक

2
@Petar Minchev, वहाँ कई गैर-पोर्टेबल जावा लाइब्रेरी हैं। पोर्टेबिलिटी के बारे में आपको हमेशा सतर्क रहना चाहिए, चाहे आप किसी भी भाषा का उपयोग कर रहे हों। और वैसे भी, सवाल तीसरे पक्ष के पुस्तकालयों का नहीं, भाषाओं का है।
लॉजिक

3
@Petar Minchev, GTK # पोर्टेबल है। इसकी जगह इसका इस्तेमाल करें।
लॉजिक

3

कुछ स्रोतों के अनुसार (उदाहरण के लिए देखें http://www.indeed.com/jobtrends ) C # अभी भी जावा की तुलना में कम लोकप्रिय है, और C ++ के रूप में लोकप्रिय है।

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

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

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


"मैं लिनक्स पर पूरी तरह से सी # नहीं छोड़ सकता हूं" - क्या आप इस पर विस्तार से बता सकते हैं? क्या आपका मतलब है कि पूर्ण। नेट फ्रेमवर्क उपलब्ध नहीं है क्योंकि मैं लिनक्स पर सी # भाषा (या उस मामले के लिए एफ #) के साथ किसी भी मुद्दे पर नहीं चला हूं?
वेस्ले विजर

@wawa: मेरी जानकारी के लिए .Net फ्रेमवर्क JDK से मेल खाता है, और .Net फ्रेमवर्क केवल विंडोज के लिए उपलब्ध है जबकि JDK कई OS के लिए उपलब्ध है। यदि यह सही नहीं है तो मैं अपना उत्तर संपादित कर सकता हूं (और साथ ही अपनी राय भी बदल सकता हूं)।
जियोर्जियो

1
मुझे लगता है कि JDK के लिए बेस क्लास लाइब्रेरी एक करीब सादृश्य होगी। बीसीएल ने मानकीकृत और गैर-मानक भागों को बनाया है। मोनो परियोजना मानकीकृत के साथ-साथ अनियंत्रित टुकड़ों के बहुत से कार्यान्वयन करती है।
वेस्ले विज़र

@ वावा: जानकारी के लिए धन्यवाद। मैं मोनो का उपयोग करके C # आज़माने पर विचार कर रहा हूं। फिर भी, मुझे अभी भी काफी मजबूत एहसास है कि जावा की तुलना में C # Microsoft से बहुत अधिक मजबूती से जुड़ा हुआ है (या अतीत में सन से है)।
जियोर्जियो

3

"कौन सा सॉफ़्टवेयर डेवलपमेंट फ्रेमवर्क, जिसमें प्रोग्रामिंग भाषा शामिल है" के बारे में बेहतर है?

आप अन्य सामान शामिल करना भूल गए, जैसे "पर्यावरण" आप के साथ काम करेंगे।

  1. क्या आप केवल विंडोज ओएस के लिए काम करने जा रहे हैं, लेकिन, निम्न स्तर का नहीं होना चाहिए, और बहुत सारी मेमोरी और अन्य संसाधन हैं?

    Windows के ऊपर .NET के रूप में चुनें, और C # का उपयोग करें।

  2. क्या आप केवल विंडोज के लिए काम करने जा रहे हैं, लेकिन, निम्न स्तर का नहीं होना चाहिए, लेकिन, बहुत सारे संसाधन नहीं हैं?

    डेल्फी फ्रेमवर्क चुनें (और ऑब्जेक्ट पास्कल डेल्फी प्रोग्रामिंग भाषा या लाजर ऑब्जेक्ट पास्कल प्रोग्रामिंग भाषा)

  3. आपका ऐप है अलग-अलग मोबाइलों में गेम जैसे कई प्लेटफॉर्म का समर्थन करने की आवश्यकता है?

    जावा फ्रेमवर्क, और जावा प्रोग्रामिंग भाषा चुनें।

  4. क्या यह ग्राफिक इंटरफ़ेस के रूप में केडीई के साथ लिनक्स है?

    C ++ के साथ, क्यूटी फ्रेमवर्क चुनें

  5. यह ग्राफिक इंटरफ़ेस के रूप में सूक्ति के साथ लिनक्स है?

    C ++ के साथ, GObject / GLib फ्रेमवर्क चुनें

  6. क्या आप बहुत कम स्तर के संचालन के साथ काम करने जा रहे हैं, जैसे विकासशील ड्राइवर?

    सादा सी या सी ++ इसका उपयोग कई ऑपरेटिंग सिस्टम के लिए किया जाता है, मानक पुस्तकालयों के साथ, एक रूपरेखा के रूप में।

बस मेरे 2 सेंट।


1
मुझे यकीन नहीं है कि 3. स्मार्टफ़ोन आज बहुत लोकप्रिय हैं और AFAIK, ये सभी किसी न किसी रूप में C # का समर्थन करते हैं, लेकिन केवल एंड्रॉइड जावा का समर्थन करता है।
svick

क्या डेल्फी मृत नहीं है? :)
šljaker

@ šljaker नहीं, लेकिन, बहुत लोकप्रिय शोध दिन नहीं है।
umlcat

1
@ शविक: यह एक झूठ है। एंड्रॉइड के अलावा, जावा आईओएस, सिम्बियन, विनमो, ब्लैकबेरी, मैमो, और वेबओएस (यानी सब कुछ जो मायने रखता है या अभी भी मायने रखता है) पर किसी न किसी रूप में मौजूद है; मुझे छोटे प्लेटफॉर्म से भी शुरू न करें)। Android, ब्लैकबेरी और सिम्बियन आधिकारिक रूप से जावा को विकास विकल्प के रूप में समर्थन करते हैं; सन, iOS पर जावा का समर्थन करता था, जबकि Apple इसे कल्पना नहीं करता था। जावा एंड्रॉइड और ब्लैकबेरी फोन में प्राथमिक विकास भाषा है। मैं C # के साथ एक ही नहीं कह सकता, AFAICT यह केवल आधिकारिक तौर पर WinMo पर समर्थित है।
रेयान

1

यदि आप एक खोज करते हैं तो आप शीर्ष प्रोग्रामिंग भाषाओं पर चर्चा पर ठोकर खाने की संभावना रखते हैं। यहाँ खोज परिणामों में से एक है - http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html - Java अभी भी सबसे लोकप्रिय भाषा है।

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


1

कुछ चीजें जो पहले से उल्लेख नहीं की गई हैं:

C # C ++ से बेहतर है क्योंकि:

यह हेडर फ़ाइलों के साथ दूर करता है, जो महान सादगी में अनुवाद करता है।

C # जावा से बेहतर है क्योंकि:

यह संदर्भ-प्रकार (वर्ग) और मूल्य-प्रकार (संरचना) उपयोगकर्ता-परिभाषित दोनों प्रकारों का समर्थन करता है, जो, यदि आप जानते हैं कि आप क्या कर रहे हैं, तो महत्वपूर्ण प्रदर्शन लाभ प्राप्त कर सकते हैं।

यह प्रतिनिधियों का समर्थन करता है, जो एकल-विधि इंटरफेस की तरह हैं, इस प्रकार अक्सर होने वाले निर्माणों के कोडिंग को सरल बनाते हैं जिसमें एकल-विधि ऑब्जेक्ट शामिल होते हैं।


क्या आप समझा सकते हैं कि किस तरह से संदर्भ-प्रकार और मूल्य-प्रकार दोनों प्रकार के होने से C # में प्रदर्शन लाभ मिल सकता है?
जियोर्जियो

उदाहरण के लिए, यदि आप अभिलेखों की एक सरणी रखना चाहते हैं, तो जावा में आपके पास एक वर्ग का उपयोग करके अपने रिकॉर्ड का वर्णन करने के अलावा कोई विकल्प नहीं है, इसलिए आपका सरणी अलग-अलग आवंटित वस्तुओं की भीड़ के संदर्भ में एक सरणी होगा। सी # में आप एक संरचना का उपयोग करके अपने रिकॉर्ड का वर्णन कर सकते हैं, इसलिए आपका सरणी मेमोरी का एक निरंतर निरंतर क्षेत्र होगा जिसमें आपकी संरचनाएं एक के बाद एक होती हैं, जैसे सी। में
माइक नाइस

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

मै समझता हुँ। इसलिए वर्गों को ढेर पर लगाया जाता है और संदर्भों के माध्यम से एक्सेस किया जाता है, जबकि स्ट्रक्कों पर स्टैटिफ़ेट (?)
जियोर्जियो

लगभग सही है। इस कथन में एकमात्र अशुद्धि यह है कि एक संरचना ढेर पर मिल जाएगी यदि यह किसी अन्य ऑब्जेक्ट के अंदर एम्बेडेड है, या यदि यह किसी संरचना के एक सरणी के अंदर है। और यह ढेर पर भी पाया जाएगा यदि यह कभी बॉक्सिंग हो जाता है, ठीक उसी तरह जैसे जावा में मूल्य प्रकार बॉक्सिंग होते हैं।
माइक नाकिस

1

आपको अपने अपेक्षित माहौल और अपनी विशेषज्ञता के लिए सबसे अच्छी भाषा चुननी चाहिए।

Chose C # यदि आप Microsoft के केवल वातावरण में काम कर रहे हैं। जबकि C # को ISO / IEC 23270: 2003 के तहत मानकीकृत किया गया है, Microsoft का संस्करण केवल पूर्ण कार्यान्वयन है। भाषा के कई प्रमुख भाग मानक द्वारा कवर नहीं किए गए हैं और इस प्रकार Microsoft के पेटेंट के अधीन हैं। कोई भी अन्य सिस्टम के लिए भाषा के पूरी तरह से संगत संस्करण को लागू नहीं करेगा, इसलिए वास्तव में, आप Microsoft Windows और .Net पर तब तक के लिए बंद हैं जब तक आप भाषा का उपयोग करते हैं। यदि आप मोबाइल बाजार में उपयोग करने के लिए कौशल की तलाश कर रहे हैं, तो किसी अन्य भाषा को देखने के लिए सबसे अच्छा है।

जावा काम करता है, लेकिन कचरे के संग्रह के रूप में इस तरह की सुविधाओं के कारण भाग में एक अच्छा सौदा है। जावा भी आईएसओ / आईईसी द्वारा मानकीकृत नहीं है, इसलिए आपके पास जावा के प्लेटफार्मों और संस्करणों को स्विच करने की कोई गारंटी नहीं है, केवल सन / ओरेकल के सर्वश्रेष्ठ इरादे हैं। यदि आप अंततः एंड्रॉइड के साथ काम करने की योजना बना रहे हैं, तो यह निश्चित रूप से जाने का तरीका है। एंड्रॉइड की प्रोग्रामिंग मूल रूप से जावा है, जिसमें कुछ बदलाव हैं।

C ++ मानकीकृत है और लगभग सभी संकलक अंतरराष्ट्रीय मानक का पालन करते हैं, इसलिए आपने व्यवहार की गारंटी दी है लेकिन BUT भाषा आपको स्वयं से सुरक्षित नहीं करती है। आपको अपने दम पर सफाई और अतिप्रवाह जाँच प्रदर्शन करना होगा। यह कठिन नहीं है। C / C ++ प्रोग्रामर कई सालों से ये कर रहे हैं। Apple हर चीज के लिए Objective C का उपयोग करता है, इसलिए यदि आप Apple के लिए लक्ष्य बनाना चाहते हैं, तो मैं आपको इसके बजाय यह प्रयास करने की सलाह देता हूं।

यदि आप स्वयं को किसी बिंदु पर पीछे छोड़ते हुए देखते हैं, तो मैं इस समय C / C ++ और Java - दोनों सीखने का सुझाव दूंगा, जो दोनों ही बाजार में उपलब्ध हैं।


0

सी ++ बनाम सी # के संबंध में (जैसा कि मैं जावा में पर्याप्त कुशल नहीं हूं), जो मुझे यहां याद आ रहा है वह विंडोज पर लोवेल सामान तक पहुंचने की क्षमता है। उदाहरण के लिए, आप C # (अभी तक) में एक देशी डिस्प्ले ड्राइवर विकसित नहीं कर सकते, लेकिन आप C ++ के साथ कर सकते हैं। यह C ++ को बेहतर नहीं बनाता है। मुझे C ++ बनाम C # असेंबली बनाम C दिखाई देता है।

यदि आप वास्तव में किसी सुविधा को लागू करने में लगने वाले समय को देखते हैं तो C # मेरे विचार में अधिक कुशल है। विकसित अनुप्रयोगों के 99% के लिए .Net रनटाइम का प्रदर्शन दंड नगण्य है। यह महत्वपूर्ण हो सकता है यदि आप एक तंग लूप चला रहे हैं, हाँ सभी तरीकों से, लेकिन अधिकांश समय एक एप्लिकेशन निष्क्रिय है, किसी भी तरह के इनपुट, सिग्नल या इंटरप्ट (डिस्क आईओ, बटन क्लिक, नेटवर्क, एनीमेशन पूरा होने) का इंतजार कर रहा है ।

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

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