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

instagram viewer

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
#ietver

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