वी अलेक्जेंडर मेदवेदनिकोव द्वारा बनाई गई एक नई, ओपन-सोर्स, सांख्यिकीय रूप से टाइप की गई प्रोग्रामिंग भाषा है। V सरल, तेज और सुरक्षित होने का वादा करता है जिसके साथ मेंटेनेबल सॉफ्टवेयर बनाया जा सकता है। ओबेरॉन, स्विफ्ट, कोटलिन और पायथन सहित कई भाषाओं ने वी के डिजाइन को प्रभावित किया है।

V, इसकी विशेषताओं और अन्य भाषाओं की तुलना में इसकी तुलना के बारे में जानें।

चीजें जो आप V. के साथ कर सकते हैं

V में बहुत अधिक शक्ति है और आप इसे सिस्टम प्रोग्रामिंग, वेब डेवलपमेंट और गेम डेवलपमेंट सहित लगभग किसी भी उद्योग में उपयोग कर सकते हैं। भाषा सीधी, तेज और सुरक्षित है।

वी खेल के विकास के लिए शक्तिशाली ग्राफिक्स पुस्तकालयों की एक विस्तृत श्रृंखला प्रदान करता है। ये अधिक परिष्कृत 2D/3D अनुप्रयोगों के लिए GDI+/Cocoa Drawing और OpenGL के शीर्ष पर निर्मित होते हैं।

V में एक UI मॉड्यूल है जो मोबाइल ऐप्स के लिए देशी GUI टूलकिट, Windows के लिए WinAPI/GDI+, macOS के लिए Cocoa, और Linux के लिए कस्टम ड्राइंग को नियोजित करता है।

कोशिश करने के कारण V

हालाँकि V एक नई भाषा है, लेकिन ये लाभ इसे एक वैध विकल्प बनाते हैं।

सादगी

instagram viewer

अपनी परियोजना बनाने के लिए, आपको बस चलाने की जरूरत है:

वी.

आपको बिल्ड वातावरण सेट करने, मेकफ़ाइल बनाने, हेडर आयात करने या वर्चुअल वातावरण सेट करने की आवश्यकता नहीं है। यदि आप के माध्यम से नए पुस्तकालय स्थापित करना चाहते हैं वीपीएम (वी पैकेज मैनेजर), बस रन

वी इंस्टाल <पैकेज का नाम>

सुरक्षा

डिफ़ॉल्ट रूप से, V के पास है:

  • अपरिवर्तनीय चर
  • अपरिवर्तनीय संरचनाएं
  • विकल्प/परिणाम और अनिवार्य त्रुटि जांच
  • योग प्रकार
  • जेनरिक
  • अपरिवर्तनीय फ़ंक्शन args

और नहीं:

  • शून्य
  • परिवर्तनीय छायांकन
  • अपरिभाषित व्यवहार
  • वैश्विक चर (झंडे के माध्यम से कर्नेल जैसे निम्न-स्तरीय ऐप्स के लिए सक्षम किया जा सकता है)

संकलन गति

निष्पादन या संकलन के मामले में कुछ प्रोग्रामिंग भाषाएं दूसरों की तुलना में तेज़ होती हैं। V, C की तरह ही प्रदर्शनकारी है। इसमें C बैकएंड के साथ लगभग 110k loc/s का संकलन समय है और देशी और tcc बैकएंड के साथ लगभग 1 मिलियन loc/s है। V सरल-अमूर्त-मुक्त कोडिंग दृष्टिकोण प्रदान करने के लिए अनावश्यक आवंटन से भी बचता है।

स्मृति प्रबंधन

V कचरा संग्रहकर्ता का उपयोग नहीं करता है, जो इसे गो और जावा जैसी भाषाओं से अलग बनाता है। इसके बजाय, V संकलन समय पर मेमोरी का प्रबंधन करता है, लेकिन केवल बुनियादी स्थितियों के लिए काम करता है। अधिक जटिल मामलों के लिए आपको इसे मैन्युअल रूप से प्रबंधित करने की आवश्यकता है।

कोड शैली संगति के लिए स्वरूपण

आप का उपयोग कर सकते हैं वीएफएमटी अपने वी कोड को प्रारूपित करने और चलाकर इसकी पठनीयता में सुधार करने के लिए फ़ॉर्मेटर:

वी एफएमटी -डब्ल्यू <आपका_फ़ाइलनाम>.v

अनुकूल त्रुटि संदेश

वी के त्रुटि संदेश विस्तृत, सूचनात्मक और सहायक हैं। इस उदाहरण पर एक नज़र डालें:

user.v:8:14: गलती: `update_user` पैरामीटर `उपयोगकर्ता` परिवर्तनशील है, आपको प्रदान करने की आवश्यकता है 'म्यूट': `update_user (म्यूट यूजर)`
7 | म्यूट यूजर:= यूजर{}
8 | update_user (उपयोगकर्ता)
| ~~~~
9 | }

त्रुटि संदेश की सहायता से, आप इस कोड को ठीक कर सकते हैं:

म्यूट यूजर:= यूजर{}
update_user (म्यूट यूजर)

सी ++ बनाम। जाओ बनाम। वी: तीन भाषाओं की तुलना

इन उदाहरणों में, आप देख सकते हैं कि विशिष्ट प्रोग्रामिंग उपयोग के मामलों में C++, Go, और V कोड कैसे भिन्न हैं।

नमस्ते दुनिया

सी ++ में:

#शामिल <iostream>

पूर्णांकमुख्य(){
एसटीडी:: कोउट <<"हैलो वर्ल्ड!"<< एसटीडी:: एंडएल;
}

जाने में:

पैकेट मुख्य
आयात "एफएमटी"

समारोह मुख्य(){
एफएमटी प्रिंट्लन("हैलो वर्ल्ड!")
}

वी में:

प्रिंट्लन ('हैलो वर्ल्ड!')

इस बहुत ही बुनियादी कार्यक्रम में-"हैलो वर्ल्ड!" टेक्स्ट प्रिंट करना—आप देख सकते हैं कि V, C++ या Go की तुलना में बहुत आसान है। इस तरह के एक सीधे कार्यक्रम के लिए आपको किसी पुस्तकालय को आयात या शामिल करने की आवश्यकता नहीं है।

वेक्टर आरंभीकरण

सी ++ में:

एसटीडी:: वेक्टर<पूर्णांक> संख्याएँ = {1, 2, 3, 4};

जाने में:

संख्या: = []पूर्णांक{1, 2, 3, 4}

वी में:

संख्याएँ := [1, 2, 3, 4]

इस उपयोग के मामले में, आप देख सकते हैं कि वी अभी भी दो अन्य की तुलना में क्लीनर कोड उत्पन्न करता है। गो और के विपरीत सी ++ वैक्टर, V को एक निश्चित प्रकार के मान रखने के लिए अपने वैक्टर की आवश्यकता नहीं होती है।

एक वेक्टर मुद्रण

सी ++ में:

कक्षा::प्रतिलिपि (संख्या। शुरू ()), नंबर।समाप्त(),
एसटीडी:: ostream_iterator<पूर्णांक>(एसटीडी:: कॉउट, ""));

एसटीडी:: कॉउट << एसटीडी:: एंडल;

जाने में:

एफएमटी.प्रिंट्लन(नंबर)

वी में:

प्रिंट्लन (संख्या)

V का println फ़ंक्शन, गो के कैन की तरह, वेक्टर वैरिएबल को मूल रूप से प्रिंट कर सकता है, हालाँकि बाद वाला fmt पैकेज का उपयोग करता है। C++ iostream हेडर फाइलें समान कार्यक्षमता प्रदान करती हैं। हालाँकि, आपको अभी भी वेक्टर के अलग-अलग तत्वों को स्वयं प्रिंट करने का ध्यान रखना होगा।

एक फाइल पढ़ना

सी ++ में:

#शामिल
#शामिल

पूर्णांकमुख्य(){
कक्षा::डोरी पथ = "/ आदि/मेजबान";
कक्षा::ifstream एफ(रास्ता);
कक्षा::डोरी मूलपाठ;
पाठ। असाइन करें (कक्षा::istreambuf_iterator<चारो>(च), {});

यदि (!एफ)
कक्षा::सेरा << "फ़ाइल से पढ़ने में त्रुटि" << कक्षा::एंडली;
}

जाने में:

पैकेट मुख्य

आयात (
"io/ioutil"
"लकड़ी का लट्ठा"
)

समारोह मुख्य(){
पथ := "/etc/hosts"
बी, त्रुटि: = ioutil. रीडफाइल (पथ)

अगर गलती!= शून्य {
लकड़ी का लट्ठा.प्रिंट्लन(ग़लती होना)
वापसी
}

पाठ: = स्ट्रिंग (बी)
}

वी में:

आयात ओएस

पथ := "/etc/hosts"
पाठ:= os.read_file (पथ) या {
eprintln (गलती)
वापसी
}

फ़ाइल पढ़ने के लिए, V सामान्य OS/प्लेटफ़ॉर्म स्वतंत्र कार्य प्रदान करने के लिए os मॉड्यूल का उपयोग करता है। ये कमांड लाइन तर्कों तक पहुँचने, फाइलों को पढ़ने और प्रक्रियाओं को संभालने जैसे कार्यों को संभालते हैं। इस मामले में, हम एक फाइल को पढ़ना चाहते हैं रास्ता और सामग्री वापस करें, तो आप इसका उपयोग करेंगे read_file (पथ) समारोह। यदि दिए गए में कोई मौजूदा सामग्री नहीं है तो read_file एक त्रुटि देता है रास्ता. यदि आप इसके बारे में अधिक जानना चाहते हैं V. के अन्य मॉड्यूल, हो सकता है कि आप उनके दस्तावेज़ देखना चाहें।

वी कोशिश करने के लिए तैयार हैं?

V एक नई प्रोग्रामिंग भाषा है जो अभी भी विकास के अपने प्रारंभिक चरण में है। फिर भी, इसमें बहुत अधिक शक्ति है और यह त्वरित, सुरक्षित, आसान और रखरखाव योग्य है।

V में C++ और Go की तुलना में क्लीनर कोड है। इससे पता चलता है कि V प्रोग्रामर्स को प्रोग्रामिंग के बुनियादी सिद्धांतों में से एक का पालन करने में मदद कर सकता है। तो, क्या आप V को आज़माने के लिए तैयार हैं?