V Poznámky k jazykovému vzdělávání
Obsah :
Úvod: vlang, jazyk budoucnosti
vlang, pro front-end, back-end, big data, blockchain, umělou inteligenci, proniká do všech aspektů společnosti. Překonání ostatních programovacích jazyků a sjednocení světa v roce 2050. Dokonce se stala světovým jazykem, který lidstvu umožnil obnovit legendární babylonskou věž a skokově pokročit v technologiích. ......
--- Citováno z People's Daily 2050
Předmluva
V语言
, Vlang, programovací jazyk pro hackery.
rust a zig jsou dobré, ale jsou příliš přísné a akademické.
V je spíše jazyk pro rychlý start, jako je javascript, méně strukturovaný, rychlý na začátek a samozřejmě rychlý.
Mnohé z toho, co se uvádí na domovské stránce V, se ještě neujalo (např. automatický přechod z C na V) a mnozí to označují za lživou propagandu, např. :
Správnou strategií je nejprve propagovat a teprve potom uskutečňovat; lidé jsou společenství s velkou představivostí.
Většina lidí věří, protože vidí, a někteří lidé vidí, protože věří.
Stejně jako víra v komunismus může být v menšině, ale vždy bude existovat velmi malý počet lidí, kteří opravdu věří, a oheň hvězdy může zapálit požár prérie. Bez komunistické strany by žádná nová Čína neexistovala.
Počítačovým matematikům může jazyk V připadat poněkud frivolní, ale věřím, že hackeři si ho zamilují.
Myšlení je jednání, odvaha myslet, odvaha zkoušet, a to je možná rozdíl mezi uměním a matematikou. Je programovací jazyk umění nebo matematika? To je věčná otázka.
Myslím, že nejlepší na V je to, že se stírají hranice mezi návrhem jazyka a vývojem programu.
Sám se zkompiluje a za tři nebo pět vteřin ho lze překompilovat a kód je jasný.
Autor V píše v adresářové struktuře kódu V:
Snažil jsem se, aby kompilátor a kód vlib byly co nejjednodušší a nejčitelnější.
Jedním z cílů systému V je být otevřený vývojářům s různou úrovní zkušeností s vývojem překladačů. Překladač nemusí být černá skříňka plná kouzel, kterým rozumí jen pár lidí.
Překladač V je modulární a může být použit i v jiných aplikacích. Nachází se na adrese
cmd/v/
avlib/v/
.Nejdůležitějším a nejužitečnějším příkazem při práci s překladačem V je
v self
. Přestaví překladač V.Struktura překladače je velmi jednoduchá a má tři různé kroky.
Parsování/generování AST (
v.parser
) => kontrola typu (v.checker
) => generování C/JavaScript/strojového kódu (v.gen
).
Někdo by si mohl myslet, že :
Myslím si však, že právě tato jednoduchost je na hře V to nejlepší.
Nepřemýšlejte o V jako o tradičním neohrabaném programovacím jazyce s kompilátorem, který je obskurní knihou v oblacích.
Představte si ho jako webový front-end framework, jako je Vue, kde je vstupní bariéra nízká a může se do něj zapojit každý.
Pokud máte problém, prostě ho změňte.
Udělejte to sami a budete mít co jíst.
Krásný nový svět není něco, na co se jen tak sedí a čeká, je to něco, co pracující lidé vytvářejí vlastníma rukama.
v self
Zkompilujte si ji sami
V se může snadno zkompilovat pomocí stránky v self
. Na mém notebooku Apple verze 2015 trvá kompilace jednou 5,63 sekundy.
Doporučuji jej nainstalovat jako zdrojový kód.
git clone git@github.com:vlang/v.git
make
sudo ./v symlink
Pokud vás něco napadne, upravte přímo zdrojový kód překladače nebo standardní knihovny.
Pak použijte stránku v self
a zkompilujte ji sami. Po vypracování požadavků je odevzdejte a začleňte do oficiálního zdrojového kódu.
Dnes jsem se právě naučil V a zahájil jsem 3 merge requesty (1, 2, 3 ) s návrhem na vylepšení jazyka: nepovinná explicitní deklarace podpory rozhraní.
Neumím dobře anglicky, ale s překladačem na DeepL je snadné převádět z čínštiny do angličtiny pro důkladnou komunikaci se zahraničními přáteli.
V Psaní scénářů
v init
Po inicializaci projektu potřebuji kompilační skript.
V lze k zápisu tohoto skriptu použít místo bashe.
Můj kompilační skript je následující.
#!/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)
Sledování změn souborů a automatické restartování běhu
Mým zvykem je napsat a spustit skript jednou a sledování změn a jeho automatické restartování je to, co potřebuji.
v je dodáván se stránkou v watch run xx.v
, která to umožňuje.
Vytvořil jsem skript, který usnadňuje používání stránky ./dev.sh
, a to následujícím způsobem.
#!/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\""
Šablona projektu viz rmw-link/rmw-v-template.