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ė.

instagram viewer

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
#įtraukti

tarptpagrindinis(){
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?