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
vpm (V upravitelj paketa), samo pokrenitev 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čitiintglavni(){
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?