आदरणीय लेकिन सुस्त सी ++ को बदलने के प्रयास में, Google शोधकर्ताओं ने कार्बन नामक एक नई "प्रयोगात्मक" ओपन सोर्स प्रोग्रामिंग भाषा पेश की है।
कार्बन सी ++ की उत्तराधिकारी भाषा के रूप में काम कर सकता है, जो डेवलपर्स के लिए एक नई भाषा के लिए एक सरल प्रारंभिक बिंदु प्रदान करता है जो स्मृति सुरक्षा और जेनेरिक जैसी समकालीन विकास अवधारणाओं को संबोधित करता है।
यह उसी तरह होगा जैसे माइक्रोसॉफ्ट ने जावा में कमजोरियों को मजबूत करने के लिए जावास्क्रिप्ट और कोटलिन को अपडेट करने के लिए टाइपस्क्रिप्ट का निर्माण किया।
Google ने पूरे वर्षों में कई प्रोग्रामिंग भाषाएं विकसित की हैं, जिनमें से कुछ ने महत्वपूर्ण कुख्याति और प्रमुखता प्राप्त की है।
उदाहरण के लिए, गोलंग (या सिर्फ गो) को सर्वर और वितरित सिस्टम के निर्माण की सुविधा के लिए विकसित किया गया था और बाद में इसे आम जनता द्वारा अपनाया गया।
द डार्ट प्रोग्रामिंग भाषा, जिसे एक जावास्क्रिप्ट विकल्प के रूप में बनाया गया था, फ़्लटर के लॉन्च होने तक प्रसिद्ध नहीं हुआ।
एक Google कर्मचारी चांडलर कारुथ ने 19 जुलाई, 2022 को टोरंटो में Cpp उत्तर सम्मेलन में कार्बन नामक एक नई प्रोग्रामिंग भाषा के लिए अपना विचार प्रस्तुत किया, कॉनर होकेस्ट्रा के अनुसार, जिन्होंने भाग लिया और स्लाइड्स को रिकॉर्ड किया।
परिदृश्य को सेट करने के लिए, कैरथ ने प्रदर्शित किया कि वर्तमान समय की सबसे अच्छी तरह से पसंद की जाने वाली प्रोग्रामिंग भाषाओं में से कितने वंशज हैं जो डेवलपर्स को तेजी से उत्पादक बनने में सक्षम बनाते हैं और समकालीन भाषा डिजाइन से भी लाभान्वित होते हैं।
आइए कार्बन प्रोग्रामिंग भाषा के सामान्य परिचय के साथ शुरुआत करें, जिसमें इसकी विशेषताएं, Google के आविष्कार का उद्देश्य, और बहुत कुछ शामिल हैं।
कार्बन प्रोग्रामिंग भाषा का परिचय
19 जुलाई, 2022 को, Google ने कार्बन को उसके द्वारा बनाई गई नवीनतम प्रोग्रामिंग भाषा के रूप में प्रकट किया। इसका उद्देश्य सी ++ को प्रयोगात्मक रूप से बदलना था।
एक के लिए धन्यवाद जेनरिक प्रणाली, जो प्रत्येक तात्कालिकता के लिए कोड को दोबारा जांचने की आवश्यकता को समाप्त करता है, कार्बन का निर्माण आधुनिक प्रोग्रामिंग अवधारणाओं की नींव पर किया जाएगा।
वर्ष के अंत तक, डिजाइन एक बुनियादी परिचालन संस्करण (संस्करण 0.1) प्रदान करने की योजना बना रहा है।
मेमोरी अखंडता एक महत्वपूर्ण तत्व है जिसमें सी ++ गायब है। सुरक्षा खामियों के प्राथमिक स्रोतों में से एक मेमोरी एक्सेस की समस्या है।
डायनामिक बाउंड चेक का विकास, अप्रारंभीकृत राज्यों की अधिक ट्रैकिंग, और पूरी तरह से डिफ़ॉल्ट डिबग बिल्ड मोड कार्बन टीम के सभी लक्ष्य हैं। निर्माता समय के साथ एक सुरक्षित कार्बन उपसमुच्चय बनाना चाहते हैं।
हालाँकि, नई प्रोग्रामिंग भाषा की कुछ महत्वपूर्ण विशेषताएं निम्नलिखित हैं:
- नाम प्रकारों के लिए, अभिव्यक्तियों का उपयोग करें।
- परिभाषा जांच के साथ मजबूत जेनरिक
- प्रकार विशेष रूप से इंटरफेस करते हैं
- परिचय वाक्यांश और बुनियादी व्याकरण
- पॉइंटर्स अप्रतिबंधित पहुंच और उत्परिवर्तन की अनुमति देते हैं।
- फ़ंक्शन इनपुट पैरामीटर के मान केवल-पढ़ने के लिए हैं।
- रूट नेमस्पेस पैकेज है।
- एपीआई को उनके पैकेज नामों का उपयोग करके आयात किया जा सकता है।
- एक स्पष्ट ऑब्जेक्ट पैरामीटर के माध्यम से एक विधि घोषित की जाती है।
- डिफ़ॉल्ट रूप से कक्षाएं अंतिम होती हैं; केवल एक विरासत है
कार्बन की विशेषताएं
आधुनिक और विकासशील
- कार्बन संस्करणों के बीच उन्नयन सरल और उपकरण-आधारित हैं।
- मजबूत भाषा आधार, खासकर यदि आपने सी ++ का उपयोग किया है, और सीखने में आसान है
- सुरक्षित नींव और स्मृति-सुरक्षित उपसमुच्चय के लिए चरण-दर-चरण दृष्टिकोण
ओपन सोर्स के समुदाय का स्वागत
- एक समुदाय जो गर्मजोशी, स्वीकार करने और आमंत्रित करने का प्रयास करता है
- इसके उद्देश्य और प्राथमिकताएं विशिष्ट और मजबूत शासन हैं
- कंपाइलर, लाइब्रेरी, डॉक्यूमेंटेशन, टूल्स, पैकेज मैनेजमेंट, और बहुत कुछ के साथ एक ऑल-इन-वन रणनीति
C++ के साथ त्वरित और संगत
- साथ काम करें C ++ कोड आपके पास पहले से ही है, विरासत और टेम्पलेट्स सहित
- LLVM के साथ, C++ के तुलनीय प्रदर्शन और बिट्स और पतों तक निम्न-स्तरीय पहुंच
- ऐसे बिल्ड करता है जो आपके मौजूदा C++ बिल्ड सिस्टम के साथ त्वरित और स्केलेबल और संगत हैं
Google ने कार्बन प्रोग्रामिंग भाषा क्यों बनाई?
प्रदर्शन-महत्वपूर्ण सॉफ़्टवेयर को अधिकतर C++ में लिखा जाना जारी है, जिसमें विशाल और विस्तृत कोड आधार और निवेश हैं।
हालांकि, जैसा कि ऊपर उल्लेख किया गया है, डेवलपर्स की मांगों को आगे बढ़ाने और पूरा करने में परेशानी हो रही है, मुख्य रूप से तकनीकी ऋण के वर्षों के लायक होने के कारण।
तकनीकी ऋण के साथ-साथ इसकी विकास प्रक्रिया के साथ कठिनाइयों के कारण सी ++ में वृद्धिशील रूप से सुधार करना बेहद मुश्किल है।
इन मुद्दों को हल करने के लिए आदर्श दृष्टिकोण एक मजबूत भाषा नींव के साथ शुरू करना है, जैसे कि एक समकालीन जेनेरिक प्रणाली, मॉड्यूलर कोड संरचना, और सुसंगत, सीधा वाक्यविन्यास, सीधे सी या सी ++ की परंपरा को विरासत में लेने के बजाय।
गो, स्विफ्ट, कोटलिन, रस्ट, और कई अन्य समकालीन भाषाएं पहले से ही एक उत्कृष्ट विकास अनुभव प्रदान करती हैं। डेवलपर्स जो इन मौजूदा भाषाओं में से किसी एक का उपयोग करने में सक्षम हैं, उन्हें करना चाहिए।
दुर्भाग्य से, इन भाषाओं के डिजाइन से सी ++ को अपनाने और प्रवासन गंभीर रूप से बाधित हैं। इन बाधाओं में प्रदर्शन ओवरहेड और सॉफ़्टवेयर के मुहावरेदार डिज़ाइन में संशोधन शामिल हैं।
कार्बन धीरे-धीरे C++ में सुधार करने का प्रयास नहीं है; बल्कि, यह एक उत्तराधिकारी भाषा रणनीति है। इसका फोकस सी ++ इंटरऑपरेबिलिटी पर है, साथ ही डेवलपर्स और कोडबेस के लिए व्यापक स्वीकृति और माइग्रेशन वर्तमान में सी ++ का उपयोग कर रहा है।
एक सी ++ प्रतिस्थापन भाषा में होना चाहिए:
- C++ के तुलनीय प्रदर्शन डेवलपर्स के लिए एक महत्वपूर्ण विशेषता है।
- सी ++ प्रोग्रामर के लिए एक प्रबंधनीय सीखने की अवस्था और परिचितता का स्तर
- माइग्रेशन जो स्केलेबल है और इसमें कुछ स्रोत-से-स्रोत मुहावरेदार C++ कोड अनुवाद शामिल है।
- वर्तमान सॉफ्टवेयर की वास्तुकला और डिजाइन के लिए समान अभिव्यक्ति और समर्थन।
- सी ++ के साथ इंटरऑपरेबिलिटी जो निर्बाध और द्विदिश है, किसी भी पुस्तकालय को शेष स्टैक को पोर्ट किए बिना कार्बन को अपनाने की इजाजत देता है।
इस रणनीति के साथ, Google उस पारिस्थितिकी तंत्र को जोड़ता है जो पहले से ही C++ के लिए मौजूद है और वर्तमान निवेश, कोड आधार और विकास समुदायों को शामिल करता है।
कुछ भाषाओं ने विभिन्न पारिस्थितिक तंत्रों के लिए इस दृष्टिकोण को अपनाया है, और कार्बन इन स्थितियों में C++ के समान कार्य करना चाहता है:
- जावा - कोटलिन
- जावास्क्रिप्ट - टाइपस्क्रिप्ट
- सी ++ - कार्बन
सी ++ वीएस कार्बन कोड
यदि आप पहले से ही C++ डेवलपर हैं तो कार्बन में सीखने की अवस्था कम होनी चाहिए। यह व्याकरणिक निर्माणों के एक निश्चित सेट से बना है जो स्वाभाविक लगने चाहिए और पढ़ने और समझने में आसान होना चाहिए।
सी ++ कोड का एक उदाहरण:
यह कार्बन कोड निम्न से मेल खाता है:
कार्बन बनाम जंग
स्मृति-सुरक्षित प्रदर्शन अनुप्रयोगों की आवश्यकताओं को पूरा करने के लिए स्पष्ट रूप से डिज़ाइन की गई एक अन्य समकालीन भाषा को जंग कहा जाता है।
तो क्यों न केवल रस्ट का उपयोग करें?
जबकि कुछ लोगों का तर्क है कि रस्ट, जो एक मोज़िला परियोजना के रूप में शुरू हुआ और बाद में बड़े पैमाने पर जनता के रूप में विकसित हुआ, C++ का उत्तराधिकारी है, कैरथ को संदेह है कि क्या समानांतर अभी भी मान्य है।
जंग निस्संदेह एक शानदार भाषा है जिसके साथ एक नई परियोजना शुरू की जा सकती है, लेकिन चूंकि इसमें जावा और कोटलिन जैसी भाषाओं की "द्विदिशात्मक अंतर" की कमी है, इसलिए इसे धीरे-धीरे संक्रमण करना चुनौतीपूर्ण है।
कैरथ ने सीपीपी नॉर्थ में एक व्याख्यान दिया और उन लोगों को प्रोत्साहित किया जो पहले से ही रस्ट का इस्तेमाल कर रहे थे। जिन डेवलपर्स के पास पहले से ही बड़े आकार के C++ कोडबेस हैं, जो जंग में बदलने के लिए चुनौतीपूर्ण हैं, उन्हें कार्बन का उपयोग करना चाहिए।
विशेष रूप से, कार्बन वह है जिसे कैरथ ने "उत्तराधिकारी भाषा" के रूप में संदर्भित किया है, जिसे मौजूदा पारिस्थितिक तंत्र के शीर्ष पर बनाया गया है, इस उदाहरण में सी ++।
उस उद्देश्य के लिए, कार्बन का मतलब वर्तमान सी ++ कोड के साथ पूरी तरह से संगत होना है, भले ही इसके कई उद्देश्य जंग के साथ हों, जैसे "प्रदर्शन-महत्वपूर्ण एप्लिकेशन" बनाने में प्रोग्रामर की सहायता करना।
इसके अलावा, इसका उद्देश्य C++ से कार्बन की ओर जाना यथासंभव सरल बनाना है।
निष्कर्ष
अंत में, कार्बन भाषा के रचनाकारों ने निर्माण प्रक्रिया पर ध्यान देने का प्रयास किया। परियोजना का कोड अनुरोध के लिए उपलब्ध है और खुले तौर पर संग्रहीत किया जाता है Github, और इसकी संस्कृति को निजी नागरिकों और आईटी क्षेत्र दोनों के लिए समावेशी और खुला के रूप में परिभाषित किया गया है।
कार्बन टीम ने सोचा कि कार्बन को समुदाय द्वारा संचालित एक स्वायत्त परियोजना की आवश्यकता है, न कि भविष्य में विकसित होने के लिए केवल Google द्वारा संचालित एक परियोजना की।
कारुथ ने कहा कि कई आईटी व्यवसायों की रुचि के बावजूद, यह अवधारणा अभी भी प्रायोगिक चरण में है।
एक जवाब लिखें