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:
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
#sisaldamaintpeamine(){
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?