V — это новый язык программирования со статической типизацией с открытым исходным кодом, созданный Александром Медведниковым. V обещает быть простым, быстрым и безопасным для создания поддерживаемого программного обеспечения. На дизайн V повлияли несколько языков, включая Oberon, Swift, Kotlin и Python.
Узнайте о V, его особенностях и сравнении с другими языками.
Вещи, которые вы можете сделать с Ви
V обладает большими возможностями, и вы можете использовать его практически в любой отрасли, включая системное программирование, веб-разработку и разработку игр. Язык простой, быстрый и безопасный.
V предлагает широкий спектр мощных графических библиотек для разработки игр. Они основаны на GDI+/Cocoa Drawing и OpenGL для более сложных 2D/3D приложений.
V имеет модуль пользовательского интерфейса, который использует собственные инструменты графического интерфейса для мобильных приложений, WinAPI/GDI+ для Windows, Cocoa для macOS и настраиваемый рисунок для Linux.
Причины попробовать V
Хотя V — новый язык, эти преимущества делают его законным вариантом.
Простота
Чтобы построить свой проект, вам просто нужно запустить:
в .
Вам не нужно настраивать среду сборки, создавать make-файл, импортировать заголовки или настраивать виртуальную среду. Если вы хотите установить новые библиотеки через число оборотов в минуту (менеджер пакетов V), просто запустите
v установить <имя пакета>
Безопасность
По умолчанию V имеет:
- неизменяемые переменные
- неизменяемые структуры
- опция/результат и обязательные проверки ошибок
- типы суммы
- дженерики
- неизменяемые аргументы функции
и нет:
- нулевой
- переменное затенение
- неопределенное поведение
- глобальные переменные (можно включить для низкоуровневых приложений, таких как ядра, с помощью флага)
Скорость компиляции
Некоторые языки программирования быстрее других с точки зрения выполнения или компиляции. V так же эффективен, как C. Он может похвастаться временем компиляции около 110 000 лок/с с бэкендом C и примерно 1 миллионом лок/с с родным бэкэндом и tcc. V также избегает ненужных распределений, чтобы обеспечить простой подход к кодированию без абстракций.
Управление памятью
V не использует сборщик мусора, что отличает его от таких языков, как Go и Java. Вместо этого V управляет памятью во время компиляции, но работает только в базовых ситуациях. Вам нужно управлять им вручную для более сложных случаев.
Форматирование для единообразия стиля кода
Вы можете использовать vfmt formatter для форматирования вашего кода V и улучшения его читаемости, запустив:
v fmt -w <ваше_имя_файла>.v
Дружественные сообщения об ошибках
Сообщения об ошибках V подробные, информативные и полезные. Взгляните на этот пример:
пользователь.v:8:14: ошибка: `update_user` параметр `пользователь` является изменчивым, вам необходимо предоставить `мут`: `update_user (пользователь mut)`
7 | мутировать пользователя := Пользователь{}
8 | update_user (пользователь)
| ~~~~
9 | }
С помощью сообщения об ошибке вы можете исправить этот код:
мутировать пользователя := Пользователь{}
update_user (мутный пользователь)
С++ против Перейти против V: Сравнение трех языков
В этих примерах вы можете увидеть, как различается код C++, Go и V в конкретных случаях использования программирования.
Привет, мир
В С++:
#включают <iostream>
интглавный(){
станд:: cout <<"Привет, мир!"<< станд:: эндл;
}
В Го:
упаковка главный
импорт "ФМТ"
функция главный(){
ФМТ. Распечатать("Привет, мир!")
}
В В:
распечатать('Привет, мир!')
В этой очень простой программе —печать текста «Hello World!»— вы можете видеть, что V намного проще, чем C++ или Go. Вам не нужно импортировать или включать какие-либо библиотеки для такой простой программы.
Инициализация вектора
В С++:
станд:: вектор<инт> числа = {1, 2, 3, 4};
В Го:
числа := []инт{1, 2, 3, 4}
В В:
числа := [1, 2, 3, 4]
В этом варианте использования вы можете видеть, что V по-прежнему производит более чистый код, чем два других. В отличие от Go и C++ векторы, V не требует, чтобы его векторы содержали значения фиксированного типа.
Печать вектора
В С++:
станд.::копировать (числа.начало(), числа.конец(),
std:: ostream_iterator<инт>(стандарт:: cout, ""));
std:: cout << std:: endl;
В Го:
ФМТ.Println(числа)
В В:
println (числа)
Функция println V может печатать векторную переменную изначально, как и Go, хотя последняя использует пакет fmt. Файлы заголовков C++ iostream предоставляют аналогичную функциональность. Однако вам все равно придется позаботиться о печати отдельных элементов вектора самостоятельно.
Чтение файла
В С++:
#включают
#включаютинтглавный(){
станд.::нить путь = "/etc/hosts";
станд.::ifstream ф(дорожка);
станд.::нить текст;
текст.назначить(станд.::istreambuf_iterator<уголь>(е), {});
если (!ф)
станд.::cerr << "ошибка чтения из файла" << станд.::конец;
}
В Го:
упаковка главный
импорт (
"io/ioutil"
"журнал"
)функция главный(){
путь := "/etc/hosts"
б, ошибка := ioutil. Читать файл (путь)если ошибка != ноль {
журнал.Println(ошибаться)
возвращаться
}
текст := строка (б)
}
В В:
импорт Операционные системы
путь := "/etc/hosts"
текст := os.read_file (путь) или {
eprintln (ошибка)
возвращаться
}
Для чтения файлов V использует модуль os, чтобы обеспечить общие независимые от ОС/платформы функции. Они обрабатывают такие задачи, как доступ к аргументам командной строки, чтение файлов и обработка процессов. В этом случае мы хотим прочитать файл в дорожка и вернуть содержимое, поэтому вы будете использовать read_file (путь) функция. read_file возвращает ошибку, если в заданном файле нет содержимого. дорожка. Если вы хотите узнать больше о другие модули V, вы можете проверить их документацию.
Готовы попробовать V?
V — это новый язык программирования, который все еще находится на ранней стадии разработки. Несмотря на это, он обладает большой мощностью, быстр, безопасен, прост и ремонтопригоден.
V имеет более чистый код, чем C++ и Go. Это говорит о том, что V может помочь программистам придерживаться одного из основных принципов программирования. Итак, вы готовы попробовать V?