V yra nauja, atvirojo kodo, statinio tipo programavimo kalba, kurią sukūrė Aleksandras Medvednikovas. V žada būti paprastas, greitas ir saugus kuriant prižiūrimą programinę įrangą. Kelios kalbos turėjo įtakos V dizainui, įskaitant Oberon, Swift, Kotlin ir Python.
Sužinokite apie V, jos ypatybes ir palyginimą su kitomis kalbomis.
Dalykai, kuriuos galite padaryti su V
V turi daug galios ir galite ją naudoti beveik bet kurioje pramonės šakoje, įskaitant sistemų programavimą, interneto svetainių kūrimą ir žaidimų kūrimą. Kalba yra paprasta, greita ir saugi.
V siūlo platų galingų grafikos bibliotekų asortimentą žaidimų kūrimui. Jie paremti GDI+/Cocoa Drawing ir OpenGL, kad būtų sukurtos sudėtingesnės 2D/3D programos.
V turi vartotojo sąsajos modulį, kuriame naudojami vietiniai GUI įrankių rinkiniai, skirti programoms mobiliesiems, WinAPI / GDI+, skirta „Windows“, „Cocoa“, skirta „MacOS“, ir pasirinktinis piešimas, skirtas „Linux“.
Priežastys pabandyti V
Nors V kalba yra nauja, dėl šių privalumų ji yra teisėta galimybė.
Paprastumas
Norėdami sukurti savo projektą, jums tereikia paleisti:
v.
Jums nereikia nustatyti kūrimo aplinkos, kurti makefile, importuoti antraštes ar nustatyti virtualios aplinkos. Jei norite įdiegti naujas bibliotekas per vpm (V paketų tvarkyklė), tiesiog paleiskite
v įdiegti <paketo_pavadinimas>
Saugumas
Pagal numatytuosius nustatymus V turi:
- nekintamieji kintamieji
- nekintančios struktūros
- parinktis / rezultatas ir privalomi klaidų patikrinimai
- sumos rūšys
- generiniai vaistai
- nekintamos funkcijos args
ir ne:
- nulinis
- kintamasis šešėliavimas
- neapibrėžtas elgesys
- pasauliniai kintamieji (gali būti įgalinti žemo lygio programoms, pvz., branduoliams, naudojant vėliavėlę)
Kompiliavimo greitis
Kai kurios programavimo kalbos yra greitesnės už kitas vykdymo ar kompiliavimo požiūriu. V yra toks pat rezultatyvus kaip C. Kompiliavimo laikas yra apie 110 000 loc/s su C fonine sistema ir maždaug 1 mln. lok/s su vietinėmis ir tcc sistemomis. V taip pat vengia nereikalingų paskirstymų, kad būtų užtikrintas paprastas kodavimas be abstrakcijos.
Atminties valdymas
V nenaudoja šiukšlių rinktuvo, todėl jis skiriasi nuo tokių kalbų kaip „Go“ ir „Java“. Vietoj to, V valdo atmintį kompiliavimo metu, bet veikia tik pagrindinėse situacijose. Sudėtingesniais atvejais turite jį valdyti rankiniu būdu.
Kodo stiliaus nuoseklumo formatavimas
Galite naudoti vfmt formatu, kad suformatuotų savo V kodą ir pagerintumėte jo skaitomumą paleisdami:
v fmt -w <jūsų_failo vardas>.v
Draugiški klaidų pranešimai
V klaidų pranešimai yra išsamūs, informatyvūs ir naudingi. Pažvelkite į šį pavyzdį:
user.v:8:14: klaida: „update_user“. parametras "vartotojas". yra kintamas, turite pateikti 'mut': „update_user (mut user)“.
7 | mut user := Vartotojas{}
8 | update_user (naudotojas)
| ~~~~
9 | }
Naudodami klaidos pranešimą galite pataisyti šį kodą:
mut user := Vartotojas{}
update_user (nepamirštas naudotojas)
C++ vs. Eiti vs. V: Trijų kalbų palyginimas
Šiuose pavyzdžiuose galite pamatyti, kaip C++, Go ir V kodas skiriasi tam tikrais programavimo atvejais.
Labas pasauli
C++ kalboje:
#įtraukti <iostream>
tarptpagrindinis(){
std:: cout <<"Labas pasauli!"<< std:: endl;
}
In Go:
paketą pagrindinis
importuoti "fmt"
func pagrindinis(){
fmt. Println("Labas pasauli!")
}
V:
println('Labas pasauli!')
Šioje labai paprastoje programoje –spausdinant tekstą "Sveikas pasaulis!"- matote, kad V yra daug paprastesnis nei C++ arba Go. Jums nereikia importuoti ar įtraukti jokių bibliotekų tokiai paprastai programai.
Vektorinis inicijavimas
C++ kalboje:
std:: vektorius<tarpt> skaičiai = {1, 2, 3, 4};
In Go:
skaičiai := []tarpt{1, 2, 3, 4}
V:
skaičiai := [1, 2, 3, 4]
Tokiu atveju matote, kad V vis tiek sukuria švaresnį kodą nei kiti du. Skirtingai nuo Go ir C++ vektoriai, V nereikalauja, kad jo vektoriai turėtų fiksuoto tipo reikšmes.
Vektoriaus spausdinimas
C++ kalboje:
std::kopijuoti (numers.begin(), numeriai.pabaiga(),
std:: ostream_iterator<tarpt>(std:: cout, ""));
std:: cout << std:: endl;
In Go:
fmt.Spausdinti(numeriai)
V:
println (skaičiai)
Funkcija V println gali spausdinti vektorinį kintamąjį savaime, kaip ir Go, nors pastarasis naudoja fmt paketą. C++ iostream antraštės failai teikia panašias funkcijas. Vis dėlto turėsite pasirūpinti, kad atskirų vektoriaus elementų spausdintumėte patys.
Failo skaitymas
C++ kalboje:
#įtraukti
#įtrauktitarptpagrindinis(){
std::styga kelias = "/etc/hosts";
std::ifstream f(kelias);
std::styga tekstas;
text.assign(std::istreambuf_iterator<char>(f), {});
jeigu (!f)
std::cerr << "klaida skaitant iš failo" << std::endl;
}
In Go:
paketą pagrindinis
importuoti (
"io/ioutil"
"žurnalas"
)func pagrindinis(){
kelias := "/etc/hosts"
b, err := ioutil. Skaityti failą (kelias)if err != nil {
žurnalas.Spausdinti(klysti)
grąžinti
}
tekstas := eilutė (b)
}
V:
importuoti os
kelias := "/etc/hosts"
tekstas := os.read_file (kelias) arba {
eprintln (klaida)
grąžinti
}
Failų skaitymui V naudoja OS modulį, kad teiktų įprastas OS / platformos nepriklausomas funkcijas. Jie atlieka tokias užduotis kaip prieiga prie komandinės eilutės argumentų, failų skaitymas ir tvarkymo procesai. Tokiu atveju norime perskaityti failą kelias ir grąžinkite turinį, todėl naudosite skaitymo_failas (kelias) funkcija. read_file grąžina klaidą, jei pateiktame turinio nėra kelias. Jei norite sužinoti daugiau apie kiti V moduliai, galbūt norėsite peržiūrėti jų dokumentus.
Pasiruošę išbandyti V?
V yra nauja programavimo kalba, kuri vis dar yra ankstyvoje kūrimo stadijoje. Nepaisant to, jis turi daug galios ir yra greitas, saugus, lengvas ir prižiūrimas.
V kodas yra švaresnis nei C++ ir Go. Tai rodo, kad V gali padėti programuotojams laikytis vieno iš pagrindinių programavimo principų. Taigi, ar esate pasirengęs išbandyti V?