V je novi, statički tipiziran programski jezik otvorenog koda koji je stvorio Alexander Medvednikov. V obećava da će biti jednostavan, brz i siguran za izradu softvera koji se može održavati. Nekoliko jezika utjecalo je na dizajn V-a, uključujući Oberon, Swift, Kotlin i Python.

Saznajte više o jeziku V, njegovim značajkama i usporedbi s drugim jezicima.

Stvari koje možete učiniti s V

V ima veliku moć i možete ga koristiti u gotovo svakoj industriji, uključujući sistemsko programiranje, web razvoj i razvoj igara. Jezik je jednostavan, brz i siguran.

V nudi širok raspon snažnih grafičkih biblioteka za razvoj igara. Oni se nadograđuju na GDI+/Cocoa Drawing i OpenGL za sofisticiranije 2D/3D aplikacije.

V ima UI modul koji koristi izvorne GUI alate za mobilne aplikacije, WinAPI/GDI+ za Windows, Cocoa za macOS i prilagođeni crtež za Linux.

Razlozi da probate V

Iako je V novi jezik, ove prednosti ga čine legitimnom opcijom.

Jednostavnost

Da biste izgradili svoj projekt, samo trebate pokrenuti:

v.

Ne morate postaviti okruženje za izgradnju, izraditi makefile, uvesti zaglavlja ili postaviti virtualno okruženje. Ako želite instalirati nove biblioteke putem

instagram viewer
vpm (V upravitelj paketa), samo pokrenite

v instalirati <naziv_paketa>

Sigurnost

Prema zadanim postavkama, V ima:

  • nepromjenjive varijable
  • nepromjenjive strukture
  • opcija/rezultat i obavezne provjere grešaka
  • vrste zbroja
  • generici
  • nepromjenjivi args funkcije

i ne:

  • ništavan
  • promjenjivo sjenčanje
  • nedefinirano ponašanje
  • globalne varijable (mogu se omogućiti za aplikacije niske razine kao što su kerneli, putem oznake)

Brzina kompilacije

Neki programski jezici su brži od drugih, u smislu izvršavanja ili kompilacije. V je jednako učinkovit kao C. Može se pohvaliti vremenom kompilacije od oko 110k loc/s s C backendom i približno 1 milijun loc/s s izvornim i tcc backendom. V se također kloni nepotrebnih dodjela kako bi pružio pristup kodiranju bez apstrakcije.

Upravljanje memorijom

V ne koristi skupljač smeća, što ga čini drugačijim od jezika kao što su Go i Java. Umjesto toga, V upravlja memorijom tijekom kompajliranja, ali radi samo u osnovnim situacijama. Morate njime upravljati ručno za složenije slučajeve.

Oblikovanje za dosljednost stila koda

Možete koristiti vfmt formatter za formatiranje vašeg V koda i poboljšanje njegove čitljivosti pokretanjem:

v fmt -w <ime_vaše_datoteke>.v

Prijateljske poruke o pogrešci

V poruke o pogrešci su detaljne, informativne i korisne. Pogledajte ovaj primjer:

korisnik.v:8:14:greška: `ažuriraj_korisnika` parametar `korisnik` je promjenjiv, morate osigurati `mut`: `update_user (mut user)`
7 | mut user := Korisnik{}
8 | update_user (korisnik)
| ~~~~
9 | }

Uz pomoć poruke o pogrešci možete popraviti ovaj kod:

mut user := Korisnik{}
update_user (mut user)

C++ vs. Idi vs. V: Usporedba triju jezika

U ovim primjerima možete vidjeti kako se C++, Go i V kôd razlikuju u određenim slučajevima upotrebe programiranja.

Pozdrav svijete

U C++:

#uključi <iostream>

intglavni(){
std:: cout <<"Pozdrav svijete!"<< std:: endl;
}

In Go:

paket glavni
uvoz "fmt"

funk glavni(){
fmt. Println("Pozdrav svijete!")
}

U V:

println('Pozdrav svijete!')

U ovom vrlo osnovnom programu—ispis teksta "Hello World!"— možete vidjeti da je V mnogo jednostavniji od C++ ili Go. Za tako jednostavan program ne morate uvoziti niti uključivati ​​bilo kakve biblioteke.

Inicijalizacija vektora

U C++:

std:: vektor<int> brojevi = {1, 2, 3, 4};

In Go:

brojevi := []int{1, 2, 3, 4}

U V:

brojevi := [1, 2, 3, 4]

U ovom slučaju upotrebe, možete vidjeti da V još uvijek proizvodi čistiji kod od druga dva. Za razliku od Go and C++ vektori, V ne zahtijeva da njegovi vektori drže vrijednosti fiksnog tipa.

Ispis vektora

U C++:

std::kopiraj (brojevi.begin(), brojevima.kraj(),
std:: ostream_iterator<int>(std:: cout, ""));

std:: cout << std:: endl;

In Go:

fmt.Ispiši(brojevima)

U V:

println (brojevi)

V-ova funkcija println može izvorno ispisati vektorsku varijablu, baš kao što Go može, iako potonji koristi paket fmt. C++ iostream datoteke zaglavlja pružaju sličnu funkcionalnost. Ipak, i dalje ćete se morati sami pobrinuti za ispis pojedinačnih elemenata vektora.

Čitanje datoteke

U C++:

#uključiti
#uključiti

intglavni(){
std::niz put = "/etc/hosts";
std::ifstream f(staza);
std::niz tekst;
text.assign(std::istreambuf_iterator<char>(f), {});

ako (!f)
std::cerr << "pogreška čitanja iz datoteke" << std::endl;
}

In Go:

paket glavni

uvoz (
"io/ioutil"
"log"
)

funk glavni(){
put := "/etc/hosts"
b, pogriješiti := ioutil. ReadFile (staza)

if err != nula {
log.Ispiši(pogriješiti)
povratak
}

tekst := niz (b)
}

U V:

uvoz os

put := "/etc/hosts"
tekst := os.read_file (staza) ili {
eprintln (greška)
povratak
}

Za čitanje datoteka, V koristi os modul za pružanje uobičajenih funkcija neovisnih o OS/platformi. Oni obrađuju zadatke poput pristupa argumentima naredbenog retka, čitanja datoteka i rukovanja procesima. U ovom slučaju želimo učitati datoteku staza i vratite sadržaj, tako da ćete koristiti read_file (staza) funkcija. read_file vraća pogrešku ako nema postojećeg sadržaja u datoj staza. Ako želite saznati više o ostali moduli V, možda biste trebali provjeriti njihovu dokumentaciju.

Jeste li spremni isprobati V?

V je novi programski jezik koji je još uvijek u ranoj fazi razvoja. Unatoč tome, ima veliku snagu i brz je, siguran, jednostavan i lako se održava.

V ima čistiji kod od C++ i Go. Ovo sugerira da V može pomoći programerima u pridržavanju jednog od osnovnih načela programiranja. Dakle, jeste li spremni isprobati V?