- Google Chrome टीम ने C++20 अपनाते समय सामने आई लगभग 40 समस्याओं की सूची बनाई और उनके समाधान व्यवस्थित किए
- C++ standard हर 3 साल में आता है, और release के बाद Chrome में इसका पहला उपयोग लगभग 3 साल बाद ही हो पाता है
- C++20 में कई बदलाव हैं
- support हटना, comparison operators का पुनर्व्यवस्थापन, aggregation rules में बदलाव..
- समस्याएँ
- Google की style guide, C++17 पर आधारित है
- Clang का C++20 support अभी अधूरा है, और नए libc++ की ज़रूरत है
- Windows binaries का आकार बढ़ जाता है
std::iterator support हटाया गया है (C++17 से)
concept, requires जैसे नए keywords जोड़े गए हैं, इसलिए अगर वही variable names हों तो टकराव हो सकता है
- इसके अलावा भी कई अन्य
6 टिप्पणियां
अरे… C++ जैसी भाषा को इतने ज़्यादा breaking changes नहीं बनाने चाहिए, है ना… या फिर ये बस मेरी अपनी तय धारणा है…
इसीलिए C++ एक अजीब भाषा है.. भाषा लगातार version upgrade होती रहती है, modules, coroutines वगैरह बहुत कुछ जुड़ता रहता है, और यह खुद ही सब कुछ करना चाहती है।
कोई feature आता है तो compilers में वह 4-5 साल बाद जुड़ता है,
हर compiler में क्या किया जा सकता है इसमें फर्क होता है, syntax में भी थोड़ा-थोड़ा अंतर होता है,
version upgrade होते-होते जो चीजें आराम से इस्तेमाल करते थे वे भी धीरे-धीरे गायब हो जाती हैं,
STL बड़ा होता जाता है, और version upgrade के साथ पुराने computers पर चलना भी बंद हो जाता है..
अगर इस्तेमाल करना ही है, तो मैं कहूँगा कि Go या Python इस्तेमाल करें
वर्ज़न अपग्रेड के साथ जिन आइटम्स में backward compatibility बरकरार नहीं रही, उनमें ज़्यादातर मामले undefined behavior या defects वाले फीचर्स को बेहतर बनाने के थे.
मॉड्यूल, concepts, coroutines जैसे फीचर्स दूसरी भाषाओं की तरह यह दिखाते हैं कि भाषा लगातार विकसित हो रही है.
खासकर modules के मामले में, यह तो पहले से चली आ रही मांग थी.
मुझे यक़ीन नहीं है कि
std::iteratorके लिए support बंद किया जाना उस श्रेणी में आता है या नहीं, जिसका आपने ज़िक्र किया था: "undefined behavior या defects वाले features को बेहतर बनाना"।हालाँकि C++ दूसरी भाषाओं की तुलना में जिन मामलों में काफी पीछे है, वे मोटे तौर पर ये हैं।
इनमें, कम्युनिटी की उदासीनता की वजह से अच्छी गुणवत्ता वाले articles बहुत कम हैं,
और कम यूज़र संख्या के कारण बाकी तीन समस्याएँ भी हल नहीं हो पा रही हैं — मुझे लगता है कि यह एक बड़ा कारण है.