Malgré sa simplicité, V donne beaucoup de pouvoir au développeur et peut être utilisé dans pratiquement tous les domaines, y compris la programmation de systèmes, le développement web, le développement de jeux, l'interface graphique, le mobile, la science, l'embarqué, l'outillage, etc. V est très similaire à Go. Si vous connaissez Go, vous connaissez déjà ≈80% de V. Ce que V améliore par rapport à Go.
Sécurité
- Vérification des limites
- Pas de valeurs indéfinies
- Pas d'ombre de variable
- Variables immuables par défaut
- Structures immuables par défaut
- Contrôles des options/résultats et des erreurs obligatoires
- Types de somme
- Génériques
- Argue de fonction immuable par défaut, les argues mutables doivent être marquées lors de l'appel
- Pas de null (autorisé dans le code non sécurisé)
- Pas de comportement indéfini (wip, par exemple, un débordement peut toujours résulter en UB)
- Pas de variables globales (peut être activé pour les applications de bas niveau comme les noyaux via un drapeau)
Performance
- Interopérabilité C sans aucun coût
- Quantité minimale d'allocations
- Sérialisation intégrée sans réflexion au moment de l'exécution
- Compile en binaires natifs sans aucune dépendance : un simple serveur web ne pèse qu'environ 250 KB
- Aussi rapide que le C (le principal backend de V compile en C lisible par l'homme), avec un code équivalent.
V introduit quelques surcharges pour la sécurité (comme la vérification des limites des tableaux, le GC libre), mais ces fonctionnalités peuvent être désactivées ou contournées lorsque la performance est plus importante.
Compilation rapide
V compile ≈110 000 (backend Clang) et ≈500 000 (backends x64 et tcc) lignes de code par seconde.
(Intel i5-7500, SM0256L SSD, pas d'optimisation)
V est écrit en V et se compile en moins d'une seconde. La plus grande partie du compilateur est encore à un seul thread, il sera donc 2 à 3 fois plus rapide à l'avenir !
Compilateur petit et facile à construire
V peut être démarré en moins d'une seconde en compilant son code traduit en C avec une simple commande cc v.c. Aucune bibliothèque ou dépendance n'est nécessaire.
Pour comparaison, l'espace et le temps nécessaires à la construction de chaque compilateur :
Construire V en 0,3 seconde et utiliser le binaire résultant pour se reconstruire :
Gestion souple de la mémoire
V évite les allocations inutiles en utilisant des types de valeurs, des tampons de chaînes de caractères et en favorisant un style de code simple et sans abstraction.
Il y a 4 façons de gérer la mémoire dans V.
La méthode par défaut est un GC minimal et performant.
La deuxième méthode est autofree, elle peut être activée avec -autofree. Elle s'occupe de la plupart des objets (~90-100%) : le compilateur insère les appels de libération nécessaires automatiquement pendant la compilation. Le petit pourcentage restant d'objets est libéré par le GC. Le développeur n'a pas besoin de changer quoi que ce soit dans son code. Cela fonctionne tout simplement, comme dans Python, Go ou Java, sauf qu'il n'y a pas de GC lourd qui trace tout ou de RC coûteux pour chaque objet.
Pour les développeurs désireux d'avoir un contrôle plus bas, la mémoire peut être gérée manuellement avec -gc none.
L'allocation d'arène est disponible via v -prealloc.
La démo autofree de V. Tous les objets sont libérés pendant la compilation. Exécution de l'éditeur Ved sur un fichier de 8 Mo avec 0 fuite :
Exécuter partout
V peut produire du C (lisible par l'homme), ce qui vous permet de bénéficier du support et de l'optimisation de GCC et Clang. (Utilisez v -prod . pour faire des compilations optimisées). Emettre du C sera toujours une option, même après que la génération directe de code machine soit arrivée à maturité.
V peut appeler du code C, et appeler du code V est possible dans n'importe quel langage qui a l'interopérabilité avec le C.
Source : Vlang
Et vous ?
Trouvez-vous cette annonce en provenance du site vlang crédible ou pertinente ? Dans les faits ce langage de programmation est il utile, et si oui à quoi au juste ?
Voir aussi :
Crumb : Un nouveau langage de programmation où il n'y a pas de mots-clés et où tout est une fonction
Le langage de programmation V (Vlang) est désormais disponible en version 0.2 et met l'accent sur la stabilité et la gestion de la mémoire au moment de la compilation
Le langage de programmation V vient d'être publié en open source et semble ne pas tenir toutes ses promesses