V on uus, avatud lähtekoodiga staatiliselt tipitud programmeerimiskeel, mille on loonud Aleksander Medvednikovi. V tõotab olla lihtne, kiire ja ohutu hooldatava tarkvara loomiseks. V disaini on mõjutanud mitmed keeled, sealhulgas Oberon, Swift, Kotlin ja Python.

Lisateavet V kohta, selle funktsioone ja selle võrdlust teiste keeltega.

Asjad, mida saate teha V-ga

V-l on palju jõudu ja saate seda kasutada peaaegu igas tööstusharus, sealhulgas süsteemi programmeerimises, veebiarenduses ja mängude arenduses. Keel on otsekohene, kiire ja turvaline.

V pakub mängude arendamiseks laia valikut võimsaid graafikateeke. Need põhinevad GDI+/Cocoa Drawing ja OpenGL-ile keerukamate 2D/3D rakenduste jaoks.

V-l on kasutajaliidese moodul, mis kasutab mobiilirakenduste jaoks natiivseid GUI tööriistakomplekte, Windowsi jaoks WinAPI/GDI+, macOS-i jaoks Cocoat ja Linuxi jaoks kohandatud joonistamist.

Põhjused, miks proovida V

Kuigi V on uus keel, muudavad need eelised selle seaduslikuks valikuks.

Lihtsus

Projekti koostamiseks peate lihtsalt käivitama:

instagram viewer
v.

Te ei pea seadistama ehituskeskkonda, looma make-faili, importima päiseid ega seadistama virtuaalset keskkonda. Kui soovite installida uusi teeke, kasutades vpm (V paketihaldur), lihtsalt käivitage

v installida <paketi_nimi>

Ohutus

Vaikimisi on V-l:

  • muutumatud muutujad
  • muutumatud struktuurid
  • valik/tulemus ja kohustuslik veakontroll
  • summa liigid
  • geneerilised ravimid
  • muutumatu funktsioon args

ja ei:

  • null
  • muutuv varjutus
  • määratlemata käitumine
  • globaalsed muutujad (saab lubada madala taseme rakenduste jaoks, nagu tuumad, lipu kaudu)

Koostamise kiirus

Mõned programmeerimiskeeled on täitmise või kompileerimise osas teistest kiiremad. V on sama tulemuslik kui C. Selle kompileerimisajad on umbes 110 000 loc/s C-taustaprogrammiga ja umbes 1 miljon loc/s natiivsete ja tcc-taustaprogrammidega. V väldib ka mittevajalikke jaotamist, et pakkuda lihtsat abstraktsioonivaba kodeerimismeetodit.

Mälu haldamine

V ei kasuta prügikogujat, mistõttu see erineb sellistest keeltest nagu Go ja Java. Selle asemel haldab V mälu kompileerimise ajal, kuid töötab ainult põhiolukordades. Keerulisemate juhtumite puhul peate seda käsitsi haldama.

Vormindamine koodistiili järjepidevuse tagamiseks

Võite kasutada vfmt vormindaja V-koodi vormindamiseks ja selle loetavuse parandamiseks, käivitades:

v fmt -w <sinu_failinimi>.v

Sõbralikud veateated

V veateated on üksikasjalikud, informatiivsed ja abistavad. Vaadake seda näidet:

user.v:8:14: viga: `update_user` parameeter `kasutaja` on muutuv, peate pakkuma `mut`: `update_user (mut user)`
7 | mut user := Kasutaja{}
8 | update_user (kasutaja)
| ~~~~
9 | }

Veateate abil saate selle koodi parandada:

mut user := Kasutaja{}
update_user (mut kasutaja)

C++ vs. Mine vs. V: Kolme keele võrdlemine

Nendes näidetes näete, kuidas C++, Go ja V kood erineb konkreetsetel programmeerimise kasutusjuhtudel.

Tere, Maailm

C++ keeles:

#kaasa <iostream>

intpeamine(){
std:: cout <<"Tere, Maailm!"<< std:: endl;
}

In Go:

pakett peamine
importida "fmt"

func peamine(){
fmt. Println("Tere, Maailm!")
}

V-s:

println('Tere, Maailm!')

Selles väga lihtsas programmistrükkides teksti "Tere maailm!"— näete, et V on palju lihtsam kui C++ või Go. Sellise lihtsa programmi jaoks ei pea te teeke importima ega kaasama.

Vektori initsialiseerimine

C++ keeles:

std:: vektor<int> arvud = {1, 2, 3, 4};

In Go:

numbrid := []int{1, 2, 3, 4}

V-s:

numbrid := [1, 2, 3, 4]

Sel juhul näete, et V toodab siiski puhtamat koodi kui kaks teist. Erinevalt Go ja C++ vektorid, V ei nõua, et selle vektoritel oleks fikseeritud tüüpi väärtusi.

Vektori printimine

C++ keeles:

std::copy (numbers.begin(), numbrid.lõpp(),
std:: ostream_iterator<int>(std:: cout, ""));

std:: cout << std:: endl;

In Go:

fmt.Println(numbrid)

V-s:

println (numbrid)

Funktsioon V println võib printida vektormuutuja natiivselt, nagu ka Go, kuigi viimane kasutab fmt-paketti. C++ iostreami päisefailid pakuvad sarnaseid funktsioone. Siiski peate siiski hoolitsema vektori üksikute elementide printimise eest ise.

Faili lugemine

C++ keeles:

#sisaldama
#sisaldama

intpeamine(){
std::string path = "/etc/hosts";
std::ifstream f(tee);
std::string tekst;
text.assign(std::istreambuf_iterator<char>(f), {});

kui (!f)
std::cerr << "viga faili lugemisel" << std::endl;
}

In Go:

pakett peamine

importida (
"io/ioutil"
"logi"
)

func peamine(){
tee := "/etc/hosts"
b, err := ioutil. Faili lugemine (tee)

if err != nil {
logi.Println(eks)
tagasi
}

tekst := string (b)
}

V-s:

importida os

tee := "/etc/hosts"
text := os.read_file (tee) või {
eprintln (viga)
tagasi
}

Failide lugemiseks kasutab V OS-i moodulit, et pakkuda tavalisi OS-i/platvormi sõltumatuid funktsioone. Need tegelevad selliste ülesannetega nagu käsurea argumentidele juurdepääs, failide lugemine ja töötlemisprotsessid. Sel juhul tahame faili sisse lugeda tee ja tagastage sisu, et saaksite kasutada read_file (tee) funktsiooni. read_file tagastab vea, kui antud failis pole sisu tee. Kui soovite rohkem teada saada muud V moodulid, võiksite vaadata nende dokumentatsiooni.

Kas olete valmis V proovima?

V on uus programmeerimiskeel, mis on alles arengu algstaadiumis. Sellest hoolimata on sellel palju jõudu ning see on kiire, turvaline, lihtne ja hooldatav.

V-l on puhtam kood kui C++ ja Go. See viitab sellele, et V saab aidata programmeerijaid kinni pidada ühest programmeerimise põhiprintsiibist. Niisiis, kas olete valmis V proovima?