अधिकांश लिनक्स प्रोग्राम सी में क्यों लिखे गए हैं? वे C ++ के साथ क्यों नहीं लिखे गए, जो नया है?
अधिकांश लिनक्स प्रोग्राम सी में क्यों लिखे गए हैं? वे C ++ के साथ क्यों नहीं लिखे गए, जो नया है?
जवाबों:
इसको लेकर कई चर्चाएं हुई हैं। मुख्य रूप से, कारण एक दार्शनिक है। सी का आविष्कार सिस्टम डेवलपमेंट (इतना अनुप्रयोग विकास नहीं) के लिए एक सरल भाषा के रूप में किया गया था। C ++ का उपयोग करने के लिए कई तर्क हैं, लेकिन C ++ का उपयोग नहीं करने और C से चिपके रहने के कई कारण हैं।
अंत में, यह एक ऐतिहासिक मुद्दा है। अधिकांश अनुप्रयोग सामग्री सी में लिखी गई है, क्योंकि अधिकांश कर्नेल सामान सी में लिखा गया है और पीछे से तब अधिकांश सामान सी में लिखा गया था, लोग मूल भाषाओं का उपयोग करते हैं।
इस बिंदु पर, कोई व्यक्ति पूछ सकता है "ठीक है, इसलिए कर्नेल को C में क्यों लिखा गया है और C ++ में पोर्ट नहीं किया गया है?" । कुछ समय पहले kerneltrap पर इस पर चर्चा की गई है । इस धागे से उद्धृत की जाने वाली एक अच्छी व्याख्या yoshi314 (सीधे उद्धृत करते हुए) की प्रतिक्रिया है :
ऐसा इसलिए है क्योंकि लगभग हर सी ++ ऐप को संचालित करने के लिए एक अलग सी ++ मानक पुस्तकालय की आवश्यकता होती है। इसलिए उन्हें इसे कर्नेल में पोर्ट करना होगा, और हर जगह एक अतिरिक्त ओवरहेड की उम्मीद करनी होगी।
c ++ अधिक जटिल भाषा है और इसका मतलब है कि संकलक इससे अधिक जटिल कोड बनाता है। इस वजह से, यह समझना कि एक समस्या संकलक बग से उपजी है, बजाय कोड त्रुटि सी में आसान है।
सी भाषा भी अधिक नंगे है, और इसके विधानसभा प्रतिनिधित्व का पालन करना आसान है, जो अक्सर भविष्यवाणी करना आसान है।
सी ++ अधिक बहुमुखी है, लेकिन सी लोवेल या एम्बेडेड सामान के लिए अधिक अनुकूल है।
दूसरी ओर, "अधिकांश लिनक्स प्रोग्राम" काफी भ्रामक हैं। चित्रमय अनुप्रयोगों पर एक नज़र डालें। विशेष रूप से लिनक्स पर GUI वातावरण में पायथन को अधिक से अधिक आधार मिल रहा है। उसी चीज़ के बारे में जो विंडोज और .NET के साथ हो रही है।
लिनुस टॉर्वाल्ड्स से निम्नलिखित ईमेल पढ़ने के बाद लिनक्स के निर्माता। मैं यह सोचने में मदद नहीं कर सकता कि उपरोक्त उत्तर गलत है। उसे लगता है कि C ++ प्रोग्रामर अच्छे सिस्टम प्रोग्रामर नहीं हैं । और यह कि C ++ में अतिरिक्त विशेषताएं अक्सर अल्पावधि में लाए जाने वाले लाभों की तुलना में लंबी अवधि में अधिक समस्याएं पैदा करती हैं। हालांकि कोई उससे असहमत हो सकता है, लेकिन लिनक्स ऑपरेटिंग सिस्टम पर उसके प्रभाव को खत्म करना मुश्किल है।
C++
की तुलना में नया हैC
, लेकिन यह थोड़ा अप्रासंगिक है। वे अलग-अलग भाषाएं हैं।