V Бележки за изучаване на езици
Съдържание :
Въведение: vlang, езикът на бъдещето
vlang, за front-end, back-end, големи данни, блокчейн, изкуствен интелект, прониква във всеки аспект на обществото. Побеждаване на други езици за програмиране и обединяване на света през 2050 г. Той дори се превръща в лингва франка на света, което позволява на човечеството да възстанови легендарната Вавилонска кула и да напредне в технологиите с много крачки. ......
--- Цитирано от People's Daily 2050
Предговор
V语言
, Vlang - езикът за програмиране за хакери.
rust и zig са добри, но са твърде строги и академични.
V е по-скоро език за бързо стартиране като javascript, по-малко структуриран, бърз за започване и, разбира се, бърз.
Голяма част от рекламите на началната страница на V все още не са се възприели (напр. автоматичното преминаване от C към V) и са наричани от мнозина лъжлива пропаганда, например :
Правилната стратегия е първо да се насочим към пропагандата, а след това да я осъществим; хората са общност на въображението.
Повечето хора вярват, защото виждат, а някои виждат, защото вярват.
Точно както вярата в комунизма може да е малцинство, но винаги ще има много малък брой хора, които наистина вярват, а огънят на една звезда може да предизвика пожар в прерията. Без комунистическата партия няма да има нов Китай.
Компютърните математици може да сметнат V за малко несериозен, но аз вярвам, че хакерите ще харесат езика.
Мисленето е действие, смелостта да мислиш, смелостта да опиташ и може би това е разликата между изкуството и математиката. Езикът за програмиране изкуство ли е или математика? Това е вечният въпрос.
Мисля, че най-хубавото нещо в V е размиването на границите между проектирането на езици и разработването на програми.
Той се компилира сам и за три или пет секунди може да бъде прекомпилиран, а кодът е ясен.
Авторът на V пише в структурата на директорията на кода V:
Опитах се да направя компилатора и кода на vlib възможно най-прости и разбираеми.
Една от целите на V е да бъде отворен за разработчици с различни нива на опит в разработването на компилатори. Не е необходимо компилаторът да бъде черна кутия, пълна с магии, които могат да разберат само няколко души.
Компилаторът V е модулен и може да се използва от други приложения. Той се намира на адрес
cmd/v/
иvlib/v/
.Най-важната и полезна команда при работа с компилатора V е
v self
. Той възстановява компилатора V.Структурата на компилатора е много проста и се състои от три различни стъпки.
Разбор/генериране на AST (
v.parser
) => проверка на типа (v.checker
) => генериране на C/JavaScript/машинен код (v.gen
)
Човек може да си помисли:
Но смятам, че тази простота е най-хубавото нещо в V.
Не мислете за V като за традиционен тромав език за програмиране с компилатор, който е неясна, непозната книга в небето.
Мислете за него като за рамка за уеб фронт-енд, подобно на Vue, при която бариерата за навлизане е ниска и всеки може да се включи.
Ако имате проблем, просто го променете.
Направете го сами и ще имате какво да ядете.
Прекрасният нов свят не е нещо, което просто седи и чака, а нещо, което работещите хора създават с ръцете си.
v self
Компилирайте го сами
V може лесно да се компилира сам с помощта на v self
. На моя лаптоп с версия 2015 на Apple еднократната компилация отнема 5,63 секунди.
Препоръчвам ви да го инсталирате като изходен код.
git clone git@github.com:vlang/v.git
make
sudo ./v symlink
Ако имате някакви идеи, направете директна промяна на изходния код на компилатора или стандартната библиотека.
След това използвайте v self
и го компилирайте сами. След като разработите изискванията си, ги предайте и слейте в официалния изходен код.
Днес току-що научих V и пуснах 3 заявки за сливане (1, 2, 3 ) с предложение за подобряване на езика: незадължително изрично деклариране на поддръжка на интерфейс.
Не говоря добре английски, но с помощта на преводача в DeepL е лесно да конвертирате от китайски на английски за задълбочена комуникация с приятели от чужбина.
V Писане на скриптове
v init
След инициализирането на проекта се нуждая от скрипт за компилиране.
V може да се използва за писане на този скрипт вместо bash.
Моят скрипт за компилиране е следният.
#!/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)
Следете промените във файловете и автоматично рестартирайте изпълнението
Имам навика да пиша и стартирам скрипт веднъж, а следенето за промени и автоматичното му рестартиране е това, от което се нуждая.
v се предлага с v watch run xx.v
, за да направите това.
Създадох скрипт за улесняване на използването на ./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\""
За шаблона на проекта вижте rmw-link/rmw-v-template