V е нов език за програмиране с отворен код, статично типизиран, създаден от Александър Медведников. V обещава да бъде прост, бърз и безопасен за изграждане на поддържаем софтуер. Няколко езика са повлияли на дизайна на V, включително Oberon, Swift, Kotlin и Python.

Научете за V, неговите функции и как се сравнява с други езици.

Нещата, които можете да правите с V

V има много мощ и можете да го използвате в почти всяка индустрия, включително системно програмиране, уеб разработка и разработка на игри. Езикът е ясен, бърз и безопасен.

V предлага широка гама от мощни графични библиотеки за разработка на игри. Те се основават на GDI+/Cocoa Drawing и OpenGL за по-сложни 2D/3D приложения.

V има UI модул, който използва собствени GUI инструменти за мобилни приложения, WinAPI/GDI+ за Windows, Cocoa за macOS и персонализирано чертане за Linux.

Причини да опитате V

Въпреки че V е нов език, тези предимства го правят легитимен вариант.

Простота

За да изградите своя проект, просто трябва да стартирате:

v.

Не е необходимо да настройвате среда за изграждане, да създавате makefile, да импортирате заглавки или да настройвате виртуална среда. Ако искате да инсталирате нови библиотеки чрез

instagram viewer
vpm (V пакетен мениджър), просто стартирайте

v инсталирайте <име_на_пакета>

Безопасност

По подразбиране V има:

  • неизменни променливи
  • неизменни структури
  • опция/резултат и задължителни проверки за грешки
  • видове суми
  • генерични лекарства
  • неизменни аргументи на функцията

и не:

  • нула
  • променливо засенчване
  • неопределено поведение
  • глобални променливи (може да се активира за приложения от ниско ниво като ядра, чрез флаг)

Скорост на компилация

Някои езици за програмиране са по-бързи от други по отношение на изпълнение или компилация. V е толкова ефективен, колкото C. Той може да се похвали с времена за компилиране от около 110k loc/s с C backend и приблизително 1 милион loc/s с native и tcc backend. V също избягва ненужните разпределения, за да осигури прост подход за кодиране без абстракция.

Управление на паметта

V не използва събирач на отпадъци, което го прави различен от езици като Go и Java. Вместо това V управлява паметта по време на компилиране, но работи само за основни ситуации. Трябва да го управлявате ръчно за по-сложни случаи.

Форматиране за съгласуваност на стила на кода

Можете да използвате vfmt форматиращ, за да форматирате вашия V код и да подобрите четливостта му, като стартирате:

v fmt -w <your_filename>.v

Приятелски съобщения за грешка

Съобщенията за грешка на V са подробни, информативни и полезни. Разгледайте този пример:

user.v:8:14: грешка: `потребител_за_актуализация` параметър `потребител` е променлив, трябва да предоставите `мът`: `update_user (без потребител)`
7 | mut user := User{}
8 | update_user (потребител)
| ~~~~
9 | }

С помощта на съобщението за грешка можете да коригирате този код:

mut user := User{}
update_user (без потребител)

C++ срещу Go vs. V: Сравнение на трите езика

В тези примери можете да видите как кодът на C++, Go и V се различава в конкретни случаи на използване на програмиране.

Здравей свят

В C++:

#включи <iostream>

вътросновен(){
std:: cout <<"Здравей свят!"<< std:: endl;
}

В Go:

пакет основен
импортиране "fmt"

функ основен(){
fmt. Println("Здравей свят!")
}

В V:

println('Здравей свят!')

В тази много основна програма—отпечатване на текста "Hello World!"— можете да видите, че V е много по-опростен от C++ или Go. Не е необходимо да импортирате или включвате библиотеки за такава проста програма.

Векторна инициализация

В C++:

std:: вектор<вътр> числа = {1, 2, 3, 4};

В Go:

числа := []вътр{1, 2, 3, 4}

В V:

числа := [1, 2, 3, 4]

В този случай на употреба можете да видите, че V все още произвежда по-чист код от другите два. За разлика от Go and C++ вектори, V не изисква неговите вектори да съдържат стойности от фиксиран тип.

Отпечатване на вектор

В C++:

std::копиране (numbers.begin(), числа.край(),
std:: ostream_iterator<вътр>(std:: cout, ""));

std:: cout << std:: endl;

В Go:

fmt.Println(числа)

В V:

println (числа)

Функцията println на V може да отпечата векторната променлива естествено, точно както Go може, въпреки че последният използва пакета fmt. C++ iostream заглавните файлове предоставят подобна функционалност. Все пак ще трябва сами да се погрижите за отпечатването на отделните елементи на вектора.

Четене на файл

В C++:

#включват
#включват

вътросновен(){
std::низ път = "/etc/hosts";
std::ifstream f(път);
std::низ текст;
text.assign(std::istreambuf_iterator<въглен>(f), {});

ако (!f)
std::cerr << "грешка при четене от файл" << std::endl;
}

В Go:

пакет основен

импортиране (
"io/ioutil"
"дневник"
)

функ основен(){
път := "/etc/hosts"
b, err := ioutil. ReadFile (път)

if err != nil {
дневник.Println(грешка)
връщане
}

текст := низ (b)
}

В V:

импортиране операционна система

път := "/etc/hosts"
текст := os.read_file (път) или {
eprintln (грешка)
връщане
}

За четене на файлове V използва модула os, за да предостави общи функции, независими от OS/платформа. Те се справят със задачи като достъп до аргументи на командния ред, четене на файлове и обработка на процеси. В този случай искаме да прочетем файл път и върнете съдържанието, така че ще използвате read_file (път) функция. read_file връща грешка, ако в даденото няма съществуващо съдържание път. Ако искате да научите повече за други модули на V, може да искате да проверите тяхната документация.

Готови ли сте да опитате V?

V е нов език за програмиране, който все още е в начален етап на развитие. Въпреки това, той има много мощност и е бърз, безопасен, лесен и поддържаем.

V има по-чист код от C++ и Go. Това предполага, че V може да помогне на програмистите да се придържат към един от основните принципи на програмиране. И така, готови ли сте да опитате V?