V on uusi, avoimen lähdekoodin, staattisesti kirjoitettu ohjelmointikieli, jonka on luonut Alexander Medvednikov. V lupaa olla yksinkertainen, nopea ja turvallinen rakentaa ylläpidettävä ohjelmisto. Useat kielet ovat vaikuttaneet V: n suunnitteluun, mukaan lukien Oberon, Swift, Kotlin ja Python.
Opi V: stä, sen ominaisuuksista ja vertaa sitä muihin kieliin.
Asiat, joita voit tehdä V: n kanssa
V: ssä on paljon voimaa, ja voit käyttää sitä lähes kaikilla toimialoilla, mukaan lukien järjestelmäohjelmointi, web-kehitys ja pelikehitys. Kieli on suoraviivaista, nopeaa ja turvallista.
V tarjoaa laajan valikoiman tehokkaita grafiikkakirjastoja pelien kehittämiseen. Nämä rakentuvat GDI+/Cocoa Drawingin ja OpenGL: n päälle kehittyneemmille 2D/3D-sovelluksille.
V: ssä on käyttöliittymämoduuli, joka käyttää alkuperäisiä GUI-työkalusarjoja mobiilisovelluksille, WinAPI/GDI+:aa Windowsille, Cocoaa macOS: lle ja mukautettua piirustusta Linuxille.
Syitä kokeilla V
Vaikka V on uusi kieli, nämä edut tekevät siitä laillisen vaihtoehdon.
Yksinkertaisuus
Rakentaaksesi projektisi sinun tarvitsee vain suorittaa:
v.
Sinun ei tarvitse määrittää rakennusympäristöä, luoda make-tiedostoa, tuoda otsikoita tai perustaa virtuaaliympäristöä. Jos haluat asentaa uusia kirjastoja kautta vpm (V-paketinhallinta), suorita vain
v asentaa <paketin nimi>
Turvallisuus
Oletuksena V: ssä on:
- muuttumattomia muuttujia
- muuttumattomia rakenteita
- vaihtoehto/tulos ja pakolliset virhetarkistukset
- summatyypit
- geneeriset lääkkeet
- muuttumaton funktio args
ja ei:
- tyhjä
- muuttuva varjostus
- määrittelemätön käytös
- globaalit muuttujat (voidaan ottaa käyttöön matalan tason sovelluksille, kuten ytimille, lipun kautta)
Kokoamisnopeus
Jotkut ohjelmointikielet ovat nopeampia kuin toiset suorituksen tai kääntämisen suhteen. V on yhtä suorituskykyinen kuin C. Sen käännösajat ovat noin 110 000 loc/s C-taustajärjestelmällä ja noin 1 miljoona loc/s alkuperäisillä ja tcc-taustajärjestelmillä. V välttää myös tarpeettomia varauksia tarjotakseen yksinkertaisen abstraktiottoman koodausmenetelmän.
Muistin hallinta
V ei käytä roskakoria, mikä tekee siitä erilaisen kuin Go ja Java. Sen sijaan V hallitsee muistia käännöshetkellä, mutta toimii vain perustilanteissa. Sinun on hallittava sitä manuaalisesti monimutkaisemmissa tapauksissa.
Muotoilu koodityylien johdonmukaisuutta varten
Voit käyttää vfmt formatteri muotoillaksesi V-koodisi ja parantamalla sen luettavuutta suorittamalla:
v fmt -w <sinun_tiedostonimi>.v
Ystävälliset virheilmoitukset
V: n virheilmoitukset ovat yksityiskohtaisia, informatiivisia ja hyödyllisiä. Katso tämä esimerkki:
user.v:8:14: virhe: `update_user` parametri `käyttäjä` on muuttuva, sinun on annettava `mut`: "update_user (mut user)".
7 | mut user := Käyttäjä{}
8 | update_user (käyttäjä)
| ~~~~
9 | }
Virheilmoituksen avulla voit korjata tämän koodin:
mut user := Käyttäjä{}
update_user (mut user)
C++ vs. Mene vs. V: Kolmen kielen vertailu
Näissä esimerkeissä voit nähdä, kuinka C++-, Go- ja V-koodi eroavat tietyissä ohjelmoinnin käyttötapauksissa.
Hei maailma
C++:ssa:
#sisältää <iostream>
intpää(){
std:: cout <<"Hei maailma!"<< std:: endl;
}
In Go:
paketti pää
tuonti "fmt"
func pää(){
fmt. Println("Hei maailma!")
}
V: ssä:
println('Hei maailma!')
Tässä aivan perusohjelmassa -tulostamalla tekstin "Hei maailma!"-Voit nähdä, että V on paljon yksinkertaisempi kuin C++ tai Go. Sinun ei tarvitse tuoda tai sisällyttää kirjastoja tällaista yksinkertaista ohjelmaa varten.
Vektorin alustus
C++:ssa:
std:: vektori<int> numerot = {1, 2, 3, 4};
In Go:
numerot := []int{1, 2, 3, 4}
V: ssä:
numerot := [1, 2, 3, 4]
Tässä käyttötapauksessa voit nähdä, että V tuottaa silti puhtaamman koodin kuin kaksi muuta. Toisin kuin Go ja C++-vektorit, V ei vaadi vektoreillaan olevan kiinteän tyyppisiä arvoja.
Vektorin tulostaminen
C++:ssa:
std::copy (numbers.begin(), numeroita.end(),
std:: ostream_iterator<int>(std:: cout, ""));
std:: cout << std:: endl;
In Go:
fmt.Println(numeroita)
V: ssä:
println (numerot)
V: n println-funktio voi tulostaa vektorimuuttujan natiivisti, aivan kuten Go voi, vaikka jälkimmäinen käyttää fmt-pakettia. C++ iostream -otsikkotiedostot tarjoavat samanlaisia toimintoja. Sinun on kuitenkin silti huolehdittava vektorin yksittäisten elementtien tulostamisesta itse.
Tiedoston lukeminen
C++:ssa:
#sisältää
#sisältääintpää(){
std::merkkijono polku = "/etc/hosts";
std::ifstream f(polku);
std::merkkijono teksti;
text.assign(std::istreambuf_iterator<hiiltyä>(f), {});
jos (!f)
std::cerr << "virhe luettaessa tiedostosta" << std::endl;
}
In Go:
paketti pää
tuonti (
"io/ioutil"
"Hirsi"
)func pää(){
polku := "/etc/hosts"
b, err := ioutil. ReadFile (polku)jos err != nolla {
Hirsi.Println(err)
palata
}
teksti := merkkijono (b)
}
V: ssä:
tuonti os
polku := "/etc/hosts"
teksti := os.read_file (polku) tai {
eprintln (err)
palata
}
Tiedostojen lukemiseen V käyttää os-moduulia tarjotakseen yleisiä käyttöjärjestelmästä/ympäristöstä riippumattomia toimintoja. Nämä käsittelevät tehtäviä, kuten komentoriviargumenttien käyttöä, tiedostojen lukemista ja käsittelyprosesseja. Tässä tapauksessa haluamme lukea tiedoston sisään polku ja palauta sisältö, joten käytät read_file (polku) toiminto. read_file palauttaa virheen, jos annetussa tiedostossa ei ole sisältöä polku. Jos haluat oppia lisää muut V: n moduulit, sinun kannattaa tutustua heidän asiakirjoihin.
Oletko valmis kokeilemaan V: tä?
V on uusi ohjelmointikieli, joka on vielä kehitysvaiheessa. Siitä huolimatta siinä on paljon tehoa ja se on nopea, turvallinen, helppo ja huollettava.
V: ssä on puhtaampi koodi kuin C++:ssa ja Gossa. Tämä viittaa siihen, että V voi auttaa ohjelmoijia noudattamaan yhtä ohjelmoinnin perusperiaatteista. Joten oletko valmis kokeilemaan V: tä?