V Poznámky k jazykovému vzdelávaniu
Obsah :
Úvod: vlang, jazyk budúcnosti
vlang, pre front-end, back-end, big data, blockchain, umelú inteligenciu, preniká do každého aspektu spoločnosti. Poraziť ostatné programovacie jazyky a zjednotiť svet v roku 2050. Dokonca sa stala svetovým jazykom, vďaka ktorému ľudstvo obnovilo legendárnu Babylonskú vežu a pokročilo v technológiách míľovými krokmi. ......
--- Citované z denníka People's Daily 2050
Predslov
V语言
, Vlang, programovací jazyk pre hackerov.
rust a zig sú dobré, ale sú príliš prísne a akademické.
V je skôr jazyk pre rýchly štart, ako je javascript, menej štruktúrovaný, rýchly na začatie a samozrejme rýchly.
Mnohé z informácií na domovskej stránke V sa ešte neujali (napr. automatický prechod z C na V) a mnohí ich označili za falošnú propagandu, napr:
Správnou stratégiou je najprv propagovať a potom to aj uskutočniť; ľudia sú spoločenstvom predstavivosti.
Väčšina ľudí verí, pretože vidí, a niektorí ľudia vidia, pretože veria.
Rovnako ako viera v komunizmus môže byť v menšine, ale vždy bude existovať veľmi malý počet ľudí, ktorí naozaj veria, a oheň hviezdy môže zapáliť prériový požiar. Bez komunistickej strany by nová Čína neexistovala.
Počítačoví matematici môžu považovať jazyk V za trochu frivolný, ale verím, že hackeri si ho zamilujú.
Myslenie je konanie, odvaha myslieť, odvaha skúšať, a to je možno rozdiel medzi umením a matematikou. Je programovací jazyk umenie alebo matematika? To je večná otázka.
Myslím, že najlepšia vec na jazyku V je zmazanie hraníc medzi návrhom jazyka a vývojom programu.
Sám sa skompiluje a za tri alebo päť sekúnd sa dá prekompilovať a kód je jasný.
Autor V píše v adresárovej štruktúre kódu V:
Snažil som sa, aby bol kompilátor a kód vlib čo najjednoduchší a najčitateľnejší.
Jedným z cieľov V je byť otvorený pre vývojárov s rôznymi úrovňami skúseností s vývojom kompilátorov. Kompilátor nemusí byť čierna skrinka plná kúziel, ktorým rozumie len niekoľko ľudí.
Kompilátor V je modulárny a môžu ho používať aj iné aplikácie. Nachádza sa na adrese
cmd/v/
avlib/v/
.Najdôležitejší a najužitočnejší príkaz pri práci s kompilátorom V je
v self
. Prebuduje kompilátor V.Štruktúra kompilátora je veľmi jednoduchá a má tri rôzne kroky.
Parsovanie/generovanie AST (
v.parser
) => kontrola typu (v.checker
) => generovanie C/JavaScript/strojového kódu (v.gen
)
Niekto by si mohol myslieť:
Myslím si však, že práve táto jednoduchosť je na hre V najlepšia.
Nepremýšľajte o jazyku V ako o tradičnom nemotornom programovacom jazyku s kompilátorom, ktorý je obskúrnou, neznámou knihou v nebi.
Predstavte si ho ako webový front-end framework, ako je Vue, kde je vstupná bariéra nízka a do ktorého sa môže zapojiť každý.
Ak máte problém, jednoducho ho zmeňte.
Urobte to sami a budete mať čo jesť.
Krásny nový svet nie je niečo, na čo sa len tak sedí a čaká, je to niečo, čo pracujúci ľudia vytvárajú vlastnými rukami.
v self
Zostavte si ho sami
V sa môže ľahko skompilovať pomocou stránky v self
. Na mojom notebooku Apple vo verzii 2015 trvá kompilácia raz 5,63 sekundy.
Odporúčam ho nainštalovať ako zdrojový kód.
git clone git@github.com:vlang/v.git
make
sudo ./v symlink
Ak máte nejaké nápady, pokračujte a upravte priamo zdrojový kód kompilátora alebo štandardnej knižnice.
Potom použite stránku v self
a skompilujte si ju sami. Po vypracovaní požiadaviek ich odovzdajte a začleňte do oficiálneho zdrojového kódu.
Dnes som sa práve naučil V a spustil som 3 merge requesty (1, 2, 3 ) s návrhom na zlepšenie jazyka: voliteľná explicitná deklarácia podpory rozhrania.
Nehovorím dobre po anglicky, ale s prekladačom na stránke DeepL sa dá ľahko konvertovať z čínštiny do angličtiny a podrobne komunikovať so zahraničnými priateľmi.
V Písanie scenárov
v init
Po inicializácii projektu potrebujem kompilačný skript.
V možno použiť na napísanie tohto skriptu namiesto bash.
Môj kompilačný skript je nasledujúci.
#!/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)
Sledovanie zmien v súboroch a automatické reštartovanie behu
Je mojím zvykom napísať a spustiť skript raz a monitorovanie zmien a jeho automatické reštartovanie je to, čo potrebujem.
v sa dodáva so stránkou v watch run xx.v
, ktorá to umožňuje.
Vytvoril som nasledujúci skript na uľahčenie používania stránky ./dev.sh
.
#!/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\""
Šablónu projektu nájdete na stránke rmw-link/rmw-v-template