V je nov, odprtokoden, statično tipiziran programski jezik, ki ga je ustvaril Alexander Medvednikov. V obljublja, da bo preprost, hiter in varen za izdelavo programske opreme, ki jo je mogoče vzdrževati. Na oblikovanje V je vplivalo več jezikov, vključno z Oberonom, Swiftom, Kotlinom in Pythonom.
Izvedite več o V, njegovih funkcijah in njegovi primerjavi z drugimi jeziki.
Stvari, ki jih lahko počnete z V
V ima veliko moč in lahko ga uporabljate v skoraj vseh panogah, vključno s sistemskim programiranjem, spletnim razvojem in razvojem iger. Jezik je preprost, hiter in varen.
V ponuja široko paleto zmogljivih grafičnih knjižnic za razvoj iger. Te nadgrajujejo GDI+/Cocoa Drawing in OpenGL za bolj sofisticirane 2D/3D aplikacije.
V ima modul uporabniškega vmesnika, ki uporablja izvorne komplete orodij GUI za mobilne aplikacije, WinAPI/GDI+ za Windows, Cocoa za macOS in risanje po meri za Linux.
Razlogi za poskus V
Čeprav je V nov jezik, je zaradi teh prednosti legitimna možnost.
Preprostost
Če želite zgraditi svoj projekt, morate samo zagnati:
v.
Ni vam treba nastaviti gradbenega okolja, ustvariti makefile, uvoziti glave ali nastaviti virtualnega okolja. Če želite namestiti nove knjižnice prek vpm (Upravitelj paketov V), samo zaženite
v namestite <ime_paketa>
Varnost
Privzeto ima V:
- nespremenljive spremenljivke
- nespremenljive strukture
- možnost/rezultat in obvezno preverjanje napak
- vrste vsot
- generiki
- nespremenljivi argumenti funkcije
in ne:
- nič
- spremenljivo senčenje
- nedefinirano vedenje
- globalne spremenljivke (lahko jih omogočite za aplikacije nizke ravni, kot so jedra, prek zastavice)
Hitrost kompilacije
Nekateri programski jeziki so hitrejši od drugih, kar zadeva izvajanje ali prevajanje. V je enako učinkovit kot C. Ponaša se s časom prevajanja okoli 110k loc/s z zaledjem C in približno 1 milijonom loc/s z izvornim in tcc zaledjem. V se tudi izogiba nepotrebnim dodelitvam, da bi zagotovil preprost pristop kodiranja brez abstrakcije.
Upravljanje pomnilnika
V ne uporablja zbiralnika smeti, zaradi česar se razlikuje od jezikov, kot sta Go in Java. Namesto tega V upravlja pomnilnik v času prevajanja, vendar deluje le v osnovnih situacijah. Za bolj zapletene primere ga morate upravljati ročno.
Oblikovanje za doslednost sloga kode
Lahko uporabite vfmt formater za oblikovanje kode V in izboljšanje njene berljivosti z zagonom:
v fmt -w <ime_vaše_datoteke>.v
Prijazna sporočila o napakah
Sporočila o napakah V so podrobna, informativna in koristna. Oglejte si ta primer:
uporabnik.v:8:14:napaka: `update_user` parameter `uporabnik` je spremenljiv, morate zagotoviti `mut`: `update_user (mut uporabnik)`
7 | mut uporabnik := uporabnik{}
8 | update_user (uporabnik)
| ~~~~
9 | }
S pomočjo sporočila o napaki lahko popravite to kodo:
mut uporabnik := uporabnik{}
update_user (mut uporabnik)
C++ proti Go vs. V: Primerjava treh jezikov
V teh primerih lahko vidite, kako se koda C++, Go in V razlikuje v posebnih primerih uporabe programiranja.
Pozdravljen, svet
V C++:
#vključi <iostream>
intglavni(){
std:: cout <<"Pozdravljen, svet!"<< std:: endl;
}
V Go:
paket glavni
uvoz "fmt"
funk glavni(){
fmt. Println("Pozdravljen, svet!")
}
V V:
println('Pozdravljen, svet!')
V tem zelo osnovnem programu—tiskanje besedila "Hello World!"— vidite lahko, da je V veliko enostavnejši od C++ ali Go. Za tako preprost program vam ni treba uvoziti ali vključiti nobenih knjižnic.
Inicializacija vektorja
V C++:
std:: vektor<int> številke = {1, 2, 3, 4};
V Go:
številke := []int{1, 2, 3, 4}
V V:
številke := [1, 2, 3, 4]
V tem primeru uporabe lahko vidite, da V še vedno ustvarja čistejšo kodo kot druga dva. Za razliko od Go in Vektorji C++, V ne zahteva, da njegovi vektorji vsebujejo vrednosti fiksnega tipa.
Tiskanje vektorja
V C++:
std::kopiraj (numbers.begin(), številke.konec(),
std:: ostream_iterator<int>(std:: cout, ""));
std:: cout << std:: endl;
V Go:
fmt.Println(številke)
V V:
println (številke)
V-jeva funkcija println lahko izvirno natisne vektorsko spremenljivko, tako kot Go-jeva, čeprav slednja uporablja paket fmt. Datoteke glave C++ iostream zagotavljajo podobno funkcionalnost. Še vedno pa boste morali sami poskrbeti za tiskanje posameznih elementov vektorja.
Branje datoteke
V C++:
#vključujejo
#vključujejointglavni(){
std::vrvica pot = "/etc/hosts";
std::ifstream f(pot);
std::vrvica besedilo;
text.assign(std::istreambuf_iterator<char>(f), {});
če (!f)
std::cerr << "napaka pri branju iz datoteke" << std::konec;
}
V Go:
paket glavni
uvoz (
"io/ioutil"
"dnevnik"
)funk glavni(){
pot := "/etc/hosts"
b, napaka := ioutil. ReadFile (pot)if err != nil {
dnevnik.Println(napaka)
vrnitev
}
besedilo := niz (b)
}
V V:
uvoz os
pot := "/etc/hosts"
besedilo := os.read_file (pot) ali {
eprintln (napaka)
vrnitev
}
Za branje datotek V uporablja modul os za zagotavljanje skupnih funkcij, neodvisnih od OS/platforme. Ti obravnavajo naloge, kot je dostop do argumentov ukazne vrstice, branje datotek in upravljanje procesov. V tem primeru želimo prebrati datoteko pot in vrnite vsebino, tako da boste uporabili read_file (pot) funkcijo. read_file vrne napako, če v dani datoteki ni obstoječe vsebine pot. Če želite izvedeti več o drugi moduli V, boste morda želeli preveriti njihovo dokumentacijo.
Ste pripravljeni preizkusiti V?
V je nov programski jezik, ki je še vedno v zgodnjih fazah razvoja. Kljub temu ima veliko moč in je hiter, varen, enostaven in vzdržljiv.
V ima čistejšo kodo kot C++ in Go. To nakazuje, da lahko V pomaga programerjem pri upoštevanju enega od osnovnih načel programiranja. Torej, ste pripravljeni preizkusiti V?