V ir jauna, atvērtā koda, statiski tipizēta programmēšanas valoda, ko radījis Aleksandrs Medvedņikovs. V solās būt vienkārša, ātra un droša, lai izveidotu uzturējamu programmatūru. V dizainu ir ietekmējušas vairākas valodas, tostarp Oberon, Swift, Kotlin un Python.
Uzziniet par V, tā funkcijām un salīdzinājumu ar citām valodām.
Lietas, ko varat darīt ar V
V ir daudz jaudas, un jūs to varat izmantot gandrīz jebkurā nozarē, tostarp sistēmu programmēšanā, tīmekļa izstrādē un spēļu izstrādē. Valoda ir vienkārša, ātra un droša.
V piedāvā plašu jaudīgu grafikas bibliotēku klāstu spēļu izstrādei. Tie ir balstīti uz GDI+/Cocoa Drawing un OpenGL, lai nodrošinātu sarežģītākas 2D/3D lietojumprogrammas.
V ir UI modulis, kurā tiek izmantoti vietējie GUI rīku komplekti mobilajām lietotnēm, WinAPI/GDI+ operētājsistēmai Windows, Cocoa operētājsistēmai MacOS un pielāgota rasēšana operētājsistēmai Linux.
Iemesli izmēģināt V
Lai gan V ir jauna valoda, šīs priekšrocības padara to par likumīgu iespēju.
Vienkāršība
Lai izveidotu projektu, jums vienkārši jāpalaiž:
v .
Jums nav jāiestata veidošanas vide, jāizveido makefile, jāimportē galvenes vai jāiestata virtuālā vide. Ja vēlaties instalēt jaunas bibliotēkas, izmantojot vpm (V pakotņu pārvaldnieks), vienkārši palaidiet
v instalēt <pakotnes_nosaukums>
Drošība
Pēc noklusējuma V ir:
- nemainīgi mainīgie
- nemainīgas struktūras
- opciju/rezultātu un obligātās kļūdu pārbaudes
- summu veidi
- ģenēriskās zāles
- nemainīga funkcija args
un nē:
- null
- mainīga ēnošana
- nenoteikta uzvedība
- globālie mainīgie (var iespējot zema līmeņa programmām, piemēram, kodoliem, izmantojot karogu)
Kompilācijas ātrums
Dažas programmēšanas valodas izpildes vai kompilācijas ziņā ir ātrākas par citām. V ir tikpat rezultatīvs kā C. Tas var lepoties ar kompilācijas laiku aptuveni 110 000 loc/s ar C aizmugursistēmu un aptuveni 1 miljonu loku/s ar vietējām un tcc aizmugursistēmām. V arī izvairās no nevajadzīgiem piešķīrumiem, lai nodrošinātu vienkāršu kodēšanas pieeju bez abstrakcijas.
Atmiņas pārvaldība
V neizmanto atkritumu savācēju, tāpēc tas atšķiras no tādām valodām kā Go un Java. Tā vietā V pārvalda atmiņu kompilēšanas laikā, bet darbojas tikai pamata situācijās. Sarežģītākos gadījumos tas ir jāpārvalda manuāli.
Formatēšana koda stila konsekvencei
Jūs varat izmantot vfmt formatētājs, lai formatētu V kodu un uzlabotu tā lasāmību, izpildot:
v fmt -w <jūsu_faila nosaukums>.v
Draudzīgi kļūdu ziņojumi
V kļūdu ziņojumi ir detalizēti, informatīvi un noderīgi. Apskatiet šo piemēru:
lietotājs.v:8:14: kļūda: `update_user` parametrs "lietotājs". ir mainīgs, jums tas ir jānodrošina `mut`: "update_user (mut user)".
7 | mut lietotājs := lietotājs{}
8 | update_user (lietotājs)
| ~~~~
9 | }
Izmantojot kļūdas ziņojumu, varat labot šo kodu:
mut lietotājs := lietotājs{}
update_user (mums lietotājs)
C++ vs. Iet vs. V: Trīs valodu salīdzināšana
Šajos piemēros varat redzēt, kā C++, Go un V kods atšķiras konkrētos programmēšanas lietošanas gadījumos.
Sveika pasaule
C++ valodā:
#iekļauts <iostream>
starptgalvenais(){
std:: cout <<"Sveika pasaule!"<< std:: endl;
}
In Go:
iepakojums galvenais
imports "fmt"
func galvenais(){
fmt. Println("Sveika pasaule!")
}
V:
println('Sveika pasaule!')
Šajā ļoti vienkāršajā programmā -drukājot tekstu "Sveika pasaule!"— jūs varat redzēt, ka V ir daudz vienkāršāks nekā C++ vai Go. Šādai vienkāršai programmai nav jāimportē vai jāiekļauj nekādas bibliotēkas.
Vektoru inicializācija
C++ valodā:
std:: vektors<starpt> skaitļi = {1, 2, 3, 4};
In Go:
cipari := []starpt{1, 2, 3, 4}
V:
skaitļi := [1, 2, 3, 4]
Šajā lietošanas gadījumā jūs varat redzēt, ka V joprojām rada tīrāku kodu nekā divi citi. Atšķirībā no Go un C++ vektori, V neprasa, lai tā vektoriem būtu fiksēta tipa vērtības.
Vektora drukāšana
C++ valodā:
std::copy (numbers.begin(), cipariem.beigas(),
std:: ostream_iterator<starpt>(std:: cout, ""));
std:: cout << std:: endl;
In Go:
fmt.Drukāt(cipariem)
V:
println (skaitļi)
Funkcija V println var izdrukāt vektora mainīgo sākotnēji, tāpat kā Go var, lai gan pēdējā izmanto fmt pakotni. C++ iostream galvenes faili nodrošina līdzīgu funkcionalitāti. Tomēr jums joprojām būs jārūpējas par atsevišķu vektora elementu drukāšanu.
Faila lasīšana
C++ valodā:
#ietver
#ietverstarptgalvenais(){
std::virkne ceļš = "/etc/hosts";
std::ifstream f(ceļš);
std::virkne teksts;
text.assign(std::istreambuf_iterator<char>(f), {});
ja (!f)
std::cerr << "kļūda lasot no faila" << std::endl;
}
In Go:
iepakojums galvenais
imports (
"io/ioutil"
"žurnāls"
)func galvenais(){
ceļš := "/etc/hosts"
b, err := ioutil. ReadFile (ceļš)if err != nil {
žurnāls.Drukāt(kļūda)
atgriezties
}
teksts := virkne (b)
}
V:
imports os
ceļš := "/etc/hosts"
teksts := os.read_file (ceļš) vai {
eprintln (kļūda)
atgriezties
}
Failu lasīšanai V izmanto OS moduli, lai nodrošinātu kopīgas OS/platformas neatkarīgas funkcijas. Tie apstrādā tādus uzdevumus kā piekļuve komandrindas argumentiem, failu lasīšana un apstrādes procesi. Šajā gadījumā mēs vēlamies nolasīt failu ceļš un atgrieziet saturu, lai jūs izmantotu read_file (ceļš) funkciju. read_file atgriež kļūdu, ja dotajā nav esoša satura ceļš. Ja vēlaties uzzināt vairāk par citi V moduļi, iespējams, vēlēsities iepazīties ar viņu dokumentāciju.
Vai esat gatavs izmēģināt V?
V ir jauna programmēšanas valoda, kas joprojām ir agrīnā attīstības stadijā. Tomēr tam ir liela jauda, un tas ir ātrs, drošs, vienkāršs un apkopjams.
V kods ir tīrāks nekā C++ un Go. Tas liek domāt, ka V var palīdzēt programmētājiem ievērot vienu no programmēšanas pamatprincipiem. Tātad, vai esat gatavs izmēģināt V?