आदरणीय तर सुस्त C++ लाई प्रतिस्थापन गर्ने प्रयासमा, Google अनुसन्धानकर्ताहरूले कार्बन डब गरिएको एकदम नयाँ "प्रयोगात्मक" खुला स्रोत प्रोग्रामिङ भाषा प्रस्तुत गरेका छन्।
कार्बनले C++ को उत्तराधिकारी भाषाको रूपमा काम गर्न सक्छ, जसले विकासकर्ताहरूलाई नयाँ भाषाको लागि सरल सुरूवात बिन्दु प्रदान गर्दछ जसले मेमोरी सुरक्षा र जेनेरिकहरू जस्ता समकालीन विकास अवधारणाहरूलाई सम्बोधन गर्दछ।
यो कसरी Microsoft ले JavaScript र Kotlin अपडेट गर्न Typescript बनायो जाभामा कमजोरीहरूलाई बलियो बनाउनको लागि समान हुनेछ।
गुगलले धेरै वर्षहरूमा प्रोग्रामिङ भाषाहरू विकास गरेको छ, जसमध्ये केहीले महत्त्वपूर्ण कुख्यात र प्रमुखता प्राप्त गरेका छन्।
उदाहरण को लागी, Golang (वा केवल गो) को सर्भर र वितरण प्रणाली को निर्माण को सुविधा को लागी विकसित गरिएको थियो र पछि सामान्य जनता द्वारा अँगालेको छ।
डार्ट प्रोग्रामिंग भाषा, जुन JavaScript को विकल्पको रूपमा सिर्जना गरिएको थियो, Flutter को सुरुवात नभएसम्म राम्रोसँग परिचित भएन।
गुगलका कर्मचारी चन्डलर कारुथले जुलाई १९, २०२२ मा टोरन्टोमा भएको Cpp उत्तर सम्मेलनमा कार्बन नामक नयाँ प्रोग्रामिङ भाषाको लागि आफ्नो विचार प्रस्तुत गरे, Conor Hoekstra के अनुसार, जसले स्लाइडहरू उपस्थित र रेकर्ड गरे।
परिदृश्य सेट गर्नको लागि, Carruth ले प्रदर्शन गर्यो कि कसरी वर्तमान दिनका धेरै मनपर्ने प्रोग्रामिङ भाषाहरू सन्तानहरू छन् जसले विकासकर्ताहरूलाई द्रुत रूपमा उत्पादनशील हुन र समकालीन भाषा डिजाइनबाट फाइदा लिन सक्षम बनाउँछ।
कार्बन प्रोग्रामिङ भाषाको सामान्य परिचय, यसका विशेषताहरू, गुगलको आविष्कारको उद्देश्य र थप कुराहरू सहित सुरु गरौं।
कार्बन प्रोग्रामिङ भाषाको परिचय
जुलाई १९, २०२२ मा, गुगलले कार्बनलाई आफूले सिर्जना गरेको सबैभन्दा नयाँ प्रोग्रामिङ भाषाको रूपमा खुलासा गर्यो। यो प्रयोगात्मक रूपमा C++ प्रतिस्थापन गर्ने उद्देश्य थियो।
धन्यवाद एक जेनेरिक प्रणाली, जसले प्रत्येक इन्स्ट्यान्टेशनको लागि कोड डबल-जाँच गर्ने आवश्यकतालाई हटाउँछ, कार्बन आधुनिक प्रोग्रामिङ अवधारणाहरूको आधारमा निर्माण गरिनेछ।
वर्षको अन्त्यसम्ममा, डिजाइनले आधारभूत परिचालन संस्करण (संस्करण ०.१) उपलब्ध गराउने योजना बनाएको छ।
मेमोरी अखंडता एक महत्त्वपूर्ण तत्व हो जुन C++ हराइरहेको छ। सुरक्षा त्रुटिहरूको प्राथमिक स्रोतहरू मध्ये एक मेमोरी पहुँच समस्याहरू हो।
डायनामिक बाउन्ड चेकको विकास, अनइनिशियलाइज्ड स्टेटहरूको ठूलो ट्र्याकिङ, र पूर्ण पूर्वनिर्धारित डिबग बिल्ड मोड कार्बन टोलीका सबै लक्ष्यहरू हुन्। सिर्जनाकर्ताहरूले समयसँगै एक सुरक्षित कार्बन उपसमूह सिर्जना गर्ने इरादा राख्छन्।
यद्यपि, निम्न नयाँ प्रोग्रामिङ भाषाका केही महत्त्वपूर्ण विशेषताहरू छन्:
- प्रकारहरू नाम गर्न, अभिव्यक्तिहरू प्रयोग गर्नुहोस्।
- परिभाषा जाँचको साथ बलियो जेनेरिकहरू
- प्रकारहरू विशेष रूपमा इन्टरफेसहरू पूरा गर्छन्
- परिचय वाक्यांश र आधारभूत व्याकरण
- सूचकहरूले असीमित पहुँच र उत्परिवर्तनको लागि अनुमति दिन्छ।
- प्रकार्य इनपुट प्यारामिटरहरूको लागि मानहरू पढ्न-मात्र हुन्।
- रूट नेमस्पेस प्याकेज हो।
- API हरू तिनीहरूको प्याकेज नामहरू प्रयोग गरेर आयात गर्न सकिन्छ।
- एक विधि स्पष्ट वस्तु प्यारामिटर मार्फत घोषणा गरिएको छ।
- कक्षाहरू पूर्वनिर्धारित रूपमा अन्तिम हुन्छन्; त्यहाँ एक मात्र उत्तराधिकार छ
कार्बन को विशेषताहरु
आधुनिक र विकासशील
- कार्बन संस्करणहरू बीच अपग्रेडहरू सरल र उपकरण-आधारित छन्।
- कडा भाषा आधारभूत, विशेष गरी यदि तपाईंले C++ प्रयोग गर्नुभएको छ, र सिक्न सजिलो छ
- सुरक्षित आधारहरू र मेमोरी-सुरक्षित सबसेटको लागि चरण-दर-चरण दृष्टिकोण
खुला स्रोतको समुदायलाई स्वागत गर्दै
- न्यानो, स्वीकार र आमन्त्रित हुन प्रयास गर्ने समुदाय
- यसको उद्देश्य र प्राथमिकताहरू स्पष्ट र बलियो शासन हो
- कम्पाइलर, पुस्तकालयहरू, कागजातहरू, उपकरणहरू, प्याकेज व्यवस्थापन, र थपको साथ एक सबै-मा-एक रणनीति
द्रुत र C++ सँग उपयुक्त
- सँगसँगै काम गर्नुहोस् C ++ कोड विरासत र टेम्प्लेटहरू सहित तपाईंसँग पहिले नै छ
- LLVM सँग, C++ सँग तुलनात्मक प्रदर्शन र बिट र ठेगानाहरूमा निम्न-स्तर पहुँच
- तपाईंको अवस्थित C++ निर्माण प्रणालीहरूसँग द्रुत र स्केलेबल र उपयुक्त निर्माणहरू
गुगलले किन बनायो कार्बन प्रोग्रामिङ भाषा?
कार्यसम्पादन-महत्वपूर्ण सफ्टवेयर प्रायः C++ मा लेखिने क्रम जारी छ, जसमा विशाल र विस्तार हुने कोडबेसहरू र लगानीहरू छन्।
यद्यपि, माथि उल्लेख गरिए अनुसार विकासकर्ताहरूको मागहरू अगाडि बढाउन र पूरा गर्न समस्या भइरहेको छ, मुख्यतया वर्षौंको प्राविधिक ऋण उठाउने कारणले।
यो बढ्दो रूपमा C++ सुधार गर्न एकदमै गाह्रो छ किनभने यसले प्राविधिक ऋणको साथसाथै यसको विकास प्रक्रियामा कठिनाइहरू जम्मा गरेको छ।
यी समस्याहरू समाधान गर्नको लागि आदर्श दृष्टिकोण भनेको C वा C++ को परम्परालाई सीधै इनहेरिट गर्नुको सट्टा समकालीन जेनेरिक प्रणाली, मोड्युलर कोड संरचना, र लगातार, सीधा वाक्य रचना जस्ता बलियो भाषा आधारबाट सुरु गर्नु हो।
Go, Swift, Kotlin, Rust, र धेरै अन्य समकालीन भाषाहरूले पहिले नै उत्कृष्ट विकास अनुभव प्रदान गर्दछ। यी वर्तमान भाषाहरू मध्ये एक प्रयोग गर्न सक्षम विकासकर्ताहरूले गर्नुपर्छ।
दुर्भाग्यवश, C++ बाट ग्रहण र माइग्रेसनलाई यी भाषाहरूको डिजाइनले गम्भीर रूपमा बाधित गरेको छ। यी अवरोधहरूमा कार्यसम्पादन ओभरहेड र सफ्टवेयरको इडियोमेटिक डिजाइनमा परिमार्जनहरू समावेश छन्।
कार्बन क्रमशः C++ सुधार गर्ने प्रयास होइन; बरु, यो एक उत्तराधिकारी भाषा रणनीति हो। यसको फोकस C++ अन्तरसञ्चालनमा छ, साथै विकासकर्ताहरू र कोडबेसहरूको लागि व्यापक स्वीकृति र माइग्रेसन हाल C++ प्रयोग गर्दैछ।
C++ प्रतिस्थापन भाषा हुनु पर्छ:
- C++ सँग तुलनात्मक प्रदर्शन विकासकर्ताहरूको लागि महत्त्वपूर्ण विशेषता हो।
- C++ प्रोग्रामरहरूका लागि व्यवस्थित सिकाइ वक्र र परिचितताको स्तर
- माइग्रेसन जुन मापनयोग्य छ र केही स्रोत-देखि-स्रोत मुहावराबद्ध C++ कोड अनुवाद समावेश गर्दछ।
- हालको सफ्टवेयरको वास्तुकला र डिजाइनको लागि समान अभिव्यक्ति र समर्थन।
- C++ सँग अन्तरसञ्चालनशीलता जुन सिमलेस र द्विदिशात्मक छ, जसले कुनै पनि पुस्तकालयलाई बाँकी स्ट्याक पोर्ट नगरिकन कार्बनलाई अपनाउन अनुमति दिन्छ।
यस रणनीतिको साथ, Google ले C++ को लागि पहिले नै अवस्थित इकोसिस्टममा थप्छ र हालको लगानी, कोडबेस र विकास समुदायहरू समावेश गर्दछ।
केही भाषाहरूले विभिन्न इकोसिस्टमहरूको लागि यो दृष्टिकोण अपनाएका छन्, र कार्बनले यी परिस्थितिहरूमा C++ सँग समान प्रकार्य खेल्न खोज्छ:
- जाभा - कोटलिन
- जाभास्क्रिप्ट - टाइपस्क्रिप्ट
- C++ - कार्बन
C++ VS कार्बन कोड
यदि तपाईं पहिले नै C++ विकासकर्ता हुनुहुन्छ भने कार्बनमा कम सिकाइ कर्भ हुनुपर्छ। यो व्याकरणीय संरचनाहरूको निश्चित सेटबाट बनेको छ जुन प्राकृतिक सुनिन्छ र पढ्न र बुझ्नको लागि सरल हुनुपर्छ।
C++ कोडको उदाहरण:
यो कार्बन कोडसँग मेल खान्छ:
कार्बन बनाम रस्ट
मेमोरी-सुरक्षित प्रदर्शन अनुप्रयोगहरूको आवश्यकताहरू पूरा गर्न स्पष्ट रूपमा डिजाइन गरिएको अर्को समकालीन भाषालाई रस्ट भनिन्छ।
त्यसोभए किन केवल रस्ट प्रयोग नगर्ने?
जबकि कोही-कोही तर्क गर्छन् कि रस्ट, जुन मोजिला परियोजनाको रूपमा सुरु भयो र पछि ठूलो संख्यामा पब्लिक फलोइङको रूपमा बढेको छ, C++ को उत्तराधिकारी हो, कारुथले समानान्तर अझै मान्य छ कि छैन भनेर शंका गर्छ।
रस्ट निस्सन्देह एक शानदार भाषा हो जसको साथ नयाँ परियोजना सुरु गर्न, तर जाभा र कोटलिन जस्ता भाषाहरूको "द्विदिशात्मक अन्तरसञ्चालन" को अभाव भएकोले, यसलाई क्रमशः परिवर्तन गर्न चुनौतीपूर्ण छ।
Carruth CPP उत्तर मा एक व्याख्यान दिए र पहिले नै रस्ट प्रयोग गरिरहने मानिसहरूलाई त्यसो गरिरहन प्रोत्साहित गरे। विकासकर्ताहरूसँग पहिले नै ठूलो C++ कोडबेसहरू छन् जुन Rust मा रूपान्तरण गर्न चुनौतीपूर्ण छन् कार्बन प्रयोग गर्नुपर्छ।
विशेष गरी, कार्बनलाई Carruth ले "उत्तराधिकारी भाषा" को रूपमा उल्लेख गरेको छ, जुन अवस्थित इकोसिस्टमको शीर्षमा निर्माण गरिएको छ, यो उदाहरण C++ मा।
त्यस उद्देश्यका लागि, कार्बनलाई हालको C++ कोडसँग पूर्ण रूपमा मिल्दो बनाउनको लागि हो, रस्टसँग धेरै उद्देश्यहरू भए पनि, जस्तै "कार्यसम्पादन-महत्वपूर्ण अनुप्रयोगहरू" सिर्जना गर्न प्रोग्रामरहरूलाई सहयोग गर्ने।
थप रूपमा, यो C++ बाट कार्बनमा सार्न सकेसम्म सरल बनाउनको लागि लक्षित छ।
निष्कर्ष
अन्तमा, कार्बन भाषा सिर्जनाकर्ताहरूले सिर्जना प्रक्रियामा ध्यान दिन प्रयास गरे। परियोजनाको कोड अनुरोधको लागि उपलब्ध छ र खुला रूपमा भण्डारण गरिएको छ Github, र यसको संस्कृतिलाई समावेशी र निजी नागरिक र आईटी क्षेत्र दुवैका लागि खुला रूपमा परिभाषित गरिएको छ।
कार्बन टोलीले सोचे कि कार्बन समुदायद्वारा संचालित एक स्वायत्त परियोजना हुनु आवश्यक छ र भविष्यमा विकास गर्न Google द्वारा इन्धन गरिएको परियोजना मात्र होइन।
कारुथले थपे कि धेरै आईटी व्यवसायहरूबाट चासो भए तापनि यो अवधारणा अझै प्रयोगात्मक चरणमा छ।
जवाफ छाड्नुस्