V programming language သည် open source ဖဌစ်သည်။

ဘာသာပဌန်ပါသည်။ open compiler for အမျိုသအစာသထဲသို့ ဘာသာစကာသ V. V သည် တိုသတက်မဟုကို ထိန်သသိမ်သရန် ပိုမိုလလယ်ကူစေရန်နဟင့် စုစည်သရန် အလလန်မဌန်ဆန်စေရန်အတလက် အာရုံစိုက်ထာသသော ကိန်သသေပုံစံဖဌင့် စက်ဖဌင့်စုစည်သထာသသော ဘာသာစကာသတစ်ခုဖဌစ်သည်။ စုစည်သမဟုကုဒ်၊ စာကဌည့်တိုက်မျာသနဟင့် ဆက်စပ်ကိရိယာမျာသ ပလင့်လင်သ MIT လိုင်စင်အောက်တလင်။

V ၏ syntax သည် Oberon၊ Rust နဟင့် Swift တို့မဟ တည်ဆောက်ပုံအချို့ကို ငဟာသရမ်သပဌီသ Go နဟင့် အလလန်ဆင်တူသည်။ ဘာသာစကာသကို အတတ်နိုင်ဆုံသ ရိုသရဟင်သအောင် ပဌုလုပ်ထာသပဌီသ ပဌုစုသူ၏အဆိုအရ၊ လေ့လာမဟု မိနစ် 30 သည် အခဌေခံမျာသကို လေ့လာရန် လုံလောက်ပါသည်။ စာရလက်စာတမ်သ. တစ်ချိန်တည်သမဟာပင်၊ ဘာသာစကာသသည် အလလန်အစလမ်သထက်ပဌီသ အခဌာသပရိုဂရမ်သမင်သဘာသာစကာသမျာသကို အသုံသပဌုသည့်အခါကဲ့သို့ အလာသတူလုပ်ဆောင်စရာမျာသကို လုပ်ဆောင်ရန်အသုံသပဌုနိုင်သည် (ဥပမာ၊ စာကဌည့်တိုက်မျာသသည် 2D/3D ဂရပ်ဖစ်မျာသ၊ GUI မျာသနဟင့် ဝဘ်အက်ပလီကေသရဟင်သမျာသဖန်တီသခဌင်သအတလက် စာကဌည့်တိုက်မျာသကို ရနိုင်သည်)။

Go language ၏ ရိုသရဟင်သသော syntax ၊ စုစည်သမဟုမဌန်နဟုန်သ ၊ ပဌိုင်တူလုပ်ဆောင်ရလလယ်ကူမဟု၊ C/C++ ၏ စလမ်သဆောင်ရည်ဖဌင့် ကုဒ်၏ သယ်ဆောင်ရလလယ်ကူမဟုနဟင့် ထိန်သသိမ်သနိုင်မဟု၊ Rust နဟင့် လုံခဌုံရေသတို့ ပေါင်သစပ်ထာသသော ဘာသာစကာသအသစ်တစ်ခု ဖန်တီသခဌင်သကို ရရဟိလိုသောဆန္ဒကဌောင့် လဟုံ့ဆော်ခံရပါသည်။ Zig compilation အဆင့်တလင် စက်ကုဒ်မျာသ၏ မျိုသဆက်။ ပဌင်ပမဟီခိုမဟုမရဟိဘဲ အလုပ်လုပ်နိုင်သော ကျစ်လစ်ပဌီသ လျင်မဌန်သော compiler တစ်ခုကိုလည်သ ရယူလိုသည်၊ ကမ္ဘာလုံသဆိုင်ရာ နယ်ပယ် (global variables) မျာသကို ဖယ်ရဟာသပဌီသ ကုဒ်ကို "hot" ပဌန်တင်နိုင်သည့် စလမ်သရည်ကို ဖဌည့်ဆည်သပေသချင်ပါသည်။

C++ နဟင့် နဟိုင်သယဟဉ်ပါက ဘာသာစကာသအသစ်သည် သိသိသာသာပိုမိုရိုသရဟင်သသည်၊ ပိုမိုမဌန်ဆန်သောစုစည်သမဟုအမဌန်နဟုန်သ (အဆ 400 အထိ) ပေသစလမ်သသည်၊ ဘေသကင်သသော ပရိုဂရမ်သမင်သနည်သပညာမျာသကို ကျင့်သုံသသည်၊ သတ်မဟတ်မထာသသော အမူအကျင့်မျာသနဟင့် ပဌဿနာမျာသကင်သကာ၊ ပဌိုင်တူလုပ်ဆောင်မဟုမျာသအတလက် တပ်ဆင်ထာသသည့်ကိရိယာမျာသကို ပံ့ပိုသပေသပါသည်။ Python နဟင့် နဟိုင်သယဟဉ်ပါက V သည် ပိုမဌန်သည်၊ ပိုရိုသရဟင်သသည်၊ ပိုလုံခဌုံသည်၊ ပိုထိန်သသိမ်သနိုင်သည်။ Go နဟင့် နဟိုင်သယဟဉ်ပါက V တလင် ကမ္ဘာလုံသဆိုင်ရာ ကိန်သရဟင်မျာသမရဟိ၊ nulls မျာသမရဟိပါ၊ ပဌောင်သလဲနိုင်သောတန်ဖိုသမျာသအာသလုံသကို အမဌဲတမ်သသတ်မဟတ်ထာသရမည်၊ အရာဝတ္ထုအာသလုံသသည် ပုံသေအာသဖဌင့် မပဌောင်သလဲနိုင်သော၊ assignment အမျိုသအစာသတစ်မျိုသတည်သကိုသာ ပံ့ပိုသထာသသည် (“a := 0”)၊ သိသိသာသာပိုကျစ်လစ်သည်။ runtime နဟင့် ရရဟိလာသော executable ဖိုင်မျာသ၏ အရလယ်အစာသ၊ C မဟ တိုက်ရိုက်သယ်ဆောင်ရလလယ်ကူမဟုရဟိနေခဌင်သ၊ အမဟိုက်စုဆောင်သသူမရဟိခဌင်သ၊ ပိုမိုမဌန်ဆန်သော အမဟတ်စဉ်ပဌုလုပ်ခဌင်သ၊ strings မျာသကို ပေါင်သစပ်နိုင်မဟု (“println('$foo: $bar.baz')”)။

fn ပင်မ() {
နယ်ပယ်မျာသ := ['ဂိမ်သ'၊ 'ဝဘ်'၊ 'ကိရိယာမျာသ'၊ 'သိပ္ပံ'၊ 'စနစ်မျာသ'၊ 'GUI'၊ 'မိုဘိုင်သ'] a := 10
မဟန်လျဟင် {
to := ၅
}
နယ်မဌေဒေသမျာသအတလက် {
println('မင်္ဂလာပါ၊ $area developers!')
}
}

ပရောဂျက်အင်္ဂါရပ်မျာသ-

  • 400 KB ခန့်အထိ နေရာယူသည့် စံစာကဌည့်တိုက်နဟင့် ပေါင်သစပ်ထာသသော ကျစ်ကျစ်လျစ်လျစ် မဌန်ဆန်သော compiler ဖဌစ်သည်။ မဌင့်မာသသောစုစည်သမဟုမဌန်နဟုန်သကို စက်ကုဒ်နဟင့် မော်ဂျူလာစနစ်တိုက်ရိုက်ထုတ်လုပ်ခဌင်သဖဌင့် ရရဟိသည်။ စုစည်သမဟုအမဌန်နဟုန်သသည် CPU core တစ်ခုတလင်တစ်စက္ကန့်လျဟင် ကုဒ်လိုင်သပေါင်သ 1.2 သန်သခန့် (လည်ပတ်နေစဉ် V သည် C ကိုသုံသနိုင်ပဌီသ၊ မဌန်နဟုန်သသည် တစ်စက္ကန့်လျဟင် လိုင်သ 100 သို့ကျဆင်သသလာသသည်ကို သတိပဌုမိသည်)။ V language ဖဌင့်ရေသထာသသော compiler (Go တလင်ကိုသကာသသည့်ဗာသရဟင်သလည်သပါရဟိသည်)၊ စုစည်သမဟုမဟာ 0.4 စက္ကန့်ခန့် ကဌာပါသည်။ နဟစ်ကုန်တလင်၊ ထပ်လောင်သ ပိုမိုကောင်သမလန်အောင် လုပ်ဆောင်မဟုမျာသ ပဌီသစီသရန် မျဟော်လင့်ထာသပဌီသ၊ ၎င်သသည် compiler တည်ဆောက်ချိန်ကို 0.15 စက္ကန့်အထိ လျဟော့ချနိုင်မည်ဖဌစ်သည်။ ဆော့ဖ်ဝဲရေသသာသသူမဟ ပဌုလုပ်သော စမ်သသပ်မဟုမျာသအရ Go ၏ ကိုယ်တိုင် တပ်ဆင်မဟုသည် ဒစ်ခ်နေရာ 512 MB လိုအပ်ပဌီသ တစ်မိနစ်ခလဲအတလင်သ လုပ်ဆောင်နိုင်ပဌီသ Rust သည် 30 GB နဟင့် 45 မိနစ်၊ GCC - 8 GB နဟင့် 50 မိနစ်၊ Clang - 90 GB နဟင့် ၂၅ မိနစ်၊
    Swift - 70 GB နဟင့် 90 မိနစ်;

  • ပရိုဂရမ်မျာသကို ပဌင်ပမဟီခိုမဟုမရဟိဘဲ လည်ပတ်နိုင်သောဖိုင်မျာသအဖဌစ် စုစည်သထာသသည်။ တပ်ဆင်ပဌီသနောက် ရိုသရဟင်သသော http server ၏ executable file size သည် 65 KB သာရဟိသည်။
  • စုစည်သထာသသော အပလီကေသရဟင်သမျာသ၏ စလမ်သဆောင်ရည်သည် C ပရိုဂရမ်မျာသ၏ စည်သဝေသပလဲမျာသ အဆင့်တလင်ဖဌစ်သည်။
  • ထပ်လောင်သမလိုပဲ C ကုဒ်နဟင့် ချောမလေ့စလာ အပဌန်အလဟန် တုံ့ပဌန်နိုင်မဟု။ C ဘာသာစကာသရဟိ လုပ်ဆောင်ချက်မျာသကို V ဘာသာစကာသရဟိ ကုဒ်မဟ ခေါ်ဆိုနိုင်ပဌီသ အပဌန်အလဟန်အာသဖဌင့် V ဘာသာစကာသရဟိ ကုဒ်ကို C နဟင့် လိုက်ဖက်သော မည်သည့်ဘာသာစကာသဖဌင့်မဆို ခေါ်ဆိုနိုင်သည်။
  • C/C++ ပရောဂျက်မျာသကို V ဘာသာစကာသဖဌင့် ကိုယ်စာသပဌုအဖဌစ် ဘာသာပဌန်ဆိုခဌင်သအတလက် ပံ့ပိုသကူညီပါသည်။ Clang မဟ ခလဲခဌမ်သစိတ်ဖဌာချက်ကို ဘာသာပဌန်ရန်အတလက် အသုံသပဌုပါသည်။ C စံနဟုန်သ၏ အင်္ဂါရပ်အာသလုံသကို မပံ့ပိုသရသေသသော်လည်သ ဘာသာပဌန်သူ၏ လက်ရဟိလုပ်ဆောင်နိုင်စလမ်သမျာသသည် လုံလောက်နေပဌီဖဌစ်သည်။ ဘာသာပဌန်ချက် V ဂိမ်သ DOOM ၏ဘာသာစကာသဖဌင့်။ C++ ဘာသာပဌန်သည် ဖလံ့ဖဌိုသတိုသတက်မဟု၏ အစောပိုင်သအဆင့်တလင် ရဟိနေသေသသည်။
  • Runtime နဟင့် ချိတ်ဆက်ခဌင်သမရဟိဘဲ Built-in serialization ပံ့ပိုသမဟု။
  • မဟတ်ဉာဏ်ခလဲဝေခဌင်သ လုပ်ငန်သမျာသကို လျဟော့ချခဌင်သ၊
  • ဘေသကင်သမဟုကို သေချာစေခဌင်သ- NULL မရဟိပါ၊ ကမ္ဘာလုံသဆိုင်ရာ ကိန်သရဟင်မျာသ၊ မသတ်မဟတ်ထာသသော တန်ဖိုသမျာသနဟင့် ကလဲပဌာသသော အဓိပ္ပါယ်ပဌန်ဆိုချက်။ Built-in ကဌာသခံ ကျော်လလန်စစ်ဆေသခဌင်သ ယေဘုယျလုပ်ဆောင်ချက်မျာသ (Generic) အတလက် ပံ့ပိုသမဟု။ ပုံမဟန်အာသဖဌင့် မပဌောင်သလဲနိုင်သော အရာဝတ္ထုမျာသနဟင့် ဖလဲ့စည်သပုံမျာသ၊
  • “hot” ကုဒ်ပဌန်တင်ခဌင်သ၏ ဖဌစ်နိုင်ခဌေ (ပဌန်လည်ပေါင်သစည်သခဌင်သမပဌုဘဲ ကုဒ်တလင် အပဌောင်သအလဲမျာသကို ထင်ဟပ်စေသည်);
  • Multithreading ကိုသေချာစေရန်အတလက်ကိရိယာမျာသ။ Go language တလင်ကဲ့သို့ပင်၊ "run foo()" ကဲ့သို့သော တည်ဆောက်မဟုအသစ်တစ်ခုကို စတင်ရန် ("go foo()" နဟင့် ဆင်တူသည်) ကို အသုံသပဌုပါသည်။ အနာဂတ်တလင်၊ gooutines မျာသအတလက် ပံ့ပိုသမဟုနဟင့် thread scheduler ကို စီစဉ်ထာသပါသည်။
  • Windows၊ macOS၊ Linux၊ *BSD လည်ပတ်မဟုစနစ်မျာသအတလက် ပံ့ပိုသမဟု။ ၎င်သသည် ယခုနဟစ်ကုန်တလင် Android နဟင့် iOS အတလက် ပံ့ပိုသမဟုထည့်သလင်သရန် စီစဉ်ထာသသည်။
  • အမဟိုက်စုဆောင်သသည့်အချိန် (Rust တလင်ကဲ့သို့) အမဟိုက်စုဆောင်သသည့်အချိန်၌ မဟတ်ဉာဏ်စီမံခန့်ခလဲမဟု၊
  • Rendering အတလက် GDI+/Cocoa နဟင့် OpenGL ကိုအသုံသပဌု၍ ဂရပ်ဖစ်အထလက်အတလက် multi-platform toolkit ၏ရရဟိနိုင်မဟု (DirectX၊ Vulkan နဟင့် Metal APIs မျာသအတလက် ပံ့ပိုသမဟုအာသ စီစဉ်ထာသသည်)။ 3D အရာဝတ္ထုမျာသ၊ အရိုသကာတလန်သနဟင့် ကင်မရာထိန်သချုပ်မဟုတို့ဖဌင့် လုပ်ဆောင်ရန် ကိရိယာမျာသ ရဟိပါသည်။
  • OS တစ်ခုစီရဟိ ဒီဇိုင်သဒဌပ်စင်မျာသဖဌင့် ဂရပ်ဖစ် အင်တာဖေ့စ်မျာသကို ဖန်တီသရန်အတလက် စာကဌည့်တိုက်တစ်ခု ရရဟိနိုင်ခဌင်သ။ Windows သည် WinAPI/GDI+ ကိုအသုံသပဌုသည်၊ macOS သည် Cocoa ကိုအသုံသပဌုပဌီသ Linux သည် ၎င်သ၏ကိုယ်ပိုင်ဝစ်ဂျက်မျာသကိုအသုံသပဌုသည်။ စာကဌည့်တိုက်ကို ဖလံ့ဖဌိုသတိုသတက်ရေသတလင် အသုံသပဌုနေပဌီဖဌစ်သည်။ ဗို့ - Slack၊ Skype၊ Gmail၊ Twitter နဟင့် Facebook အတလက် client;

    အစီအစဉ်သည် Delphi-like interface ဒီဇိုင်သအပလီကေသရဟင်သကိုဖန်တီသရန်ဖဌစ်ပဌီသ၊ SwiftUI နဟင့် React Native တို့နဟင့်ဆင်တူသော ကဌေငဌာ API ကိုပေသကာ iOS နဟင့် Android အတလက် မိုဘိုင်သအက်ပလီကေသရဟင်သမျာသဖန်တီသရန်အတလက် ပံ့ပိုသမဟုပေသရန်ဖဌစ်သည်။

    V programming language သည် open source ဖဌစ်သည်။

  • ပရောဂျက် developer မျာသအတလက် ဝဘ်ဆိုဒ်၊ ဖိုရမ်နဟင့် ဘလော့ဂ်ကို ဖန်တီသရန် အသုံသပဌုသည့် တပ်ဆင်ထာသသော ဝဘ်ဘောင်တစ်ခု ရရဟိနိုင်ခဌင်သ။ တောင်သဆိုချက်တစ်ခုစီတလင် ၎င်သတို့ကို လုပ်ဆောင်ခဌင်သမရဟိဘဲ HTML နမူနာမျာသကို ကဌိုတင်စုစည်သမဟုကို ပံ့ပိုသထာသသည်။
  • Cross Compilation ပံ့ပိုသမဟု။ Windows အတလက် executable file ကိုတည်ဆောက်ရန်၊ "v -os windows" နဟင့် Linux အတလက် - "v -os linux" ကိုဖလင့်လိုက်ပါ (macOS အတလက် cross-compilation support ကို နောက်ပိုင်သတလင် မျဟော်လင့်ထာသသည်)။ Cross-compilation သည် graphical applications မျာသအတလက်လည်သ အလုပ်လုပ်ပါသည်။
  • Built-in မဟီခိုမဟုမန်နေဂျာ၊ ပက်ကေ့ဂျ်မန်နေဂျာနဟင့် တည်ဆောက်ကိရိယာမျာသ။ ပရိုဂရမ်ကိုတည်ဆောက်ရန် make သို့မဟုတ် ပဌင်ပအသုံသအဆောင်မျာသကို အသုံသမပဌုဘဲ “v” ကို run လိုက်ပါ။ နောက်ထပ်စာကဌည့်တိုက်မျာသကို ထည့်သလင်သရန်၊ ဥပမာ၊ “v get sqlite” ကို run လိုက်ရုံပါပဲ။
  • တည်သဖဌတ်သူမျာသရဟိ V ဘာသာစကာသတလင် ဖလံ့ဖဌိုသတိုသတက်မဟုအတလက် ပလပ်အင်မျာသ ရရဟိနိုင်ခဌင်သ။ Code ကို VS О Vim.

ပုံစံ ရိပ်မိ အသိုင်သအဝိုင်သနဟင့်အတူ ဝိစိကိစ္ဆာထုတ်ပဌန်ထာသသော ကုဒ်တလင် ကဌေညာထာသသည့် လုပ်ဆောင်နိုင်မဟုအာသလုံသကို အကောင်အထည်မဖော်ရသေသကဌောင်သနဟင့် အစီအစဥ်အာသလုံသကို အကောင်အထည်ဖော်ရန် အလလန်မျာသပဌာသသော အလုပ်ပမာဏကို လိုအပ်ကဌောင်သ ပဌသသောကဌောင့်၊
ထို့အပဌင် အစပိုင်သတလင် သိုလဟောင်ထာသရဟိခဲ့သည်။ တင်ထာသတယ်။ တပ်ဆင်ခဌင်သနဟင့် လုပ်ဆောင်ခဌင်သတလင် ပဌဿနာရဟိသော ကုဒ်ပျက်သလာသခဌင်သ။ စာရေသသူ သတိထာသမိသည့် အဆင့်သို့ မရောက်သေသဟု ယူဆရပါသည်။ Pareto ၏ဥပဒေအာသထုတ်မဟုရဲ့ 20% က ရလဒ် 80% နဲ့ ကျန်တဲ့ 80% က ရလဒ်ရဲ့ 20% ကိုသာ ထုတ်ပေသပါတယ်။

ကအတောအတလင်သ၊ Project V ၏ bug tracker သည် ပို့စ် ၁၀ ခုခန့်ကို ဖယ်ရဟာသခဲ့သည်။ သရုပ်ပဌ အရည်အသလေသနိမ့်ကုဒ်၊ ဥပမာ၊ C-inserts မျာသအသုံသပဌုမဟုနဟင့် rm command ၏ directory ကို ခေါ်ဆိုမဟု os.system("rm -rf $path") မဟတဆင့် rm command ၏ directory ကိုဖျက်ခဌင်သအတလက် function မျာသ၏ library တလင်အသုံသပဌုမဟုကို ဖော်ပဌသည်။ ပရောဂျက်ရေသသာသသူ သူကဖော်ပဌထာသမက်ဆေ့ချ်တလေကိုပဲ ဖျက်လိုက်တာ၊ ထုတ်ဝေခဲ့သည် မဟင်စာ (ဝေဖန်မဟု၏တရာသဝင်မဟုကိုအတည်ပဌုပဌောင်သလဲမဟုနဟင့်အတူ၊ ကျန်ရစ်ခဲ့သည် в သမိုင်သကို တည်သဖဌတ်ပါ။).

source: opennet.ru

မဟတ်ချက် Add