I-syntax ka-V ifana kakhulu ne-Go, iboleka ezinye izakhiwo ku-Oberon, Rust, ne-Swift. Ulimi lwenziwe lula ngangokunokwenzeka futhi, ngokusho konjiniyela, imizuzu engama-30 yokufunda yanele ukufunda izisekelo.
Ukwakhiwa kolimi olusha kwagqugquzelwa isifiso sokuzuza inhlanganisela yobulula bolimi lwe-Go lwe-syntax, isivinini sokuhlanganiswa, ukufana kokusebenza okulula, ukuphatheka nokugcinwa kwekhodi nokusebenza kwe-C/C++, ukuphepha kwe-Rust kanye ukukhiqizwa kwekhodi yomshini esigabeni sokuhlanganiswa kwe-Zig. Bengifuna futhi ukuthola inhlanganisela ehlangene nesheshayo engasebenza ngaphandle kokuncika kwangaphandle, isuse ububanzi bomhlaba (izinto eziguquguqukayo zomhlaba) futhi inikeze ikhono "lokushisa" ukulayisha kabusha ikhodi.
Uma kuqhathaniswa ne-C++, ulimi olusha lulula kakhulu, lunikeza isivinini sokuhlanganisa ngokushesha (kufika izikhathi ezingu-400), lwenza amasu okuhlela aphephile, alunazo izinkinga ngokuziphatha okungachazwanga, futhi luhlinzeka ngamathuluzi akhelwe ngaphakathi okusebenza okuhambisanayo. Uma kuqhathaniswa nePython, i-V iyashesha, ilula, iphephile, futhi iyalondolozeka. Uma kuqhathaniswa ne-Go, i-V ayinakho okuguquguqukayo komhlaba wonke, akukho lutho olungenalutho, wonke amanani aguquguqukayo kufanele achazwe njalo, zonke izinto aziguquleki ngokuzenzakalelayo, uhlobo olulodwa kuphela lwesabelo olusekelwayo ("a := 0"), okuhlangene kakhulu. isikhathi sokusebenza kanye nosayizi wamafayela asebenzisekayo angumphumela, ukuba khona kokuphatheka okuqondile kusuka ku-C, ukungabikho komqoqi kadoti, ukwenziwa kwe-serial ngokushesha, ikhono lokuhlanganisa izintambo (“println('$foo: $bar.baz')”).
i-fnmain() {
izindawo := ['igeyimu', 'iwebhu', 'amathuluzi', 'isayensi', 'amasistimu', 'GUI', 'iselula'] a := 10
uma kuyiqiniso {
awu:=20
}
endaweni ezindaweni {
println('Sawubona, $area developers!')
}
}
Izici zephrojekthi:
- Inhlanganisela eqinile nesheshayo, yona kanye nomtapo wolwazi ojwayelekile othatha cishe u-400 KB. Isivinini sokuhlanganiswa esiphezulu sitholakala ngokukhiqizwa okuqondile kwekhodi yomshini kanye ne-modularity. Ijubane lokuhlanganisa cishe imigqa yekhodi eyizigidi ezingu-1.2 ngomzuzwana ku-CPU core eyodwa (kuyaphawuleka ukuthi ngesikhathi sokusebenza V ingasebenzisa i-C, bese ijubane lehla kumigqa eyizinkulungwane eziyi-100 ngomzuzwana). Ukuzihlanganisa ngokwakho komhlanganisi, okubuye kubhalwe ngolimi lwe-V (kukhona nenguqulo yereferensi ku-Go), kuthatha cishe imizuzwana engu-0.4. Ekupheleni konyaka, umsebenzi wokuthuthukisa okwengeziwe kulindeleke ukuthi uqedwe, okuzonciphisa isikhathi sokwakha isihlanganisi sibe imizuzwana engu-0.15. Uma sibheka izivivinyo ezenziwa umthuthukisi, ukuzihlanganisa kwe-Go kudinga u-512 MB wesikhala sediski futhi kusebenza ngomzuzu owodwa nengxenye, iRust idinga imizuzu engama-30 nemizuzu engama-45, i-GCC - 8 GB nemizuzu engama-50, iClang - 90 GB kanye Imizuzu engama-25,
I-Swift - 70 GB nemizuzu engu-90; - Izinhlelo zihlanganiswa zibe amafayela asebenzisekayo ngaphandle kokuncika kwangaphandle. Usayizi wefayela osebenzisekayo weseva ye-http elula ngemva kokuhlanganiswa ngu-65 KB kuphela;
- Ukusebenza kwezicelo ezihlanganisiwe kusezingeni lemihlangano yezinhlelo ze-C;
- Amandla okuxhumana ngaphandle komthungo nekhodi engu-C, ngaphandle kwe-overhead eyengeziwe. Imisebenzi ngolimi C ingabizwa ngekhodi yolimi V, futhi okuphambene nalokho, ikhodi yolimi V ingabizwa nganoma yiluphi ulimi oluhambisana no-C;
- Usekelo lokuhumusha amaphrojekthi e-C/C++ enze isethulo solimi lwe-V. Umhlahleli osuka ku-Clang usetshenziselwa ukuhumusha. Akuzona zonke izici zezinga elingu-C ezisekelwayo okwamanje, kodwa amandla amanje omhumushi asevele anele
ukuhumusha ngolimi lomdlalo we-V we-DOOM. Umhumushi we-C++ usesesigabeni sokuqala sokuthuthuka; - Ukusekelwa kwe-serialization okwakhelwe ngaphakathi, ngaphandle kokuboshelwa esikhathini sokusebenza;
- Ukunciphisa imisebenzi yokwabiwa kwenkumbulo;
- Ukuqinisekisa ukuphepha: akukho NULL, okuguquguqukayo komhlaba, amanani angachazwanga kanye nokuchazwa kabusha okuguquguqukayo. Ukuhlolwa kwebhafa okwakhelwe ngaphakathi. Ukusekelwa kwemisebenzi ejwayelekile (Ejwayelekile). Izinto nezakhiwo ezingenakuguqulwa ngokuzenzakalelayo;
- Amathuba okulayisha kabusha ikhodi “eshisayo” (ibonisa izinguquko zekhodi endizeni ngaphandle kokuhlanganiswa kabusha);
- Amathuluzi okuqinisekisa i-multithreading. Njengasolimini lwe-Go, ukwakha okufana nokuthi “run foo()” kusetshenziselwa ukuqalisa umucu omusha wokusebenzisa (ofana nokuthi “go foo()”). Ngokuzayo, ukusekelwa kwama-goroutines kanye nesihleli sentambo kuhlelwa;
- Ukusekelwa kweWindows, macOS, Linux, *BSD izinhlelo zokusebenza. Kuhlelelwe ukwengeza ukwesekwa kwe-Android ne-iOS ekupheleni konyaka;
- Ukuphathwa kwememori ngesikhathi sokuhlanganisa (njengaku-Rust), ngaphandle kokusebenzisa umqoqi wezibi;
- Ukutholakala kwekhithi yamathuluzi enezingxenyekazi eziningi zokukhishwa kwezithombe, kusetshenziswa i-GDI+/Cocoa kanye ne-OpenGL ukuze kwenziwe (ukusekelwa kwe-DirectX, i-Vulkan ne-Metal APIs kuhleliwe). Kunamathuluzi okusebenza ngezinto ze-3D, i-animation yamathambo nokulawula ikhamera;
- Ukutholakala komtapo wolwazi wokukhiqiza ukuxhumana okunemifanekiso enezici zedizayini ezitholakala ku-OS ngayinye. IWindows isebenzisa iWinAPI/GDI+, iMacOS isebenzisa iCocoa, kanti iLinux isebenzisa isethi yayo yamawijethi. Umtapo wolwazi usuvele usetshenziswa ekuthuthukisweni
I-Volt - iklayenti le-Slack, i-Skype, i-Gmail, i-Twitter ne-Facebook;Uhlelo luwukwenza uhlelo lokusebenza lokuklama isikhombimsebenzisi esifana ne-Delphi, sinikeze i-API ememezelayo efana ne-SwiftUI ne-React Native, futhi sinikeze ukusekelwa ekudaleni izinhlelo zokusebenza zeselula ze-iOS ne-Android;
- Ukutholakala kohlaka lwewebhu olwakhelwe ngaphakathi, olusetshenziselwa ukwakha iwebhusayithi, inkundla kanye nebhulogi yabathuthukisi bephrojekthi. Ukuhlanganiswa kwangaphambili kwezifanekiso ze-HTML kuyasekelwa, ngaphandle kokuzicubungula esicelweni ngasinye;
- Ukwesekwa kokuhlanganiswa kwesiphambano. Ukuze wakhe ifayela elisebenzisekayo le-Windows, vele usebenzise i-“v -os windows”, futhi ku-Linux - “v -os linux” (ukusekelwa kokuhlanganiswa kwe-macOS kulindeleke kamuva). I-Cross-compilation iphinde isebenzele izinhlelo zokusebenza zegraphic;
- Umphathi wokuncika owakhelwe ngaphakathi, umphathi wephakheji namathuluzi wokwakha. Ukuze wakhe uhlelo, vele usebenzise u-“v.”, ngaphandle kokusebenzisa i-make noma izinsiza zangaphandle. Ukufaka imitapo yolwazi eyengeziwe, vele ugijime, isibonelo, “v get sqlite”;
- Ukutholakala kwama-plugin azothuthukiswa ngolimi lwe-V kubahleli
Ikhodi ye-VS иVim .
Ukuthuthukiswa
Ngaphezu kwalokho, ekuqaleni inqolobane yayinayo
Ngaleso sikhathi, i-Project V's bug tracker isuswe cishe okuthunyelwe okungu-10
Source: opennet.ru