मैंने जो कुछ भी देखा है, वह व्यावहारिक और ऐतिहासिक कारणों का एक संयोजन है। (ज्यादातर) ऐतिहासिक कारण यह है कि सीपीथॉन 1.0 को 1989 में जारी किया गया था। उस समय, सी को हाल ही में मानकीकृत किया गया था। C ++ लगभग अज्ञात और निश्चित रूप से गैर-पोर्टेबल था, क्योंकि लगभग किसी के पास C ++ कंपाइलर नहीं था।
यद्यपि C ++ आज अधिक व्यापक और आसानी से उपलब्ध है, फिर भी CPython को C के साथ संगत करने के लिए C ++ के साथ संगत करने के लिए उचित मात्रा में काम करेगा। अपने आप से, वह काम बहुत कम या कोई वास्तविक लाभ प्रदान करेगा।
यह जोएल के ब्लॉग पोस्ट पर शुरू होने के बारे में थोड़ा सा है और पूरी तरह से फिर से लिखना एक सबसे खराब गलती है जो एक सॉफ्टवेयर कंपनी कर सकती है। मुझे लगता है कि Microsoft के रूपांतरण को Windows 3.0 कोर से Windows NT कोर और Apple के MacOS 9 से Mac OS / X में रूपांतरण द्वारा काउंटर करूँगा। न तो किसी ने कंपनी को मार डाला - लेकिन दोनों निश्चित रूप से बड़ी, महंगी, दीर्घकालिक परियोजनाएं थीं। दोनों यह भी कहते हैं कि सफलता के लिए महत्वपूर्ण है: दोनों कोड आधारों को लंबे समय तक बनाए रखना (अधिकांश) उपयोगकर्ता अपने कम से कम (कम से कम कथित) लाभों के आधार पर नए कोड आधार पर स्विच कर सकते हैं।
एक विकास टीम के लिए, अजगर का आकार, हालांकि, उस तरह का परिवर्तन बहुत अधिक कठिन है। यहां तक कि पायथन 2 से 3 तक के बदलाव ने काफी काम लिया है, और एक समान ओवरलैप की आवश्यकता है। कम से कम उस मामले में, हालांकि, परिवर्तनों के प्रत्यक्ष लाभ हैं, जो सी ++ में पुनर्लेखन (स्वयं के द्वारा) कम से कम तुरंत प्रदान नहीं करेंगे।
सी ++ के खिलाफ लिनस टॉर्वाल्ड्स की शेख़ी को लाया गया था, इसलिए मैं इसका भी उल्लेख करूंगा। गुइडो से मैंने जो कुछ भी देखा है वह इंगित करता है कि उसके पास C ++ की तरह मजबूत, नकारात्मक भावनाएं हैं। मैंने जो सबसे बुरा देखा है, उसके बारे में कहते हैं कि C ++ पढ़ाना अक्सर एक आपदा है - लेकिन उन्होंने तुरंत कहा कि यह काफी हद तक है क्योंकि शिक्षक C ++ को नहीं जानते / नहीं जानते हैं।
मुझे यह भी लगता है कि जबकि रिश्तेदार आसानी के साथ बहुत सारे सी कोड को सी ++ में बदलना संभव है , कि सी ++ से बहुत अधिक वास्तविक लाभ प्राप्त करने के लिए न केवल उससे थोड़ा अधिक पुनर्लेखन की आवश्यकता होती है, बल्कि इसमें शामिल अधिकांश डेवलपर्स की पर्याप्त पुन: शिक्षा की आवश्यकता होती है। अधिकांश अच्छी तरह से लिखे गए C ++, समान चीज़ों को करने के लिए लिखे गए C से काफी अलग हैं। यह नहीं बदल रहा है का मामला malloc
करने के लिए new
और printf
करने के लिए cout
, कल्पना के किसी भी खिंचाव से।