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 — новый язык, эти преимущества делают его законным вариантом.

instagram viewer

Простота

Чтобы построить свой проект, вам просто нужно запустить:

в .

Вам не нужно настраивать среду сборки, создавать 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?