V je nový, open-source, staticky typovaný programovací jazyk vytvořený Alexandrem Medvednikovem. V slibuje, že bude jednoduché, rychlé a bezpečné vytvářet udržitelný software. Několik jazyků ovlivnilo design V, včetně Oberon, Swift, Kotlin a Python.

Přečtěte si o V, jeho funkcích a srovnání s jinými jazyky.

Věci, které můžete dělat s V

V má velký výkon a můžete jej použít téměř v jakémkoli odvětví, včetně systémového programování, vývoje webu a vývoje her. Jazyk je jednoduchý, rychlý a bezpečný.

V nabízí širokou škálu výkonných grafických knihoven pro vývoj her. Ty jsou založeny na GDI+/Cocoa Drawing a OpenGL pro sofistikovanější 2D/3D aplikace.

V má modul uživatelského rozhraní, který využívá nativní sady nástrojů GUI pro mobilní aplikace, WinAPI/GDI+ pro Windows, Cocoa pro macOS a vlastní kreslení pro Linux.

Důvody, proč zkusit V

Ačkoli V je nový jazyk, tyto výhody z něj dělají legitimní volbu.

Jednoduchost

Chcete-li vytvořit svůj projekt, stačí spustit:

v .

Nemusíte nastavovat prostředí sestavení, vytvářet makefile, importovat hlavičky nebo nastavovat virtuální prostředí. Pokud chcete nainstalovat nové knihovny přes

vpm (V správce balíčků), stačí spustit

v nainstalovat <název_balíčku>

Bezpečnost

Ve výchozím nastavení má V:

  • neměnné proměnné
  • neměnné struktury
  • možnosti/výsledky a povinné kontroly chyb
  • typy součtů
  • generika
  • neměnná funkce args

a žádná:

  • nula
  • variabilní stínování
  • nedefinované chování
  • globální proměnné (lze povolit pro aplikace na nízké úrovni, jako jsou jádra, pomocí příznaku)

Rychlost kompilace

Některé programovací jazyky jsou rychlejší než jiné, pokud jde o provádění nebo kompilaci. V je stejně výkonný jako C. Může se pochlubit dobou kompilace přibližně 110 000 loc/s s backendem C a přibližně 1 milion loc/s s nativním a tcc backendem. V se také vyhýbá zbytečným alokacím, aby poskytoval jednoduchý přístup ke kódování bez abstrakce.

Správa paměti

V nepoužívá garbage collector, čímž se liší od jazyků jako Go a Java. Místo toho V spravuje paměť v době kompilace, ale funguje pouze pro základní situace. U složitějších případů jej musíte spravovat ručně.

Formátování pro konzistenci stylu kódu

Můžete použít vfmt formátovač pro formátování kódu V a zlepšení jeho čitelnosti spuštěním:

v fmt -w <your_filename>.proti

Přátelské chybové zprávy

Chybové zprávy V jsou podrobné, informativní a užitečné. Podívejte se na tento příklad:

user.v:8:14: chyba: `update_user` parametr "uživatel". je proměnlivý, musíte poskytnout `mut`: `update_user (mut user)`
7 | mut user := User{}
8 | update_user (uživatel)
| ~~~~
9 | }

Pomocí chybové zprávy můžete tento kód opravit:

mut user := User{}
update_user (mut user)

C++ vs. Přejít vs. V: Srovnání tří jazyků

V těchto příkladech můžete vidět, jak se kód C++, Go a V liší v konkrétních případech použití programování.

Ahoj světe

V C++:

#zahrnout <iostream>

inthlavní(){
std:: cout <<"Ahoj světe!"<< std:: endl;
}

Na cestě:

balík hlavní
import "fmt"

func hlavní(){
fmt. Println("Ahoj světe!")
}

Ve V:

println('Ahoj světe!')

V tomto velmi základním programu –tisk textu "Ahoj světe!"– můžete vidět, že V je mnohem jednodušší než C++ nebo Go. Pro takový jednoduchý program nepotřebujete importovat ani zahrnovat žádné knihovny.

Inicializace vektoru

V C++:

std:: vektor<int> čísla = {1, 2, 3, 4};

Na cestě:

čísla := []int{1, 2, 3, 4}

Ve V:

čísla := [1, 2, 3, 4]

V tomto případě použití můžete vidět, že V stále vytváří čistší kód než dva ostatní. Na rozdíl od Go a C++ vektory, V nevyžaduje, aby jeho vektory obsahovaly hodnoty pevného typu.

Tisk vektoru

V C++:

std::copy (numbers.begin(), čísla.konec(),
std:: ostream_iterator<int>(std:: cout, ""));

std:: cout << std:: endl;

Na cestě:

fmt.Println(čísla)

Ve V:

println (čísla)

Funkce println V dokáže vytisknout vektorovou proměnnou nativně, stejně jako Go, i když ten používá balíček fmt. Soubory záhlaví iostream C++ poskytují podobnou funkci. Stále se však budete muset postarat o tisk jednotlivých prvků vektoru sami.

Čtení souboru

V C++:

#zahrnout
#zahrnout

inthlavní(){
std::tětiva cesta = "/etc/hosts";
std::ifstream F(cesta);
std::tětiva text;
text.assign(std::istreambuf_iterator<char>(f), {});

-li (!F)
std::cerr << "chyba čtení ze souboru" << std::endl;
}

Na cestě:

balík hlavní

import (
"io/ioutil"
"log"
)

func hlavní(){
cesta := "/etc/hosts"
b, chyba := ioutil. ReadFile (cesta)

if err != nula {
log.Println(chybovat)
vrátit se
}

text := řetězec (b)
}

Ve V:

import os

cesta := "/etc/hosts"
text := os.read_file (cesta) nebo {
eprintln (chyba)
vrátit se
}

Pro čtení souborů používá V modul os, který poskytuje běžné funkce nezávislé na OS/platformě. Ty zpracovávají úkoly, jako je přístup k argumentům příkazového řádku, čtení souborů a zpracování procesů. V tomto případě chceme načíst soubor cesta a vrátit obsah, takže budete používat read_file (cesta) funkce. read_file vrátí chybu, pokud v daném souboru není žádný existující obsah cesta. Pokud se chcete dozvědět více o další moduly V, možná si budete chtít prohlédnout jejich dokumentaci.

Jste připraveni vyzkoušet V?

V je nový programovací jazyk, který je stále v rané fázi vývoje. I tak má velký výkon a je rychlý, bezpečný, snadný a udržovatelný.

V má čistší kód než C++ a Go. To naznačuje, že V může pomoci programátorům v dodržování jednoho ze základních principů programování. Takže, jste připraveni vyzkoušet V?