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Открыть в новом окне

Обновления:
С сайта: gcxfd