चेतावनी: यह लगभग एक उत्तर के रूप में बात का एक समालोचक के रूप में नहीं है कि "उपयोगकर्ता unkown" उसके उत्तर में जुड़ा हुआ है।
उनका पहला मुख्य बिंदु (माना जाता है) "कभी बदलते मानक" है। हकीकत में, वह जो उदाहरण देता है वह सभी मानक से पहले C ++ में बदलाव से संबंधित है । 1998 के बाद से (जब पहले C ++ मानक को अंतिम रूप दिया गया था) भाषा में परिवर्तन काफी कम रहे हैं - वास्तव में, कई लोग तर्क देंगे कि असली समस्या यह है कि अधिक बदलाव किए जाने चाहिए थे। मैं यथोचित निश्चित हूं कि सभी कोड जो मूल C ++ मानक के अनुरूप हैं, अभी भी वर्तमान मानक के अनुरूप हैं। हालांकि यह कुछ हद तक कम है, जब तक कि कुछ जल्दी (और काफी अप्रत्याशित रूप से) नहीं बदलता है, वही आगामी सी ++ मानक के साथ भी बहुत सही होगा (सैद्धांतिक रूप से, सभी कोड जो उपयोग किए गए हैंexport
टूट जाएगा, लेकिन वस्तुतः कोई भी मौजूद नहीं है; व्यावहारिक दृष्टिकोण से यह एक मुद्दा नहीं है)। मैं कुछ अन्य भाषाओं के बारे में सोच सकता हूं, OSes (या कंप्यूटर से संबंधित कुछ भी) जो इस तरह का दावा कर सकते हैं।
वह फिर "कभी बदलती शैलियों" में चला जाता है। फिर से, उनके अधिकांश अंक बकवास के बहुत करीब हैं। वह for (int i=0; i<n;i++)
"पुरानी और पर्दाफाश" और for (int i(0); i!=n;++i)
"नई हॉटनेस" के रूप में चिह्नित करने की कोशिश करता है । वास्तविकता यह है कि जबकि ऐसे प्रकार हैं जिनके लिए इस तरह के परिवर्तन समझ में आ सकते हैं int
, इसके लिए , इससे कोई फर्क नहीं पड़ता है - और यहां तक कि जब आप कुछ हासिल कर सकते हैं, तो यह अच्छा या सही कोड लिखने के लिए शायद ही आवश्यक हो। यहां तक कि बहुत अच्छे से, वह एक पहाड़ को मोलेहिल से बना रहा है।
उनका अगला दावा है कि C ++ "गलत दिशा में अनुकूलन" है - विशेष रूप से, जबकि वह स्वीकार करते हैं कि अच्छी पुस्तकालयों का उपयोग करना आसान है, उनका दावा है कि C ++ "अच्छी पुस्तकालयों को लिखना लगभग असंभव बना देता है।" यहां, मेरा मानना है कि उनकी सबसे बुनियादी गलतियों में से एक है। वास्तव में, लगभग किसी भी भाषा के लिए अच्छी लाइब्रेरी लिखना बेहद मुश्किल है। नंगे न्यूनतम पर, एक अच्छी लाइब्रेरी लिखने के लिए कुछ समस्या डोमेन को इतनी अच्छी तरह से समझने की आवश्यकता होती है कि आपका कोड उस डोमेन में (या संबंधित) संभावित अनुप्रयोगों की भीड़ के लिए काम करता है। ज्यादातर सी ++ वास्तव में क्या करता है "बार को बढ़ाएं" - यह देखने के बाद कि पुस्तकालय कितना बेहतर हो सकता है, लोग शायद ही कभी वापस जाने के लिए तैयार हों, जिस तरह का ड्रैक उनके पास है अन्यथा नहीं।वास्तव में अच्छे कोडर काफी कुछ पुस्तकालय लिखते हैं, जिसे तब "आसानी से, जैसा कि वह स्वीकार करता है" का उपयोग "बाकी हम" द्वारा किया जा सकता है। यह वास्तव में एक मामला है जहां "यह बग नहीं है, यह एक विशेषता है।"
मैं क्रम में हर बिंदु को हिट करने की कोशिश नहीं करूंगा (जो पृष्ठों को ले जाएगा), लेकिन सीधे अपने समापन बिंदु पर छोड़ दें। उन्होंने बज़्ने को यह कहते हुए उद्धृत किया: "पूरे प्रोग्राम ऑप्टिमाइज़ेशन का उपयोग अप्रयुक्त आभासी फ़ंक्शन तालिकाओं और आरटीटीआई डेटा को खत्म करने के लिए किया जा सकता है। इस तरह के विश्लेषण अपेक्षाकृत छोटे कार्यक्रमों के लिए विशेष रूप से उपयुक्त हैं जो गतिशील लिंकिंग का उपयोग नहीं करते हैं।"
उन्होंने एक असमर्थित दावा करते हुए कहा कि "यह वास्तव में एक कठिन समस्या है", यहाँ तक कि इसे रोकने की समस्या से तुलना करने पर भी यह आलोचना करता है। हकीकत में, यह कुछ भी नहीं है - वास्तव में, लिंकर को Zortech C ++ ( MS-DOS के लिए बहुत पहले C ++ कंपाइलर, 1980 में वापस) के साथ शामिल किया गया था। यह सच है कि यह निश्चित होना मुश्किल है कि संभवतः हर-एक्सटर्नल डेटा को समाप्त कर दिया गया है, लेकिन एक सुंदर निष्पक्ष काम करने के लिए पूरी तरह से उचित है।
हालांकि, इसके बावजूद, अधिक महत्वपूर्ण बात यह है कि यह किसी भी मामले में अधिकांश प्रोग्रामर के लिए पूरी तरह अप्रासंगिक है। जैसा कि हममें से बहुत से लोग कोड के बारे में बहुत कुछ जानते हैं, जब तक कि आप असेंबली में कोई लाइब्रेरी नहीं लिखते हैं, तब तक आपके निष्पादकों में निश्चित रूप से "सामान" (कोड और डेटा दोनों, विशिष्ट मामलों में) उचित मात्रा में होते हैं। शायद के बारे में भी पता नहीं है, वास्तव में उपयोग करने का उल्लेख नहीं करने के लिए। अधिकांश लोगों के लिए, ज्यादातर समय, यह सिर्फ कोई फर्क नहीं पड़ता - जब तक कि आप सबसे नन्हें एम्बेडेड सिस्टम के लिए विकसित नहीं कर रहे हैं, कि अतिरिक्त भंडारण की खपत बस अप्रासंगिक है।
अंत में, यह सच है कि इस शेख़ी में लिनुस की मूर्खता की तुलना में थोड़ा अधिक पदार्थ है - लेकिन यह वास्तव में बेहोश प्रशंसा के साथ यह नुकसान दे रहा है कि यह हकदार है।
virtual
कार्यों के लिए व्यवहार्य के साथ एक सामान्य वर्ग प्राप्त करना चाहिए , है ना?