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:

instagram viewer
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čujejo

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