सभी भाषाओं को हर दूसरी भाषा की हर विशेषता को शामिल करने की कोशिश नहीं करनी चाहिए।
सी ++ अनिवार्य रूप से एक बहुत, बहुत परिष्कृत मैक्रो असेम्बलर है। यह (# पारंपरिक अर्थ में) C #, Java, ऑब्जेक्टिव-सी, स्मॉलटाक, आदि जैसी उच्च स्तरीय भाषा नहीं है।
विभिन्न नौकरियों के लिए अलग-अलग उपकरण होना अच्छा है। यदि हमारे पास केवल हथौड़े हैं, तो सभी चीजें नाखून की तरह दिखने वाली हैं, आदि स्क्रिप्ट भाषाएं कुछ नौकरियों के लिए उपयोगी हैं, और चिंतनशील OO- भाषाएँ (जावा, ओबज-सी, सी #) नौकरियों के एक और वर्ग के लिए उपयोगी हैं, और सुपर -कुछ नंगे-हड्डियों के करीब-द-मशीन भाषाएँ अभी तक नौकरियों के एक और वर्ग (सी ++, सी, असेंबलर) के लिए उपयोगी हैं।
C ++ असेंबलर तकनीक को जटिलता प्रबंधन के अविश्वसनीय स्तरों तक विस्तारित करने का अद्भुत काम करता है, और प्रोग्रामिंग को बड़ा बनाने के लिए अमूर्तताएं, अधिक जटिल कार्य मानव के लिए बहुत अधिक संभव हैं। लेकिन यह जरूरी नहीं है कि एक भाषा जो उन लोगों के लिए सबसे उपयुक्त है जो अपनी समस्या को उच्च स्तर के दृष्टिकोण (लिस्प, स्मॉलटॉक, जावा, सी #) से प्राप्त कर रहे हैं। अगर आपको अपनी समस्याओं के समाधान के लिए उन विशेषताओं के साथ एक भाषा की आवश्यकता है, तो उन लोगों को धन्यवाद दें जिन्होंने ऐसी भाषाओं का उपयोग हम सभी के लिए किया है!
लेकिन C ++ उन लोगों के लिए है, जो भी कारण (ओं) के लिए, उनके कोड और अंतर्निहित मशीन के संचालन के बीच एक मजबूत सहसंबंध होना चाहिए। चाहे इसकी दक्षता, या प्रोग्रामिंग डिवाइस ड्राइवर, या निचले स्तर की ओएस सेवाओं के साथ बातचीत, या जो भी हो, सी ++ उन कार्यों के लिए बेहतर है।
सी #, जावा, ऑब्जेक्टिव-सी सभी को अपने निष्पादन का समर्थन करने के लिए बहुत बड़े, समृद्ध क्रम प्रणाली की आवश्यकता होती है। उस रनटाइम को सिस्टम में पहुंचाया जाना चाहिए - आपके सॉफ़्टवेयर के संचालन का समर्थन करने के लिए पूर्वस्थापित। और उस प्लेटफॉर्म पर काम करने के लिए SOME OTHER LANGUAGE द्वारा अनुकूलित विभिन्न लक्ष्य प्रणालियों के लिए उस परत को बनाए रखना पड़ता है। और वह मध्य परत - मेजबान ओएस और आपके कोड के बीच अनुकूली परत - रनटाइम, लगभग हमेशा C या C ++ जैसी भाषा में लिखा जाता है, जहां दक्षता # 1 है, जहां समझदारी से सॉफ्टवेयर और हार्डवेयर के बीच सटीक बातचीत अच्छी तरह से हो सकती है अधिकतम लाभ के लिए समझा, और हेरफेर किया।
मैं स्मॉलटाक, ऑब्जेक्टिव-सी से प्यार करता हूं, और प्रतिबिंब, मेटा-डेटा, कचरा संग्रह, आदि के साथ एक समृद्ध रनटाइम सिस्टम होने के कारण इन सुविधाओं का लाभ उठाने के लिए अद्भुत कोड लिखा जा सकता है! लेकिन यह केवल स्टैक पर एक उच्च परत है, एक परत जिसे निचली परतों पर आराम करना चाहिए, जो खुद को अंततः ओएस और हार्डवेयर पर बैठना होगा। और हमें हमेशा एक ऐसी भाषा की आवश्यकता होगी जो उस परत के निर्माण के लिए सबसे उपयुक्त हो: C ++ / C / Assembler।
परिशिष्ट: C ++ 11/14 उच्च स्तरीय सार और प्रणालियों का समर्थन करने के लिए C ++ क्षमता का विस्तार करने के लिए जारी है। थ्रेडिंग, सिंक्रोनाइज़ेशन, सटीक मेमोरी मॉडल, अधिक सटीक अमूर्त मशीन परिभाषाएँ C ++ डेवलपर्स को कई उच्च-स्तरीय अमूर्तताओं को प्राप्त करने में सक्षम कर रही हैं, जिनमें से कुछ उच्च-स्तरीय भाषाओं में केवल अनन्य डोमेन ओवर होते थे, जबकि करीब-करीब प्रदान करना जारी रहता है। धातु का प्रदर्शन और उत्कृष्ट भविष्यवाणी (यानी न्यूनतम रनटाइम सबसिस्टम)। शायद सी + + के भविष्य के संशोधन में प्रतिबिंब सुविधाओं को चुनिंदा रूप से सक्षम किया जाएगा, जो लोग इसे चाहते हैं - या शायद एक पुस्तकालय ऐसी रनटाइम सेवाएं प्रदान करेगा (शायद अब एक है, या एक को बढ़ावा देने की शुरुआत?)।