V Anteckningar om språkinlärning
Innehållsförteckning :
Introduktion: vlang, framtidens språk
vlang, för front-end, back-end, stora data, blockchain, artificiell intelligens, genomsyrar alla aspekter av samhället. Slå andra programmeringsspråk och förena världen 2050. Det blev till och med världens lingua franca, vilket gjorde det möjligt för mänskligheten att återuppbygga det legendariska Babeltornet och göra tekniska framsteg med stormsteg. ......
--- Citerat i People's Daily 2050
Förord
V语言
Vlang, programmeringsspråket för hackare.
rust och zig är bra, men de är för stela och kollegiala.
V är mer som ett snabbstartspråk som javascript, mindre strukturerat, snabbt att komma igång med och naturligtvis snabbt.
Mycket av den hype som finns kring V-hemsidan har ännu inte slagit igenom (t.ex. C till V automatiskt) och har av många kallats för falsk, t.ex:
Det är rätt strategi att först göra reklam och sedan inse att människan är en fantasifull gemenskap.
De flesta människor tror för att de ser, och vissa människor ser för att de tror.
På samma sätt som tron på kommunismen kanske är i minoritet, men det kommer alltid att finnas ett mycket litet antal människor som faktiskt tror på den, och elden från en stjärna kan starta en prärie. Utan kommunistpartiet skulle det inte finnas något nytt Kina.
Datamatematiker kanske tycker att V är lite lättsinnigt, men jag är säker på att hackare kommer att älska språket.
Att tänka är att agera, att våga tänka, att våga försöka, och kanske är det skillnaden mellan konst och matematik. Är ett programmeringsspråk konst eller matematik? Det är den eviga frågan.
Jag tror att den största fördelen med V är att gränserna mellan språkdesign och programutveckling suddas ut.
Den kompilerar sig själv, och på tre eller fem sekunder kan den kompileras på nytt och koden är tydlig.
Författaren till V skriver i V-kodens katalogstruktur:
Jag har försökt göra kompilatorn och vlib-koden så enkel och lättläst som möjligt.
Ett av målen med V är att vara öppen för utvecklare med olika nivåer av erfarenhet av kompilatorutveckling. Kompilatorn behöver inte vara en svart låda full av magi som bara ett fåtal personer kan förstå.
V-kompilatorn är modulär och kan användas av andra program. Den finns på
cmd/v/
ochvlib/v/
.Det viktigaste och mest användbara kommandot när du arbetar med V-kompilatorn är
v self
. Den bygger om V-kompilatorn.Kompilatorns struktur är mycket enkel och består av tre olika steg.
Parsing/generering av AST (
v.parser
) => kontroll av typ (v.checker
) => generering av C/JavaScript/maskinkod (v.gen
)
En del kanske tänker :
Men jag tror att denna enkelhet är den största fördelen med V.
Tänk inte på V som ett traditionellt klumpigt programmeringsspråk med en kompilator som är en obskyr, obskyr bok i himlen.
Tänk på det som ett ramverk för webbfronter, som Vue, med en låg ingångsbarriär och något som alla kan delta i.
Om du har problem, byt bara ut dem.
Gör det själv och du kommer att bli välmående.
En vacker ny värld är inte något man bara sitter och väntar på, det är något som arbetande människor skapar med sina händer.
v self
kompilerar sig själv
V kan enkelt kompilera sig självt med v self
, på min bärbara Apple-dator från 2015 tar det 5,63 sekunder att kompilera en gång.
Jag rekommenderar att du installerar den som källkod.
git clone git@github.com:vlang/v.git
make
sudo ./v symlink
Om du har några idéer kan du ändra källkoden för kompilatorn eller standardbiblioteket direkt.
Använd sedan v self
och kompilera själv. När du har utarbetat dina krav, lägg in dem i den officiella källkoden och sammanfoga dem.
Idag har jag precis lärt mig V och har startat tre sammanslagningsbegäranden (1, 2, 3 ) med ett förslag till språkförbättring: valfri uttrycklig deklaration av stöd för ett gränssnitt.
Jag talar inte så bra engelska, men med översättaren på DeepL är det lätt att kommunicera på djupet med internationella vänner om kinesiska till engelska.
V Skriva manuskript
Efter att ha initialiserat projektet på v init
behöver jag ett kompileringsskript.
V kan skriva sådana skript istället för bash.
Mitt kompileringsskript är följande.
#!/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)
Övervaka filändringar och starta om körningen automatiskt
Jag har för vana att skriva och köra en gång, och att övervaka ändringar i filer och starta om dem automatiskt är något jag behöver.
v innehåller v watch run xx.v
för att göra detta.
Jag har skapat ett skript för att underlätta användningen av ./dev.sh
på följande sätt.
#!/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\""
För projektmallen se rmw-link/rmw-v-template.