V este un nou limbaj de programare, open-source, tip static, creat de Alexander Medvednikov. V promite să fie simplu, rapid și sigur pentru a construi software care poate fi întreținut. Mai multe limbi au influențat designul lui V, inclusiv Oberon, Swift, Kotlin și Python.

Aflați despre V, caracteristicile sale și cum se compară cu alte limbi.

Lucruri pe care le poți face cu V

V are multă putere și îl puteți folosi în aproape orice industrie, inclusiv în programarea sistemului, dezvoltarea web și dezvoltarea jocurilor. Limbajul este simplu, rapid și sigur.

V oferă o gamă largă de biblioteci grafice puternice pentru dezvoltarea jocurilor. Acestea se bazează pe GDI+/Cocoa Drawing și OpenGL pentru aplicații 2D/3D mai sofisticate.

V are un modul UI care folosește seturi de instrumente GUI native pentru aplicații mobile, WinAPI/GDI+ pentru Windows, Cocoa pentru macOS și desen personalizat pentru Linux.

Motive pentru a încerca V

Deși V este o limbă nouă, aceste beneficii o fac o opțiune legitimă.

Simplitate

instagram viewer

Pentru a vă construi proiectul, trebuie doar să rulați:

v .

Nu trebuie să configurați un mediu de compilare, să creați un makefile, să importați anteturi sau să configurați un mediu virtual. Dacă doriți să instalați biblioteci noi prin vpm (Manager de pachete V), doar rulați

v instalați <numele pachetului>

Siguranță

Implicit, V are:

  • variabile imuabile
  • structuri imuabile
  • opțiune/rezultat și verificări obligatorii de eroare
  • tipuri de sume
  • generice
  • funcția imuabilă args

si nu:

  • nul
  • umbrire variabilă
  • comportament nedefinit
  • variabile globale (pot fi activate pentru aplicații de nivel scăzut, cum ar fi kernel-urile, prin flag)

Viteza de compilare

Unele limbaje de programare sunt mai rapide decât altele, în ceea ce privește execuția sau compilarea. V este la fel de performant ca C. Se mândrește cu timpi de compilare de aproximativ 110k loc/s cu un backend C și aproximativ 1 milion loc/s cu backend-uri native și tcc. De asemenea, V se îndepărtează de alocările inutile pentru a oferi o abordare de codare simplă, fără abstracție.

Gestionarea memoriei

V nu folosește un colector de gunoi, ceea ce îl face diferit de limbaje precum Go și Java. În schimb, V gestionează memoria în timpul compilării, dar funcționează doar pentru situații de bază. Trebuie să îl gestionați manual pentru cazuri mai complexe.

Formatare pentru coerența stilului de cod

Puteți folosi vfmt formatator pentru a vă formata codul V și a îmbunătăți lizibilitatea acestuia prin rularea:

v fmt -w <numele_fișierului dvs>.v

Mesaje de eroare prietenoase

Mesajele de eroare ale lui V sunt detaliate, informative și utile. Aruncă o privire la acest exemplu:

user.v:8:14: eroare: `update_user` parametru `utilizator` este mutabil, trebuie să oferiți `mut`: `update_user (mut user)`
7 | utilizator mut := Utilizator{}
8 | update_user (utilizator)
| ~~~~
9 | }

Cu ajutorul mesajului de eroare, puteți remedia acest cod:

utilizator mut := Utilizator{}
update_user (mut utilizator)

C++ vs. Du-te vs. V: Compararea celor trei limbi

În aceste exemple, puteți vedea cum diferă codul C++, Go și V în cazuri specifice de utilizare a programării.

Salut Lume

În C++:

#include <iostream>

intprincipal(){
std:: cout <<"Salut Lume!"<< std:: endl;
}

În Go:

pachet principal
import "fmt"

func principal(){
fmt. Println("Salut Lume!")
}

În V:

println('Salut Lume!')

În acest program foarte de bază -imprimarea textului „Hello World!”— puteți vedea că V este mult mai simplu decât C++ sau Go. Nu trebuie să importați sau să includeți biblioteci pentru un program atât de simplu.

Inițializare vectorială

În C++:

std:: vector<int> numere = {1, 2, 3, 4};

În Go:

numere := []int{1, 2, 3, 4}

În V:

numere := [1, 2, 3, 4]

În acest caz de utilizare, puteți vedea că V încă produce un cod mai curat decât celelalte două. Spre deosebire de Go și vectori C++, V nu necesită ca vectorii săi să rețină valori de tip fix.

Imprimarea unui vector

În C++:

std::copie (numbers.begin(), numere.Sfârşit(),
std:: ostream_iterator<int>(std:: cout, ""));

std:: cout << std:: endl;

În Go:

fmt.Println(numere)

În V:

println (numere)

Funcția println a lui V poate tipări variabila vectorială în mod nativ, la fel ca și cea a lui Go, deși aceasta din urmă folosește pachetul fmt. Fișierele antet C++ iostream oferă funcționalități similare. Totuși, va trebui să vă ocupați de imprimarea elementelor individuale ale vectorului.

Citirea unui fișier

În C++:

#include
#include

intprincipal(){
std::şir cale = "/etc/hosts";
std::ifstream f(cale);
std::şir text;
text.assign(std::istreambuf_iterator<char>(f), {});

dacă (!f)
std::cerr << „eroare de citire din fișier” << std::endl;
}

În Go:

pachet principal

import (
"io/ioutil"
"Buturuga"
)

func principal(){
calea := "/etc/hosts"
b, err := ioutil. ReadFile (cale)

daca greseste != nil {
Buturuga.Println(a greșit)
întoarcere
}

text := șir (b)
}

În V:

import os

calea := "/etc/hosts"
text := os.read_file (cale) sau {
eprintln (eră)
întoarcere
}

Pentru citirea fișierelor, V folosește modulul os pentru a oferi funcții comune independente de OS/platformă. Acestea gestionează sarcini precum accesarea argumentelor din linia de comandă, citirea fișierelor și gestionarea proceselor. În acest caz, dorim să citim un fișier în cale și returnați conținutul, astfel încât să utilizați read_file (cale) funcţie. read_file returnează o eroare dacă nu există conținut existent în fișierul dat cale. Dacă doriți să aflați mai multe despre alte module ale lui V, poate doriți să verificați documentația lor.

Ești gata să încerci V?

V este un nou limbaj de programare care se află încă în stadiile incipiente de dezvoltare. Chiar și așa, are multă putere și este rapid, sigur, ușor și ușor de întreținut.

V are cod mai curat decât C++ și Go. Acest lucru sugerează că V poate ajuta programatorii să adere la unul dintre principiile de bază ale programării. Deci, ești gata să încerci V?