V Notatki z nauki języków obcych
Spis treści :
Wprowadzenie: vlang, język przyszłości
vlang, dla front-end, back-end, big data, blockchain, sztucznej inteligencji, przenika każdy aspekt życia społecznego. Pokonanie innych języków programowania i zjednoczenie świata w 2050 roku. Stał się nawet światowym lingua franca, umożliwiając ludzkości odbudowę legendarnej Wieży Babel i skokowy postęp technologiczny ......
--- Cytowane z Dziennika Ludowego 2050
Przedmowa
V语言
Vlang - język programowania dla hakerów.
rust i zig są dobre, ale są zbyt rygorystyczne i akademickie.
V jest raczej językiem szybkiego startu, takim jak javascript, mniej ustrukturyzowanym, szybkim do rozpoczęcia pracy i oczywiście szybkim.
Wiele informacji zawartych na stronie głównej V jeszcze się nie przyjęło (np. o automatycznym przechodzeniu z C do V) i przez wielu zostało nazwanych fałszywą propagandą, np:
Właściwą strategią jest najpierw uprawianie propagandy, a potem jej realizacja; ludzie są wspólnotą wyobraźni.
Większość ludzi wierzy, bo widzi, a niektórzy widzą, bo wierzą.
Podobnie jak wiara w komunizm może być w mniejszości, ale zawsze znajdzie się niewielka liczba ludzi, którzy naprawdę wierzą, a ogień gwiazdy może wzniecić pożar prerii. Bez Partii Komunistycznej nie byłoby nowych Chin.
Matematycy komputerowi mogą uznać V za nieco niepoważny, ale wierzę, że hakerzy pokochają ten język.
Myślenie to działanie, odwaga myślenia, odwaga próbowania, i może na tym polega różnica między sztuką a matematyką. Czy język programowania jest sztuką czy matematyką? To jest odwieczne pytanie.
Myślę, że najlepszą rzeczą w V jest zacieranie się granic między projektowaniem języka a tworzeniem programów.
Kompiluje się sam i w ciągu trzech lub pięciu sekund można go ponownie skompilować, a kod jest czysty.
Autor V pisze w strukturze katalogu kodowego V:
Starałem się, aby kompilator i kod vlib były tak proste i czytelne, jak to tylko możliwe.
Jednym z celów V jest otwartość na programistów o różnym poziomie doświadczenia w tworzeniu kompilatorów. Kompilator nie musi być czarną skrzynką pełną magii, którą może zrozumieć tylko kilka osób.
Kompilator V ma budowę modułową i może być używany przez inne aplikacje. Znajduje się on pod adresem
cmd/v/
ivlib/v/
.Najważniejszym i najbardziej przydatnym poleceniem podczas pracy z kompilatorem V jest
v self
. Powoduje przebudowę kompilatora V.Struktura kompilatora jest bardzo prosta i składa się z trzech etapów.
Parsowanie/generowanie AST (
v.parser
) => sprawdzanie typu (v.checker
) => generowanie kodu C/JavaScript/maszynowego (v.gen
)
Można by pomyśleć:
Myślę jednak, że ta prostota jest najlepszą cechą V.
Nie myśl o V jak o tradycyjnym, niezgrabnym języku programowania z kompilatorem, który jest obskurną, nieznaną książką na niebie.
Pomyśl o nim jako o frameworku do tworzenia front-endów internetowych, takim jak Vue, gdzie bariera wejścia jest niska i każdy może się zaangażować.
Jeśli masz jakiś problem, po prostu go zmień.
Zrób to sam, a będziesz miał co jeść.
Nowy, piękny świat nie jest czymś, na co się czeka, lecz czymś, co ludzie pracy tworzą własnymi rękami.
v self
Skompiluj go samodzielnie
V może łatwo skompilować się przy użyciu v self
. Na moim laptopie Apple w wersji 2015 jednokrotna kompilacja zajmuje 5,63 sekundy.
Zalecam zainstalowanie go jako kodu źródłowego.
git clone git@github.com:vlang/v.git
make
sudo ./v symlink
Jeśli masz jakieś pomysły, zmodyfikuj bezpośrednio kod źródłowy kompilatora lub biblioteki standardowej.
Następnie należy użyć strony v self
i skompilować ją samodzielnie. Po opracowaniu wymagań należy je zatwierdzić i scalić z oficjalnym kodem źródłowym.
Dziś właśnie poznałem V i zgłosiłem 3 żądania scalenia (1, 2, 3 ) z sugestią ulepszenia języka: opcjonalna jawna deklaracja wsparcia dla interfejsu.
Nie mówię dobrze po angielsku, ale dzięki tłumaczowi na stronie DeepL mogę łatwo konwertować z języka chińskiego na angielski, co ułatwia komunikację z przyjaciółmi z zagranicy.
V Pisanie scenariuszy
v init
Po zainicjowaniu projektu potrzebny jest skrypt kompilacji.
Do napisania tego skryptu zamiast basha można użyć V.
Mój skrypt kompilacji wygląda następująco.
#!/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)
Monitorowanie zmian w plikach i automatyczne wznawianie pracy
Mam w zwyczaju pisać i uruchamiać skrypt raz, a monitorowanie zmian i automatyczne uruchamianie go ponownie jest tym, czego potrzebuję.
v jest dostarczany z witryną v watch run xx.v
, która to umożliwia.
Stworzyłem następujący skrypt ułatwiający korzystanie z witryny ./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\""
Szablon projektu - patrz rmw-link/rmw-v-template