प्रबंधित कोडर्स बनाम देशी कोडर्स


19

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

पिछले साल या तो, मैं C # में लगभग अनन्य रूप से कोडिंग कर रहा हूं और बहुत कुछ खो दिया है जब मैं C ++ कोडर था तो स्वाभाविक रूप से आया करता था।

कुछ हफ़्ते पहले जब मैं कुछ देशी C ++ कोड लिखने के लिए बैठी, तो मैंने खुद को चारों ओर से लड़खड़ाते हुए पाया क्योंकि मैं धीरे-धीरे उन सभी की जटिलताओं, quirks और idiosyncrasies से फिर से परिचित हो गई। मैं यह कहते हुए लगभग शर्मिंदा हूं कि मैं पूरी तरह से भूल गया था कि किसी फ़ंक्शन को डायनामिक रूप से आवंटित सरणी को पास किए बिना भी इसका आकार पारित करने का मतलब होगा कि प्राप्त फ़ंक्शन को यह जानने का कोई तरीका नहीं होगा कि सरणी कितनी लंबी है।

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

विशुद्ध रूप से तकनीकी दृष्टिकोण से, कोई स्पष्ट विजेता नहीं है।

इसमें कोई संदेह नहीं है कि प्रबंधित कोड, कोड को समझने और समझने के लिए परिमाण का आदेश है। बस Win32 C ++ बनाम C # में एक साधारण GUI बनाने के लिए आवश्यक लाइनों की संख्या में अंतर को देखें।

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

जब भी मैं किसी ऐसे व्यक्ति को देखता हूं, जिसने C / C ++ में बड़े पैमाने पर पूर्ण-विशेषताओं वाला GUI एप्लिकेशन लिखा है, तो मैं मदद नहीं कर सकता, लेकिन विस्मय और ईर्ष्या के संकेत को महसूस कर सकता हूं।

मैं उत्सुक हूं कि अन्य अनुभवी कोडर प्रबंधित और अप्रबंधित भाषाओं को कैसे देखते हैं। क्या आप प्रबंधित कोड को शौकिया-ईश के रूप में देखते हैं ? क्या आप देशी कोडर्स को अधिक कट्टर के रूप में देखते हैं ?

java  .net 

जवाबों:


26

मेरा दिन का काम वर्तमान में सी ++ में है, लेकिन मैंने कई भाषाओं में काफी लंबे समय से प्रोग्राम किया है कि मैं अब मुश्किल से एक अंतर देखता हूं। यहाँ मेरी टिप्पणियों हैं:

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

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

मुझे लगता है कि मैं जो कहने की कोशिश कर रहा हूं, वह यह है कि मेरे अनुभव में प्रोग्रामर के प्रशिक्षण में वह जिस भाषा का उपयोग कर रहा है, उससे बहुत अधिक फर्क पड़ता है।


20

क्या आप प्रबंधित कोड को शौकिया-ईश के रूप में देखते हैं? क्या आप देशी कोडर्स को अधिक कट्टर के रूप में देखते हैं?

नहीं।

मैं एक इंजीनियर और एक प्रोग्रामर के बीच अंतर देखता हूं। कट्टर इंजीनियर हमेशा भाषा / तकनीक ढेर है कि काम एक स्वीकार्य क्रम मानक पर समय की कम से कम राशि में करवाने के लिए उपयुक्त है का चयन करेंगे।

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


+1 लेकिन यह ध्यान में रखें कि यह एक आर्थिक प्रभाव है - यदि एक चक्र चक्र की लागत $ 1m है तो चरम अनुकूलन नियम होगा - या हम कंप्यूटर के साथ बिल्कुल भी परेशान नहीं करेंगे ...
गैरी रोवे

10
सिवाय इसके कि हम कम प्रदर्शन को समग्र रूप से देखते हैं - Word6 आधुनिक हार्डवेयर पर प्रकाश की तरह चलता है, Word2010 को लोड होने में बस एक मिनट लगता है। आज हमें प्रोग्रामर्स के साथ बने रहने के लिए उस सुपरफास्ट हार्डवेयर की आवश्यकता है!
gbjbaanb

2
@gbjbaanb: कोई भी प्रोग्रामर जो भी चुनता है, कोई भी पर्याप्त रूप से बड़े कोडबेस धीमा होने वाला है। IIRC, Word अभी भी C ++ में लिखा गया है (और मैं यह शर्त लगाने को तैयार हूं कि सभी विरासत का एक महत्वपूर्ण भाग वर्ड 6 कोड अभी भी है)।
स्टीवन एवर्स

2
@ GBjbaanb, Word 2010 .NET में वर्ड 6 का सीधा पुनर्लेखन नहीं है। यह कई और सुविधाएँ जोड़ता है और कई और उपयोग परिदृश्यों को संभालना है। यह शब्द 6. की तुलना में बहुत अधिक, बहुत बड़ा अनुप्रयोग है
मिर्चे चिराया

6

अफसोस की बात है कि Microsoft ने हमें C # /। नेट क्लास लाइब्रेरीज़ के साथ "प्रबंधित कोड" को भ्रमित करने के लिए प्रेरित किया है।

यहां खेलने के लिए दो अलग और लगभग असंबंधित चीजें हैं।

  1. कूल .नेट लाइब्रेरी।

  2. प्रबंधित कोड।

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

C ++ में कई शांत पुस्तकालय हैं जो लगभग सब कुछ करते हैं। नेट करता है। C # /। नेट कोड की तुलना में "मूल C ++" कोड को दोष देने के बजाय "जटिलताएं, quirks, और idiosyncrasies" होने के कारण, आप बेहतर C ++ पुस्तकालयों की तलाश कर सकते हैं।

बेहतर पुस्तकालयों से आप अच्छा C ++ कोड भी लिख सकते हैं।

जब भी मैं किसी ऐसे व्यक्ति को देखता हूं जिसने C / C ++ में बड़े पैमाने पर पूर्ण-विशेषताओं वाला GUI एप्लिकेशन लिखा है, तो मैं मदद नहीं कर सकता, लेकिन विस्मय और ईर्ष्या के संकेत को महसूस कर सकता हूं

बुरी नीति। इसके बजाय आपको यह पता लगाना चाहिए कि उन्होंने किस कक्षा की परिभाषाओं का उपयोग किया है। आप भी, उन पुस्तकालयों का उपयोग कर सकते हैं।

यह सभी उपकरणों के बारे में है। उपकरणों के बिना, हम सिर्फ पैंट में जानवर हैं।

"मूल C ++" का मतलब यह नहीं है कि आपको अपने सभी उपकरण फेंकने चाहिए। इसका मतलब है कि आपको अच्छे उपकरण खोजने होंगे। Microsoft अब आपकी मदद नहीं कर रहा है, इसलिए आपको उपकरणों का सही मिश्रण खोजने में समय बिताने की आवश्यकता है।


+1 के लिए "पता करें कि वे क्या उपयोग कर रहे हैं", लेकिन स्पष्ट रूप से मुझे लगता है कि यह उपकरण का उपयोग करने वाले जानवरों, या जानवरों के लिए बहुत अच्छा नहीं है जो अवसर पर पैंट पहनने के लिए होते हैं।
इयान पग्सले

@ इयान पग्सले: वे जानवर जो पैंट पहनते हैं लेकिन औजारों का इस्तेमाल नहीं करते हैं शायद जानवरों के रूप में उनकी स्थिति ठीक है। लेकिन आप सही हैं कि बिना पैंट के उपकरण का उपयोग करने वाले जानवर परेशान हो सकते हैं। मेरी पत्नी, उदाहरण के लिए, पैंट नहीं पहनना पसंद करती है, और उपकरणों का उपयोग करती है। शायद वह इस सवाल को नहीं पढ़ेगी।
एस.लॉट

हम केवल आशा कर सकते हैं (और काफी-उच्च संभावना पर शर्त लगा सकते हैं)। मैं सिर्फ इतना कह रहा हूं कि मैं एक ऐसे जानवर पर नजर रखने वाला नहीं हूं, जिसे पैंट की एक जोड़ी पर डाल दिया जाए ... बस।
इयान पग्सले

हाँ, C # के मानक पुस्तकालय के विपरीत, C ++ का पुराना है और आधुनिक आवश्यकताओं (GUI, कूल नेटवर्किंग इंटरफ़ेस, आदि) का अभाव है।
मोशे रेवह

Microsoft Windows 8 में C ++ के साथ एक बार फिर आपकी मदद कर रहा है (संपूर्ण Windows 8 विकास सतह मूल कोड है, और C ++ C # और JavaScript के साथ प्रथम श्रेणी का नागरिक है): msdn.microsoft.com/en-us/library/windows/ apps /…
Zach

5

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

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

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

कचरा संग्रह किसी तरह की जादुई चीज नहीं है या ऐसा कुछ है- यह एक एल्गोरिथ्म विकल्प है। क्या यह सभी स्थितियों के लिए उपयुक्त है? दूर तक नहीं- C # में आईडीसोपॉलीटल मेस को देखें और कैसे जावा ने भी उस मुद्दे के साथ प्रयास करने की जहमत नहीं उठाई, जबकि C ++ के डिस्ट्रक्टर्स आपकी फाइलों को बंद कर देंगे और आपकी मेमोरी को बंद कर देंगे और आपकी सॉकेट आदि को बंद कर देंगे। GC कुछ कार्यक्रमों के लिए बहुत अच्छा है। , और कुछ अन्य लोगों के लिए नहीं।


SIMD की तुलना में प्रोसेसर के बीच अंतर अधिक है - हालाँकि आपका C ++ कंपाइलर संभवतः पाइपलाइन को आपके JIT जितना ही खाता है।
पीटर टेलर

एक रनटाइम वातावरण जहां सिस्टम स्थिति की जांच करना और हर गैर-पिन-ऑब्जेक्ट संदर्भ की पहचान करना संभव हो सकता है, जो कि कभी - कभी उपलब्ध हो सकता है , जीसी से संबंधित लागतों के कई तरीकों को संशोधित कर सकता है जो C ++ में संभव नहीं हैं। जावा या सी # में, दिए String foo,bar;गए कथन में foo=bar;दो निर्देश निष्पादित होंगे - एक रजिस्टर लोड और एक रजिस्टर स्टोर। स्ट्रिंग की लंबाई की परवाह किए बिना लगातार निष्पादन का समय। C ++ पास आ सकता है?
सुपरकैट

2

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

अमूर्त C # के स्तर के लिए Btw अविश्वसनीय रूप से तेज है, Microsoft ने एक उत्कृष्ट काम किया।


2

शौकिया तौर पर प्रोग्रामर होते हैं, शौकिया भाषाएं नहीं। वे भाषाएँ जिनके पास सभी (अच्छी तरह से, उनमें से ज्यादातर कम से कम) उनका उद्देश्य है।

मैं वर्तमान में उत्पादन प्रणाली का परीक्षण करने के लिए उपयोग किए जाने वाले बीमा गणना इंजन पर सह-काम कर रहा हूं। उत्पादन प्रणाली सी में बनाई गई है, हमारा इंजन जावा में किया जाता है और जब से हम सी इंजन को बेहतर बनाते हैं, उसी समय अधिक उत्पादक होते हैं। इसलिए नहीं कि जावा प्रति se, C से तेज है, यह काफी तेज है और हमारे एल्गोरिदम बेहतर हैं, हमने उन्हें अधिक आसानी से लागू किया है, हम तेजी से और बेहतर परीक्षण कर सकते हैं और हमारे कोड को रिफलेक्टर कर सकते हैं।

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

और मैं शौकिया तौर पर यह महसूस नहीं करता कि मैं किस भाषा का उपयोग करता हूं, मुझे लगता है कि अगर मैं एक बेवकूफ बग बनाऊं जो कि नहीं होना चाहिए।


1

पिछले साल मैं जिस फर्म में काम कर रहा था, वह ब्रूट फोर्स द्वारा एक संचार सीआरसी कोड रिवर्स इंजीनियरिंग थी (हमें आखिरकार मिल गया)। 3 डेवलपर्स में से प्रत्येक का अपना संस्करण था, बोरलैंड सी, सी # .नेट 2008, वीबी 6। वीबी 6 स्पष्ट रूप से धीमा था, बोरलैंड सी त्वरित था लेकिन सी # .नेट ने इसे केवल 12 गुना गति से भरा। वह नहीं था जिसकी हमें उम्मीद थी।


1
क्या वे समान एल्गोरिथ्म का उपयोग चरण-दर-चरण कर रहे हैं? वे एक ही आउटपुट की गणना कर सकते हैं लेकिन आउटपुट पर आने के लिए उपयोग किए जाने वाले प्रारंभिक गणितीय चरण भिन्न हो सकते हैं, और प्रदर्शन प्राथमिक चरणों की कच्ची गणना से निर्धारित होता है, जो बदले में "फार्मूला" उनके द्वारा विघटित होने से निर्धारित होता है।
rwong

एक पुराने सी कंपाइलर नवीनतम प्रोसेसर निर्देशों (अर्थात, SSE2 और बाद में) का उपयोग नहीं कर सकता है
ग्रैंडमास्टरबी

1
सभी तीन भाषाओं को अनुकूलित मूल कोड (संकलन के दौरान VB6 / C ++, JIT के दौरान .NET) के लिए संकलित किया गया है। इसलिए आप शायद प्रोग्रामिंग भाषा के बीच के बजाय अपने प्रोग्रामर के बीच अंतर को माप रहे हैं।
निकाइ

@ मिक्की JIT! = संकलन। और संकलक की गुणवत्ता भिन्न होती है। मैंने JIT के बारे में तमाम बातों के बावजूद, C ++ (कोई API कॉल, सिर्फ सरणी संदर्भ, लूप और सरल अंकगणित) को जावा की तुलना में लिखे जाने पर बिल्कुल वैसा ही एल्गोरिदम निष्पादित किया है, जैसा कि मैंने देखा है।
मात्रा_देव

1
@quant_dev: मेरे अनुभव में कोई चांदी की गोली नहीं है ;-) .NET JIT के साथ मेरा अनुभव यह है कि JIT और MSVC ++ के बीच का अंतर बहुत छोटा है। मुझे बहुत संदेह है 12x या तो एक ही कोड के लिए रास्ता।
निकाइ

1

यह चीजों के मिश्रण पर निर्भर करता है, लेकिन मूल रूप से, बाकी सभी समान हैं, हां, प्रबंधित कोड की तुलना में देशी कोड अधिक "कट्टर" है।

मुझे लगता है कि यह आमतौर पर एक बुरी बात है, हालांकि, एक सामान्य व्यावसायिक अनुप्रयोग के लिए, क्योंकि इसका मतलब है कि औसत डेवलपर को अपने कोड के गैर-व्यावसायिक पहलुओं में अधिक मानसिक ऊर्जा डालनी होगी।


1

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


1

मूल डेवलपर्स आमतौर पर अधिक कट्टर होने के लिए प्रतिष्ठा प्राप्त करते हैं क्योंकि वे अधिक कट्टर महसूस करते हैं और उस तरह से कार्य करते हैं। नेटिव डेवलपर्स को किसी भी गलतियों को सहन न करने वाली प्रणाली में प्रशिक्षित किया जाता है क्योंकि वे अनिवार्य रूप से हार्ड क्रैश या अनबाउंड मेमोरी लीक का कारण बनते हैं। विशेष रूप से, .NET आलसी हैक्स को हर चीज के आसपास कोशिश / कैच डालने जैसी अनुमति देता है, डेवलपर को यह सोचने से बचाता है कि उन्हें कोर इश्यू को समझना है (" कभी-कभी, यह सिर्फ InvalidOperationException को फेंकता है। मैं इसे समझा नहीं सकता, चलो बस सब कुछ पकड़ लें।" कोड महत्वपूर्ण है! ")। यह बिल्कुल काले और सफेद रंग में नहीं है, लेकिन मेरी टिप्पणियों को अप्रबंधित दुनिया में बड़े हो गए हैं और अब पूर्ण समय में प्रबंधित कोड में काम कर रहे हैं।

इसके अलावा, प्रबंधित डेवलपर्स भी दूर के क्लीनर और अधिक संगठित बीसीएल की पहुंच रखते हैं। यह अक्सर उन्हें खोज से प्रोत्साहित करता है कि वास्तव में कवर के तहत क्या होता है। यह सच है, एसटीएल या बूस्ट के लिए भी ऐसा ही कहा जा सकता है, लेकिन .NET क्लास की लाइब्रेरी अक्सर हमें बौद्धिक रूप से आलसी बनाने के लिए पर्याप्त होती है।

उस ने कहा, एक अच्छा, shippable प्रबंधित प्रोग्राम लिखने से बहुत काम आता है। इसका मतलब है कि मेमोरी और सीपीयू प्रोफाइलिंग, यूनिट टेस्ट और कोड एनालिसिस इसी तरह से करें जो अनवांटेड डेवलपर्स करते हैं। अप्रबंधित डेवलपर्स इस में जाने को समझते हैं, और प्रबंधित डेवलपर्स उन लोगों में से अधिक को शामिल करते हैं जो नहीं करते हैं।

फिर, काले और सफेद नहीं। कई बौद्धिक रूप से आलसी मानव रहित डेवलपर्स और कट्टर प्रबंधित डेवलपर्स हैं। अन्य की तुलना में न तो परिभाषा अधिक अभिजात्य है।


0

क्या आप प्रबंधित कोड को शौकिया-ईश के रूप में देखते हैं? क्या आप देशी कोडर्स को अधिक कट्टर के रूप में देखते हैं?

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


आपके द्वारा वर्णित एक एप्लीकेशन कंस्ट्रक्शन सिस्टम सिर्फ एक और (और उम्मीद से बेहतर) प्रोग्रामिंग भाषा है।
डेविड थॉर्नले

मैं .NET से परिचित नहीं हूं, लेकिन AFAIK यह एक मिश्रित भाषा प्रणाली है, जिसमें एक वीएम द्वारा चलाया जाने वाला एक सामान्य निष्पादन योग्य प्रारूप और एक विशाल पुस्तकालय है जो किसी भी .NET भाषा के साथ उपयोग किया जा सकता है। एक ही प्रणाली देशी / संकलित दुनिया में अच्छा होगा। प्लेटफार्म-स्वतंत्र, बिल्कुल।
ern0

0

गो रिलीज होने के बाद से नेटिव कोड आसान हो गया। मुझे जावा और C # की तुलना में पढ़ना और लिखना दोनों आसान लगता है। हालाँकि, अभी तक, गो के साथ GUI प्रोग्रामिंग बहुत अच्छी नहीं है (मैंने विकल्पों पर एक त्वरित नज़र डाली)। C # (उदाहरण के लिए) की तुलना
में बड़े समुदाय और पुस्तकालयों की विविधता की कमी के लिए इसे नहीं आंकने का प्रयास करें , क्योंकि यह अभी भी नया माना जाता है।

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