V est un nouveau langage de programmation open source à typage statique créé par Alexander Medvednikov. V promet d'être simple, rapide et sûr pour créer des logiciels maintenables. Plusieurs langages ont influencé la conception de V, notamment Oberon, Swift, Kotlin et Python.
Découvrez V, ses fonctionnalités et comment il se compare aux autres langages.
Choses que vous pouvez faire avec V
V a beaucoup de puissance et vous pouvez l'utiliser dans presque tous les secteurs, y compris la programmation système, le développement Web et le développement de jeux. Le langage est simple, rapide et sûr.
V propose une large gamme de bibliothèques graphiques puissantes pour le développement de jeux. Ceux-ci s'appuient sur GDI+/Cocoa Drawing et OpenGL pour des applications 2D/3D plus sophistiquées.
V dispose d'un module d'interface utilisateur qui utilise des kits d'outils d'interface graphique natifs pour les applications mobiles, WinAPI/GDI+ pour Windows, Cocoa pour macOS et un dessin personnalisé pour Linux.
Raisons d'essayer V
Bien que V soit un nouveau langage, ces avantages en font une option légitime.
Simplicité
Pour construire votre projet, il vous suffit d'exécuter :
v.
Vous n'avez pas besoin de configurer un environnement de construction, de créer un makefile, d'importer des en-têtes ou de configurer un environnement virtuel. Si vous souhaitez installer de nouvelles bibliothèques via vpm (Gestionnaire de packages V), exécutez simplement
v installer <nom du paquet>
Sécurité
Par défaut, V a :
- variables immuables
- structures immuables
- option/résultat et contrôles d'erreur obligatoires
- types de somme
- génériques
- arguments de fonction immuables
et non:
- nul
- ombrage variable
- comportement indéfini
- variables globales (peuvent être activées pour les applications de bas niveau telles que les noyaux, via un indicateur)
Vitesse de compilation
Certains langages de programmation sont plus rapides que d'autres, en termes d'exécution ou de compilation. V est aussi performant que C. Il affiche des temps de compilation d'environ 110 000 loc/s avec un backend C et d'environ 1 million de loc/s avec des backends natifs et tcc. V évite également les allocations inutiles pour fournir une approche de codage simple et sans abstraction.
Gestion de la mémoire
V n'utilise pas de ramasse-miettes, ce qui le rend différent des langages comme Go et Java. Au lieu de cela, V gère la mémoire au moment de la compilation, mais ne fonctionne que pour les situations de base. Vous devez le gérer manuellement pour les cas plus complexes.
Formatage pour la cohérence du style de code
Vous pouvez utiliser le vfmt formateur pour formater votre code V et améliorer sa lisibilité en exécutant :
v fmt-w <votre_nom_de_fichier>.v
Messages d'erreur amicaux
Les messages d'erreur de V sont détaillés, informatifs et utiles. Jetez un oeil à cet exemple:
utilisateur.v :8:14: Erreur: `utilisateur_mise_à_jour` paramètre `utilisateur` est modifiable, vous devez fournir `mut`: `update_user (utilisateur muet)`
7 | utilisateur mut := Utilisateur{}
8 | update_user (utilisateur)
| ~~~~
9 | }
Avec l'aide du message d'erreur, vous pouvez corriger ce code :
utilisateur mut := Utilisateur{}
update_user (utilisateur muet)
C++ contre Allez contre V: Comparaison des trois langues
Dans ces exemples, vous pouvez voir comment le code C++, Go et V diffère dans des cas d'utilisation de programmation spécifiques.
Bonjour le monde
En C++ :
#comprendre <iostream>
entierprincipale(){
std:: cout <<"Bonjour le monde!"<< std:: endl;
}
En Go :
forfait principale
importer "fmt"
fonction principale(){
fmt. Imprimerln("Bonjour le monde!")
}
En V :
println('Bonjour le monde!')
Dans ce programme très basique—imprimer le texte "Hello World!"—vous pouvez voir que V est beaucoup plus simple que C++ ou Go. Vous n'avez pas besoin d'importer ou d'inclure des bibliothèques pour un programme aussi simple.
Initialisation vectorielle
En C++ :
std:: vecteur<entier> nombres = {1, 2, 3, 4} ;
En Go :
nombres := []entier{1, 2, 3, 4}
En V :
nombres := [1, 2, 3, 4]
Dans ce cas d'utilisation, vous pouvez voir que V produit toujours un code plus propre que les deux autres. Contrairement à Go et Vecteurs C++, V n'exige pas que ses vecteurs contiennent des valeurs d'un type fixe.
Imprimer un vecteur
En C++ :
std::copie (nombres.begin(), Nombres.fin(),
std:: ostream_iterator<entier>(std:: cout, ""));
std:: cout << std:: endl;
En Go :
fmt.Println(Nombres)
En V :
println (chiffres)
La fonction println de V peut imprimer la variable vectorielle de manière native, tout comme celle de Go, bien que cette dernière utilise le package fmt. Les fichiers d'en-tête iostream C++ fournissent des fonctionnalités similaires. Cependant, vous devrez toujours prendre soin d'imprimer vous-même les éléments individuels du vecteur.
Lire un fichier
En C++ :
#comprendre
#comprendreentierprincipale(){
std::chaîne de caractères chemin = "/etc/hosts" ;
std::ifstream F(chemin);
std::chaîne de caractères texte;
text.assign(std::istreambuf_iterator<carboniser>(f), {});
si (!F)
std::cerr << "erreur de lecture du fichier" << std::fin;
}
En Go :
forfait principale
importer (
"io/ioutil"
"Journal"
)fonction principale(){
chemin := "/etc/hosts"
b, err := ioutil. LireFichier (chemin)si err != néant {
Journal.Println(se tromper)
revenir
}
texte := chaîne (b)
}
En V :
importer os
chemin := "/etc/hosts"
text := os.read_file (chemin) ou {
eprintln (erreur)
revenir
}
Pour la lecture de fichiers, V utilise le module os pour fournir des fonctions communes indépendantes du système d'exploitation et de la plate-forme. Ceux-ci gèrent des tâches telles que l'accès aux arguments de ligne de commande, la lecture de fichiers et la gestion de processus. Dans ce cas, nous voulons lire un fichier dans chemin et renvoyez le contenu, vous utiliserez donc le read_file (chemin) fonction. read_file renvoie une erreur s'il n'y a pas de contenu existant dans le fichier donné chemin. Si vous voulez en savoir plus sur autres modules de V, vous voudrez peut-être consulter leur documentation.
Prêt à essayer V ?
V est un nouveau langage de programmation qui en est encore à ses débuts de développement. Malgré tout, il a beaucoup de puissance et est rapide, sûr, facile et facile à entretenir.
V a un code plus propre que C++ et Go. Cela suggère que V peut aider les programmeurs à adhérer à l'un des principes de base de la programmation. Alors, êtes-vous prêt à essayer V ?