V è un nuovo linguaggio di programmazione open source con tipizzazione statica creato da Alexander Medvednikov. V promette di essere semplice, veloce e sicuro con cui creare software gestibile. Diversi linguaggi hanno influenzato il design di V tra cui Oberon, Swift, Kotlin e Python.
Scopri V, le sue caratteristiche e come si confronta con altre lingue.
Cose che puoi fare con V
V ha molta potenza e puoi usarlo in quasi tutti i settori, inclusi programmazione di sistema, sviluppo web e sviluppo di giochi. Il linguaggio è semplice, rapido e sicuro.
V offre un'ampia gamma di potenti librerie grafiche per lo sviluppo di giochi. Questi si basano su GDI+/Cocoa Drawing e OpenGL per applicazioni 2D/3D più sofisticate.
V ha un modulo interfaccia utente che utilizza toolkit GUI nativi per app mobili, WinAPI/GDI+ per Windows, Cocoa per macOS e disegni personalizzati per Linux.
Motivi per provare V
Sebbene V sia un nuovo linguaggio, questi vantaggi lo rendono un'opzione legittima.
Semplicità
Per costruire il tuo progetto, devi solo eseguire:
v.
Non è necessario configurare un ambiente di compilazione, creare un makefile, importare intestazioni o configurare un ambiente virtuale. Se vuoi installare nuove librerie tramite vpm (Gestione pacchetti V), esegui
v installare <nome del pacchetto>
Sicurezza
Per impostazione predefinita, V ha:
- variabili immutabili
- strutture immutabili
- opzione/risultato e controlli obbligatori degli errori
- tipi di somma
- generici
- funzione immutabile args
e no:
- nullo
- ombreggiatura variabile
- comportamento indefinito
- variabili globali (possono essere abilitate per app di basso livello come kernel, tramite flag)
Velocità di compilazione
Alcuni linguaggi di programmazione sono più veloci di altri, in termini di esecuzione o compilazione. V è performante come C. Vanta tempi di compilazione di circa 110k loc/s con un backend C e circa 1 milione di loc/s con backend nativi e tcc. V evita inoltre allocazioni non necessarie per fornire un approccio di codifica semplice e privo di astrazione.
Gestione della memoria
V non usa un Garbage Collector, il che lo rende diverso da linguaggi come Go e Java. Invece, V gestisce la memoria in fase di compilazione, ma funziona solo per le situazioni di base. È necessario gestirlo manualmente per i casi più complessi.
Formattazione per la coerenza dello stile del codice
Puoi usare il vfmt formattatore per formattare il codice V e migliorarne la leggibilità eseguendo:
v fmt -w <il tuo_nomefile>.v
Messaggi di errore amichevoli
I messaggi di errore di V sono dettagliati, informativi e utili. Dai un'occhiata a questo esempio:
utente.v:8:14: errore: `aggiornamento_utente` parametro `utente` è mutevole, è necessario fornire `mut`: `update_user (utente muto)`
7 | utente muto := Utente{}
8 | update_user (utente)
| ~~~~
9 | }
Con l'aiuto del messaggio di errore, puoi correggere questo codice:
utente muto := Utente{}
update_user (utente muto)
C++ contro Vai contro V: Confrontando le tre lingue
In questi esempi, puoi vedere come il codice C++, Go e V differisce in casi d'uso di programmazione specifici.
Ciao mondo
In C++:
#includere <iostream>
intprincipale(){
std:: cout <<"Ciao mondo!"<< std:: fine;
}
In Vai:
pacchetto principale
importare "fmt"
funz principale(){
fmt. Stampaln("Ciao mondo!")
}
In V:
println('Ciao mondo!')
In questo programma molto semplice—stampando il testo "Hello World!"— puoi vedere che V è molto più semplice di C++ o Go. Non è necessario importare o includere librerie per un programma così semplice.
Inizializzazione del vettore
In C++:
std:: vettore<int> numeri = {1, 2, 3, 4};
In Vai:
numeri := []int{1, 2, 3, 4}
In V:
numeri := [1, 2, 3, 4]
In questo caso d'uso, puoi vedere che V produce ancora un codice più pulito rispetto agli altri due. A differenza di Go e vettori C++, V non richiede che i suoi vettori contengano valori di tipo fisso.
Stampa di un vettore
In C++:
std::copia (numeri.inizio(), numeri.fine(),
std:: ostream_iterator<int>(std:: cout, ""));
std:: cout << std:: endl;
In Vai:
fmt.Stampa(numeri)
In V:
println (numeri)
La funzione println di V può stampare la variabile vettoriale in modo nativo, proprio come Go, sebbene quest'ultimo utilizzi il pacchetto fmt. I file di intestazione iostream C++ forniscono funzionalità simili. Tuttavia, dovrai comunque occuparti della stampa dei singoli elementi del vettore.
Lettura di un file
In C++:
#includere
#includereintprincipale(){
std::corda percorso = "/etc/host";
std::ifstream f(sentiero);
std::corda testo;
text.assign(std::istreambuf_iteratore<car>(f), {});
Se (!f)
std::cerr << "errore durante la lettura del file" << std::fine;
}
In Vai:
pacchetto principale
importare (
"io/ioutil"
"tronco d'albero"
)funz principale(){
percorso := "/etc/hosts"
b, err := ioutil. ReadFile (percorso)se err != zero {
tronco d'albero.Stampa(err)
Restituzione
}
testo := stringa (b)
}
In V:
importare os
percorso := "/etc/hosts"
testo := os.read_file (percorso) o {
eprintln (err)
Restituzione
}
Per la lettura dei file, V utilizza il modulo os per fornire funzioni comuni indipendenti dal sistema operativo/dalla piattaforma. Questi gestiscono attività come l'accesso agli argomenti della riga di comando, la lettura di file e la gestione dei processi. In questo caso, vogliamo leggere un file in sentiero e restituisci il contenuto, quindi utilizzerai il file read_file (percorso) funzione. read_file restituisce un errore se non c'è contenuto esistente nel dato sentiero. Se vuoi saperne di più su altri moduli di V, potresti voler controllare la loro documentazione.
Pronto a provare V?
V è un nuovo linguaggio di programmazione che è ancora nelle sue prime fasi di sviluppo. Anche così, ha molta potenza ed è veloce, sicuro, facile e manutenibile.
V ha un codice più pulito rispetto a C++ e Go. Ciò suggerisce che V può aiutare i programmatori ad aderire a uno dei principi di programmazione di base. Allora, sei pronto per provare V?