V Заметки по изучению языка
Оглавление :
Введение: vlang, язык будущего
vlang, для front-end, back-end, больших данных, blockchain, искусственного интеллекта, пронизывает каждый аспект общества. Победить другие языки программирования и объединить мир в 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
. На моем ноутбуке Apple версии 2015 года один раз компиляция занимает 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