Découvrir le langage V

Par:
fredericmazue

mar, 19/01/2021 - 13:30

V est un langage apparu pour la première fois en open source en juin 2019. Il est encore dans les premières phases de son développement, mais il mérite sans doute déjà qu'on s'y intéresse. Son créateur, Alex Medvednikov, définit le langage V comme un langage très simple, similaire à Go, mais aussi influencé par Oberon, Rust, Swift, Kotlin, et Python. Ce langage veut promouvoir l'écriture de code simple, lisible et maintenable.

V est un langage statiquement typé. Son créateur le présente comme performant à l'exécution et à la compilation, et assure que le compilateur peut compiler jusqu'à 1,2 millions de lignes de code par seconde. V se compile lui même en 0,4 seconde et son environnement d'exécution est minuscule : 400 Ko.

En ce qui concerne la gestion de la mémoire, tout d'abord V évite de faire des allocations inutiles en utilisant des types valeur, des tampons de chaîne, et en promouvant un style de code simple sans abstraction. Ensuite la plupart des objets (~ 90-100%) sont libérés par le moteur 'autofree' de V : le compilateur insère automatiquement les appels nécessaires lors de la compilation. Le petit pourcentage restant d'objets est libéré via un mécanisme de comptage de références.

Le développeur n'a pas besoin de changer quoi que ce soit dans son code. "Ça marche juste", comme en Python, Go ou Java, sauf qu'il n'y a pas de GC lourd, explique Alex Medvednikov

Pour les développeurs souhaitant avoir un contrôle de bas niveau, le mécanisme autofree peut être désactivé.

V supporte le rechargement de code à chaud, et il propose une bibliothèque graphique construite sur GDI + / Cocoa, aisi qu'une bibliothèque graphique basée sur OpenGL pour des applications 2D / 3D. La prise en charge de DirectX, Vulkan et Metal est prévue. V dispose d'une librairie standard et d'un mécanisme de modules. V supporte la compilation croisée Windows / Linux / macOS. Enfin, il permet d'écrire des scripts et dispose d'une boucle d'évaluation interactive (REPL)

Voici un Hello World en V

fn main() {
             println('hello world')
}

V n'est pas un langage orienté objet. Pas de classes donc, mais vous pouvez définir des méthodes sur les types. Une méthode est une fonction avec un argument récepteur spécial. Le récepteur apparaît dans sa propre liste d'arguments entre le mot-clé fn et le nom de la méthode. Par exemple :

struct User {
             age int
}

fn (u User) can_register() bool {
             return u.age > 16
}

user := User{
             age: 10
}

println(user.can_register()) // "false"

user2 := User{
             age: 20
}

println(user2.can_register()) // "true"

V veut être un langage sûr :

  • Pas de valeur 'null'
  • Pas de variables globales
  • Pas de valeur indéfinie
  • Pas de comportement indéfini
  • Vérification des limites de tableaux
  • Variables immuables par défaut
  • Fonctions pures par défaut
  • Structures immuables par défaut
  • Contrôles des options / résultats et erreurs obligatoires
  • etc.
  •  

Le langage V a été initialement créé pour développer le client de messagerie Volt. Il est également le langage de développement de l'éditeur de code Ved

V est un logiciel libre sous licence MIT disponible sur GitHub.

Site et documentation : vlang.io

Commentaires

Du coup, ça ne ressemble pas à du Go ?