V پروگرامنگ ٻولي اوپن سورس

ترجمو ٿيل لاءِ اوپن ڪمپلر جي درجي ۾ ٻولي V. V هڪ مستحڪم ٽائيپ ٿيل مشين-مرتب ٿيل ٻولي آهي جيڪا ترقي کي برقرار رکڻ لاءِ آسان ۽ مرتب ڪرڻ لاءِ تمام تيز بڻائڻ تي ڌيان ڏئي ٿي. گڏ ڪرڻ وارو ڪوڊ، لائبريريون ۽ لاڳاپيل اوزار کليل آهي MIT لائسنس تحت.

V جو نحو بلڪل Go سان ملندڙ جلندڙ آهي، اوبرون، Rust ۽ Swift کان ڪجهه تعميرات قرض وٺي. ٻولي کي جيترو ٿي سگهي آسان ڪيو ويو آهي ۽، ڊولپر جي مطابق، 30 منٽن جو مطالعو ڪافي آهي بنياديات سکڻ لاءِ دستاويز. ساڳئي وقت، ٻولي ڪافي طاقتور رهي ٿي ۽ ساڳئي ڪمن کي انجام ڏيڻ لاء استعمال ڪري سگهجي ٿي جڏهن ٻين پروگرامنگ ٻولين کي استعمال ڪندي (مثال طور، لائبريريون موجود آهن 2D / 3D گرافڪس لاء، GUIs ۽ ويب ايپليڪيشن ٺاهڻ).

نئين ٻوليءَ جي ٺهڻ جي خواهش ڪئي وئي ته گو ٻوليءَ جي نحو جي سادگي، تاليف جي رفتار، عملن جي برابري ۾ آساني، C/C++ جي ڪارڪردگيءَ سان ڪوڊ جي پورٽيبلٽي ۽ برقرار رکڻ، زنگ جي حفاظت ۽ حفاظت. Zig تاليف اسٽيج تي مشين ڪوڊ جو نسل. مان پڻ هڪ ڪمپيڪٽ ۽ تيز مرتب ڪندڙ حاصل ڪرڻ چاهيان ٿو جيڪو ٻاهرين انحصار کان سواءِ ڪم ڪري سگهي ٿو، عالمي دائري (عالمي متغير) کان نجات حاصل ڪري ۽ ڪوڊ کي ”گرم“ ٻيهر لوڊ ڪرڻ جي صلاحيت فراهم ڪري.

C++ جي مقابلي ۾، نئين ٻولي تمام سادو آهي، تيز تاليف جي رفتار مهيا ڪري ٿي (400 ڀيرا تائين)، محفوظ پروگرامنگ ٽيڪنڪ جي مشق ڪري ٿي، اڻ ڄاڻايل رويي سان مسئلن کان پاڪ آهي، ۽ متوازي عملن لاءِ بلٽ ان ٽولز مهيا ڪري ٿي. Python جي مقابلي ۾، V تيز، آسان، محفوظ، ۽ وڌيڪ برقرار رکڻ لائق آهي. Go جي مقابلي ۾، V ۾ ڪو به عالمي متغير نه آهي، نه null، سڀ متغير قدرن کي هميشه بيان ڪرڻ گهرجي، سڀئي شيون ڊفالٽ طور تي ناقابل تبديلي آهن، صرف هڪ قسم جي تفويض جي حمايت ڪئي وئي آهي ("a := 0")، هڪ خاص طور تي وڌيڪ جامع رن ٽائم ۽ نتيجن تي عمل ڪرڻ واري فائلن جي سائيز، C کان سڌو پوربلبلٽي جي موجودگي، گندگي ڪليڪٽر جي غير موجودگي، تيز سيريلائيزيشن، تارن کي وجھڻ جي صلاحيت ("println('$foo: $bar.baz')").

fn main() {
علائقن := ['راند'، 'ويب'، 'اوزار'، 'سائنس'، 'سسٽم'، 'GUI'، 'موبائل'] هڪ := 10
جيڪڏھن سچو {
ڏانهن := 20
}
علائقن ۾ ايريا لاء {
println ('هيلو، $ علائقي ڊولپرز!')
}
}

پروجيڪٽ خاصيتون:

  • ڪمپيڪٽ ۽ تيز مرتب ڪندڙ، جيڪو معياري لائبريري سان گڏ تقريبا 400 KB وٺندو آهي. اعلي تاليف جي رفتار مشين ڪوڊ ۽ ماڊليت جي سڌي نسل ذريعي حاصل ڪئي وئي آهي. تاليف جي رفتار تقريبن 1.2 ملين لائنون ڪوڊ ڪوڊ في سيڪنڊ ھڪڙي سي پي يو ڪور تي آھي (ياد رھي ٿو ته آپريشن دوران وي سي استعمال ڪري سگھي ٿو، پوء رفتار 100 ھزار لائنن في سيڪنڊ تائين گھٽجي ٿي). مرتب ڪندڙ جي خود اسيمبلي، جيڪا پڻ V ٻولي ۾ لکيل آهي (گو ۾ هڪ حوالو نسخو پڻ آهي)، لڳ ڀڳ 0.4 سيڪنڊ لڳن ٿا. سال جي آخر تائين، اضافي اصلاحن تي ڪم مڪمل ٿيڻ جي اميد رکي ٿو، جيڪو 0.15 سيڪنڊن تائين گڏ ڪرڻ وارو وقت گھٽائي ڇڏيندو. ڊولپر پاران ڪيل ٽيسٽن جو جائزو وٺندي، گو جي خود اسيمبليءَ کي 512 MB ڊسڪ اسپيس جي ضرورت آهي ۽ هڪ اڌ منٽ ۾ هلندي آهي، رسٽ کي 30 GB ۽ 45 منٽ، GCC - 8 GB ۽ 50 منٽ، Clang - 90 GB ۽ 25 منٽ،
    سوفٽ - 70 GB ۽ 90 منٽ؛

  • پروگرامن کي خارجي انحصار جي بغير قابل عمل فائلن ۾ مرتب ڪيو ويو آهي. اسيمبليءَ کان پوءِ سادي http سرور جي قابل عمل فائل سائيز صرف 65 KB آهي؛
  • مرتب ٿيل ايپليڪيشنن جي ڪارڪردگي سي پروگرامن جي اسيمبليء جي سطح تي آهي؛
  • سي ڪوڊ سان بغير ڪنهن حد تائين لهه وچڙ ڪرڻ جي صلاحيت، اضافي مٿي جي بغير. C ٻوليءَ ۾ ڪمن کي V ٻوليءَ ۾ ڪوڊ مان سڏي سگھجي ٿو، ۽ ان جي برعڪس، V ٻوليءَ ۾ ڪوڊ کي C سان مطابقت رکندڙ ڪنھن به ٻوليءَ ۾ سڏي سگھجي ٿو؛
  • C/C++ پروجيڪٽس کي V ٻوليءَ ۾ نمائندگي ۾ ترجمو ڪرڻ لاءِ سپورٽ. ترجمي لاءِ ڪلانگ مان هڪ پارسر استعمال ڪيو ويندو آهي. سي معيار جون سڀئي خاصيتون اڃا تائين سپورٽ نه آهن، پر مترجم جي موجوده صلاحيتون اڳ ۾ ئي ڪافي آهن ترجمو V راند DOOM جي ٻولي ۾. C++ مترجم اڃا ترقي جي شروعاتي مرحلي ۾ آهي.
  • بلٽ ان سيريلائيزيشن سپورٽ، بغير رن ٽائم سان ڳنڍڻ جي؛
  • ميموري مختص ڪرڻ جي عملن کي گھٽائڻ؛
  • حفاظت کي يقيني بڻائڻ: ڪوبه NULL، عالمي متغير، اڻ ڄاڻايل قدر ۽ متغير ريڊفينشن. بلٽ ان بفر اووررن چيڪنگ. عام ڪمن لاءِ سپورٽ (Generic). شيون ۽ اڏاوتون جيڪي ڊفالٽ طور تبديل نه ٿي سگھن ٿيون؛
  • "گرم" ڪوڊ ٻيهر لوڊ ڪرڻ جو امڪان (ٻيهر ٺهڻ کان سواءِ اڏام تي ڪوڊ ۾ تبديلين کي ظاهر ڪرڻ)؛
  • ملٽي ٿريڊنگ کي يقيني بڻائڻ لاءِ اوزار. جيئن گو ٻولي ۾، هڪ تعمير وانگر "رن فو ()" استعمال ڪيو ويندو آهي عمل جي نئين سلسلي کي شروع ڪرڻ لاء (جهڙوڪ "go foo()"). مستقبل ۾، goroutines جي حمايت ۽ هڪ موضوع شيڊولر جي رٿابندي ڪئي وئي آهي؛
  • Windows، macOS، Linux، *BSD آپريٽنگ سسٽم لاءِ سپورٽ. اهو سال جي آخر تائين Android ۽ iOS لاءِ سپورٽ شامل ڪرڻ جو منصوبو آهي؛
  • گڏ ڪرڻ واري وقت تي ياداشت جو انتظام (جهڙوڪ زنگ ۾)، گندگي ڪليڪٽر استعمال ڪرڻ کان سواء؛
  • GDI+/Cocoa ۽ OpenGL استعمال ڪندي گرافڪس جي پيداوار لاءِ ملٽي پليٽ فارم ٽول ڪٽ جي دستيابي (DirectX، Vulkan ۽ Metal APIs لاءِ سپورٽ رٿيل آهي). اتي 3D شين سان ڪم ڪرڻ لاء اوزار آهن, skeletal انيميشن ۽ ڪئميرا ڪنٽرول;
  • گرافڪ انٽرفيس ٺاهڻ لاءِ لائبريري جي دستيابي هر او ايس جي اصلي ڊيزائن عناصر سان. ونڊوز استعمال ڪري ٿو WinAPI/GDI+، macOS استعمال ڪري ٿو ڪوڪو، ۽ لينڪس استعمال ڪري ٿو پنهنجي سيٽ ويجٽ جو. لائبريري اڳ ۾ ئي ترقي ۾ استعمال ڪئي وئي آهي ٻلو - ڪلائنٽ لاء سست، Skype، Gmail، Twitter ۽ Facebook؛

    اهو منصوبو هڪ ڊيلفي جهڙو انٽرفيس ڊيزائن ايپليڪيشن ٺاهڻ، SwiftUI ۽ React Native سان ملندڙ هڪ اعلاناتي API مهيا ڪرڻ، ۽ iOS ۽ Android لاءِ موبائيل ايپليڪيشن ٺاهڻ لاءِ مدد فراهم ڪرڻ آهي؛

    V پروگرامنگ ٻولي اوپن سورس

  • هڪ تعمير ٿيل ويب فريم ورڪ جي دستيابي، جيڪا ويب سائيٽ، فورم ۽ بلاگ ٺاهڻ لاءِ استعمال ڪئي ويندي آهي پروجيڪٽ ڊولپرز لاءِ. HTML ٽيمپليٽس جي اڳڀرائي کي سپورٽ ڪيو ويو آهي، انهن کي هر درخواست تي پروسيس ڪرڻ کان سواء؛
  • ڪراس تاليف جي حمايت. ونڊوز لاءِ ايگزيڪيوٽيبل فائل ٺاهڻ لاءِ، بس هلايو “v -os windows”، ۽ لينڪس لاءِ – “v -os linux” (macOS لاءِ ڪراس ڪمپليشن سپورٽ بعد ۾ متوقع آهي). ڪراس تاليف پڻ ڪم ڪري ٿو گرافڪ ايپليڪيشنن لاءِ؛
  • تعمير ٿيل انحصار مئنيجر، پيڪيج مينيجر ۽ اوزار تعمير ڪريو. پروگرام ٺاھڻ لاءِ، رڳو ھلايو ”v“، بنا ٺاھيو يا ٻاهرين استعمال جي. اضافي لائبريرين کي انسٽال ڪرڻ لاءِ، بس هلايو، مثال طور، “v get sqlite”؛
  • ايڊيٽرن ۾ V ٻولي ۾ ترقي لاءِ پلگ ان جي دستيابي ايس ايس ڪوڊ и Vim.

ترقي سمجهيو ويو ڪميونٽي سان شڪ، جيئن ته شايع ٿيل ڪوڊ ظاهر ڪيو آهي ته اڃا تائين سڀ اعلان ڪيل صلاحيتون لاڳو نه ڪيون ويون آهن ۽ سڀني منصوبن تي عمل ڪرڻ لاءِ تمام وڏي ڪم جي ضرورت آهي.
ان کان علاوه، شروعاتي طور تي مخزن موجود هئا پوسٽ ڪيو ويو ٽوٽل ڪوڊ جنهن کي اسيمبليءَ ۽ عمل سان مسئلو آهي. اهو فرض ڪيو ويو آهي ته ليکڪ اڃا تائين اسٽيج تي پهچي نه سگهيو آهي جنهن تي اهي نوٽيس شروع ڪن ٿا Pareto جو قانون، جنهن مطابق 20 سيڪڙو ڪوششون 80 سيڪڙو نتيجا ڏين ٿيون ۽ باقي 80 سيڪڙو ڪوششون صرف 20 سيڪڙو نتيجا ڏين ٿيون.

ان دوران، پروجيڪٽ V جي بگ ٽريڪر کان اٽڪل 10 پوسٽون ختم ٿي چڪيون آهن مظاهرو گھٽ معيار جو ڪوڊ، مثال طور، C-inserts جي استعمال ۽ rm ڪمانڊ جي ڊاريڪٽري کي ڪال os.system ("rm -rf $path") ذريعي حذف ڪرڻ لاءِ افعال جي لائبريري ۾ استعمال جي نشاندهي ڪري ٿو. منصوبي جو مصنف قرار ڏنو ويوته هن صرف پيغامن کي حذف ڪيو، publishedپيل ٽرول (تنقيد جي صحيحيت جي تصديق ڪندڙ تبديلين سان، رھيو в تاريخ ۾ ترميم ڪريو).

جو ذريعو: opennet.ru

تبصرو شامل ڪريو