Несмотря на свою простоту, язык V может использоваться практически во всех областях разработки: системное программирование, веб, разработка игр, GUI, мобильные приложения и научные исследования.
V представляет собой компилируемый в машинный код язык со статической типизацией, сосредоточенный на решении задач по упрощению сопровождения разработки и обеспечению максимальной высокой скорости компиляции. Код компилятора, библиотек и сопутствующих инструментов открыт под лицензией MIT.
В этой публикации мы рассмотрим основные характеристики языка, примеры кода и как установить средства работы с языком на вашей операционной системе.
Основные характеристики
Вот как характеризуют язык автор проекта и те, кто им успели воспользоваться:
- Простота: при знакомстве с другими языками, изучить V можно выучить менее, чем за час
- Быстрая компиляция: от 100 тыс. до 1,2 млн строк кода в секунду на одном ядре CPU (данные приведены для Intel i5-7500 @ 3.40GHz, SM0256L SSD, без оптимизации). Самосборка компилятора: от 0.15 – 0.6 с
- Безопасность: нет
null
иglobals
, никакого неопределенного поведения, иммутабельный по умолчанию - Возможность бесшовного взаимодействия с C-кодом
- Трансляция проектов на C/С++
- Кроссплатформенная UI-библиотека
- Встроенная графическая библиотека
- Легкая кросс-компиляция
- Программы компилируются в исполняемые файлы без внешних зависимостей
- Поддержка hot reload: при внесении изменений не требуется компилировать код заново
- Есть интерактивная среда (REPL)
- Встроенный ORM (объектно-реляционное отображение)
- Встроенный веб-фреймворк
- Нет сборщика мусора или подсчета ссылок. Очистка происходит во время компиляции. Если V-программа компилируется, в ней нет утечек памяти.
- Язык имеет модульную структуру, есть менеджер пакетов vpm. Установка пакетов выглядит так:
v install sqlite
- Чтобы вызвать функцию
foo()
в новом потоке, достаточно написатьgo foo()
Александр Медведников начал работу над языком для решения собственных задач, и постоянно его совершенствует. В проекте сейчас 200 контрибьюторов, код распространяется по лицензии MIT.
Примеры кода
Не будем далеко ходить, посмотрим сразу на примеры кода. Протестировать их и примеры из документации можно, не устанавливая V – на онлайн-площадке Playground.
Расширенный "Hello world"
Числа Фибоначчи
Числа Фибоначчи + мемоизация
JSON кодирование/декодирование
Перегрузка операторов
Обновленная копия struct
Установка V
Средства работы с языком можно установить из сборок (Linux, macOS, Windows) или из исходников, клонировав репозиторий с GitHub:
Это уже полностью готовый V, который доступен по адресу [путь к V repo]/v
. На
Windows следует через командную строку использовать make.bat
.
Язык постоянно обновляется. Чтобы сделать апдейт, используем простую команду:
Компилятор C. Для работы с языком V вам также понадобится C-компилятор – можно использовать такие средства, как Clang, GCC или Visual Studio. Если у вас нет компилятора, воспользуйтесь инструкциями для своей платформы.
- macOS: Установите XCode из App Store или запустите
xcode-select --install
для установки инструментов XCode. - Debian/Ubuntu: в терминале
sudo apt install build-essential
- CentOS/RHEL:
sudo yum groupinstall "Development Tools"
- Fedora:
sudo dnf install @development-tools
- Arch Linux: V можно найти в AUR vlang или vlang-git.
На Windows можно использовать MinGW-w64, Visual Studio или llvm-mingw. Visual Studio занимает гораздо больше места, но если вы планируете использовать UI-библиотеку, эта среда предпочтительнее. Язык V использует функции Windows: поддержка вывода цвета в консоли, IPv6, TLS на сокетах и др.
Симлинк. Можно создать символьную ссылку /usr/local/bin/v
, чтобы V был доступен глобально: sudo ./v symlink
Docker. Средства языка также доступны в виде образа Docker:
Docker на Alpine/musl:
Тестируем!
Убедимся, что V может сам себя скомпилировать:
Проверим, что работают примеры:
Чтобы с помощью графического модуля создать тетрис или что-то подобное, вам также потребуются библиотеки glfw
и freetype
.
Если вы планируете использовать пакет http
, то на системах, отличных от Windows, необходимо установить
OpenSSL
:
Графический интерфейс V
V UI – это кроссплатформенный инструментарий, написанный на V для Windows, macOS, Linux (скоро будет для Android, iOS и JS/WASM). Графический интерфейс V использует нативные виджеты на Windows и macOS, а на других платформах они написаны сразу на V.
Установка:
Запуск:
Библиотеке предстоит еще долгий процесс роста, многие функции пока отсутствуют.
Бинарники, созданные с помощью V UI, не имеют зависимостей. Для того чтобы начать разработку V UI-приложений необходимо установить V
, glfw
и freetype
(glfw
скоро будет изъята из списка необходимых).
Что уже написано на языке V
Большинство из следующих программ имеют открытый исходный, так что вы можете посмотреть примеры рабочего кода:
- Компилятор языка и средства работы с языком: V UI, транслятор из C/C++ на V и др.
- Volt – легковесный десктопный клиент для работы со Slack, Skype, Gmail, Twitter, Facebook, Telegram, Twitch и другими ресурсами
- Vid – небольшой и быстрый текстовый редактор для кода
- Gitly – open source альтернатива GitHub/GitLab
- vgram – библиотека для написания телеграм-ботов
Заключение
Язык программирования V является интересной альтернативой популярным языкам с компиляцией кода быстрее, чем в C++. По сравнению с Go, в V поддерживается только один вид
присваиваний, отсутствует null
и глобальные переменные. Если вам интересно сопоставить V с этими и другими языками, просмотрите эту страницу.
Важно, что язык развивается и не стоит на месте. В скором будущем можно ожидать расширения функциональности и исправления мелких недочетов.
Комментарии