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čí spustitv 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
#zahrnoutinthlavní(){
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?