V Notes sur l'apprentissage des langues
Table des matières :
Introduction : vlang, la langue du futur
vlang, pour le front-end, le back-end, le big data, la blockchain, l'intelligence artificielle, imprègne tous les aspects de la société. Battre les autres langages de programmation et unifier le monde en 2050. Il est même devenu la lingua franca du monde, permettant à l'humanité de reconstruire la légendaire tour de Babel et de faire progresser la technologie à pas de géant .......
--- Cité par le Quotidien du Peuple 2050
Préface
V语言
Vlang, le langage de programmation pour les hackers.
rust et zig sont bons, mais ils sont trop rigoureux et académiques.
V est plus un langage de démarrage rapide comme javascript, moins structuré, rapide à démarrer et bien sûr rapide.
Une grande partie du battage publicitaire sur la page d'accueil du V n'a pas encore pris racine (par exemple, le passage automatique de C à V) et a été qualifiée de propagande mensongère par beaucoup, par exemple :
La bonne stratégie consiste d'abord à faire de la propagande et ensuite à la concrétiser ; les êtres humains sont une communauté d'imagination.
La plupart des gens croient parce qu'ils voient, et certaines personnes voient parce qu'elles croient.
De même, la croyance au communisme est peut-être minoritaire, mais il y aura toujours un très petit nombre de personnes qui y croient vraiment, et le feu d'une étoile peut déclencher un feu de prairie. Sans le parti communiste, il n'y aurait pas de nouvelle Chine.
Les mathématiciens peuvent trouver V un peu frivole, mais je pense que les hackers vont adorer ce langage.
Penser, c'est agir, oser penser, oser essayer, et c'est peut-être là la différence entre l'art et les mathématiques. Un langage de programmation est-il un art ou des mathématiques ? C'est l'éternelle question.
Je pense que la meilleure chose à propos de V est l'effacement des frontières entre la conception du langage et le développement de programmes.
Il se compile lui-même, et en trois ou cinq secondes, il peut être recompilé, et le code est clair.
L'auteur de V écrit dans la structure de répertoire du code V:
J'ai essayé de rendre le compilateur et le code de la vlib aussi simples et lisibles que possible.
L'un des objectifs de V est d'être ouvert aux développeurs ayant différents niveaux d'expérience dans le développement de compilateurs. Le compilateur ne doit pas être une boîte noire pleine de magie que seules quelques personnes peuvent comprendre.
Le compilateur V est modulaire et peut être utilisé par d'autres applications. Il est situé à
cmd/v/
etvlib/v/
.La commande la plus importante et la plus utile pour travailler avec le compilateur V est
v self
. Il reconstruit le compilateur V.La structure du compilateur est très simple et comporte trois étapes différentes.
Analyser/générer l'AST (
v.parser
) => vérifier le type (v.checker
) => générer le code C/JavaScript/machine (v.gen
)
On pourrait penser :
Mais je pense que cette simplicité est ce qu'il y a de mieux chez V.
Ne considérez pas V comme un langage de programmation traditionnel et encombrant, doté d'un compilateur qui n'est qu'un livre obscur dans le ciel.
Considérez-le comme un cadre frontal web, comme Vue, où la barrière à l'entrée est faible et où tout le monde peut s'impliquer.
Si vous avez un problème, il suffit de le changer.
Faites-le vous-même et vous aurez de quoi manger.
Un nouveau monde magnifique n'est pas quelque chose que l'on attend sans rien faire, c'est quelque chose que les travailleurs créent de leurs mains.
v self
Compilez-le vous-même
V peut facilement se compiler lui-même en utilisant v self
. Sur ma version 2015 de l'ordinateur portable d'Apple, il faut 5,63 secondes pour compiler une fois.
Je recommande de l'installer en tant que code source.
git clone git@github.com:vlang/v.git
make
sudo ./v symlink
Si vous avez des idées, allez-y et modifiez directement le code source du compilateur ou de la bibliothèque standard.
Utilisez ensuite v self
et compilez-le vous-même. Une fois que vous avez défini vos besoins, engagez et fusionnez-les dans le code source officiel.
Aujourd'hui, je viens d'apprendre V et j'ai lancé 3 demandes de fusion ( 1, 2, 3 ) avec une suggestion d'amélioration du langage : déclaration explicite facultative du support d'une interface.
Je ne parle pas bien l'anglais, mais avec le traducteur sur DeepL, il est facile de convertir le chinois en anglais pour une communication approfondie avec des amis internationaux.
V Rédaction de scripts
v init
Après avoir initialisé le projet, j'ai besoin d'un script de compilation.
V peut être utilisé pour écrire ce script au lieu de bash.
Mon script de compilation est le suivant.
#!/usr/bin/env -S v run
import v.vmod
fn sh(cmd string){
println("❯ $cmd")
print(execute_or_exit(cmd).output)
}
vm := vmod.decode( @VMOD_FILE ) or { panic(err) }
name := vm.name
sh('v -autofree -prod ${name}.v')
suffix := $if windows { '.exe' } $else { '' }
src := name + suffix
bin := join_path_single('bin',src)
mkdir('bin') or {}
mv(src, bin)?
println(' '+bin)
Surveiller les changements de fichiers et relancer automatiquement l'exécution
J'ai l'habitude d'écrire et d'exécuter un script une fois, et surveiller les changements et le redémarrer automatiquement est ce dont j'ai besoin.
v est livré avec v watch run xx.v
pour faire cela.
J'ai créé un script pour faciliter l'utilisation de ./dev.sh
comme suit.
#!/usr/bin/env bash
DIR=$(dirname $(realpath "$0"))
cd $DIR
set -ex
NAME=$(cat v.mod|grep name|awk -F\' '{print $2}')
SH="v watch run $NAME.v"
exec $SH \
-i '.git' \
-i 'bin' \
-c -s --before "printf \"\e[90m❯ ${SH}\e[0m\n\""
Pour le modèle de projet, voir rmw-link/rmw-v-template.