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Отваряне в нов прозорец

Актуализации:
От: gcxfd