V ist eine neue, statisch typisierte Open-Source-Programmiersprache, die von Alexander Medvednikov entwickelt wurde. V verspricht, einfach, schnell und sicher wartbare Software zu erstellen. Mehrere Sprachen haben das Design von V beeinflusst, darunter Oberon, Swift, Kotlin und Python.
Erfahren Sie mehr über V, seine Funktionen und wie es im Vergleich zu anderen Sprachen abschneidet.
Dinge, die Sie mit V tun können
V hat viel Leistung und Sie können es in fast jeder Branche einsetzen, einschließlich Systemprogrammierung, Webentwicklung und Spieleentwicklung. Die Sprache ist einfach, schnell und sicher.
V bietet eine große Auswahl an leistungsstarken Grafikbibliotheken für die Spieleentwicklung. Diese bauen auf GDI+/Cocoa Drawing und OpenGL für anspruchsvollere 2D/3D-Anwendungen auf.
V verfügt über ein UI-Modul, das native GUI-Toolkits für mobile Apps, WinAPI/GDI+ für Windows, Cocoa für macOS und benutzerdefiniertes Zeichnen für Linux verwendet.
Gründe, V auszuprobieren
Obwohl V eine neue Sprache ist, machen diese Vorteile sie zu einer legitimen Option.
Einfachheit
Um Ihr Projekt zu erstellen, müssen Sie nur Folgendes ausführen:
v.
Sie müssen keine Build-Umgebung einrichten, kein Makefile erstellen, Header importieren oder eine virtuelle Umgebung einrichten. Wenn Sie neue Bibliotheken über installieren möchten vpm (V Paketmanager), einfach ausführen
v installieren <Paketnamen>
Sicherheit
Standardmäßig hat V:
- unveränderliche Variablen
- unveränderliche Strukturen
- Option/Ergebnis und obligatorische Fehlerprüfungen
- Summentypen
- Generika
- unveränderliche Funktionsargumente
und nein:
- Null
- Variable Beschattung
- undefiniertes Verhalten
- globale Variablen (können für Low-Level-Apps wie Kernel per Flag aktiviert werden)
Kompilierungsgeschwindigkeit
Einige Programmiersprachen sind in Bezug auf Ausführung oder Kompilierung schneller als andere. V ist so leistungsfähig wie C. Es verfügt über Kompilierungszeiten von etwa 110.000 loc/s mit einem C-Backend und etwa 1 Million loc/s mit nativen und tcc-Backends. V vermeidet auch unnötige Zuweisungen, um einen einfachen abstraktionsfreien Codierungsansatz bereitzustellen.
Speicherverwaltung
V verwendet keinen Garbage Collector, was es von Sprachen wie Go und Java unterscheidet. Stattdessen verwaltet V den Speicher zur Kompilierzeit, funktioniert aber nur in einfachen Situationen. Bei komplexeren Fällen müssen Sie es manuell verwalten.
Formatierung für Codestilkonsistenz
Du kannst den... benutzen vfmt formatter, um Ihren V-Code zu formatieren und seine Lesbarkeit zu verbessern, indem Sie Folgendes ausführen:
v fmt -w <Ihr_Dateiname>.v
Freundliche Fehlermeldungen
Die Fehlermeldungen von V sind detailliert, informativ und hilfreich. Schauen Sie sich dieses Beispiel an:
Benutzer.v:8:14: Error: `update_user` Parameter "Benutzer". veränderlich ist, müssen Sie angeben `Mut`: `update_user (Mut-Benutzer)`
7 | mut Benutzer := Benutzer{}
8 | update_user (Benutzer)
| ~~~~
9 | }
Mit Hilfe der Fehlermeldung können Sie diesen Code beheben:
mut Benutzer := Benutzer{}
update_user (Mut-Benutzer)
C++ vs. Geh vs. V: Vergleich der drei Sprachen
In diesen Beispielen können Sie sehen, wie sich C++-, Go- und V-Code in bestimmten Programmieranwendungsfällen unterscheiden.
Hallo Welt
In C++:
#enthalten <iostream>
inthauptsächlich(){
std:: cout <<"Hallo Welt!"<< std:: endl;
}
Unterwegs:
Paket hauptsächlich
importieren "fmt"
Funk hauptsächlich(){
fmt. Println("Hallo Welt!")
}
In V:
println('Hallo Welt!')
In diesem sehr einfachen Programm—Drucken des Textes "Hello World!"– Sie können sehen, dass V viel einfacher ist als C++ oder Go. Für ein so unkompliziertes Programm müssen Sie keine Bibliotheken importieren oder einbinden.
Vektorinitialisierung
In C++:
std:: Vektor<int> Zahlen = {1, 2, 3, 4};
Unterwegs:
zahlen := []int{1, 2, 3, 4}
In V:
zahlen := [1, 2, 3, 4]
In diesem Anwendungsfall können Sie sehen, dass V immer noch saubereren Code produziert als die beiden anderen. Im Gegensatz zu Go und C++-Vektoren, V erfordert nicht, dass seine Vektoren Werte eines festen Typs enthalten.
Drucken eines Vektors
In C++:
Standard::copy (zahlen.begin(), Zahlen.Ende(),
std:: ostream_iterator<int>(std:: cout, ""));
std:: cout << std:: endl;
Unterwegs:
fmt.Println(Zahlen)
In V:
println (Zahlen)
Die println-Funktion von V kann die Vektorvariable nativ drucken, genau wie die von Go, obwohl letztere das fmt-Paket verwendet. Die C++-Iostream-Headerdateien bieten eine ähnliche Funktionalität. Um den Druck der einzelnen Elemente des Vektors müssen Sie sich allerdings noch selbst kümmern.
Lesen einer Datei
In C++:
#enthalten
#enthalteninthauptsächlich(){
Standard::Schnur Pfad = "/etc/hosts";
Standard::ifstream f(Weg);
Standard::Schnur Text;
text.assign(Standard::istreambuf_iterator<verkohlen>(f), {});
wenn (!f)
Standard::zerr << "Fehler beim Lesen der Datei" << Standard::Ende;
}
Unterwegs:
Paket hauptsächlich
importieren (
"io/ioutil"
"Protokoll"
)Funk hauptsächlich(){
Pfad := "/etc/hosts"
b, err := ioutil. ReadFile (Pfad)wenn err != nil {
Protokoll.Println(irren)
Rückkehr
}
Text := Zeichenkette (b)
}
In V:
importieren os
Pfad := "/etc/hosts"
text := os.read_file (Pfad) oder {
eprintln (err)
Rückkehr
}
Zum Lesen von Dateien verwendet V das os-Modul, um allgemeine betriebssystem-/plattformunabhängige Funktionen bereitzustellen. Diese behandeln Aufgaben wie den Zugriff auf Befehlszeilenargumente, das Lesen von Dateien und die Verarbeitung von Prozessen. In diesem Fall wollen wir eine Datei einlesen Weg und geben Sie den Inhalt zurück, damit Sie die verwenden read_file (Pfad) Funktion. read_file gibt einen Fehler zurück, wenn in der gegebenen Datei kein vorhandener Inhalt vorhanden ist Weg. Wenn Sie mehr darüber erfahren möchten andere Module von V, möchten Sie vielleicht ihre Dokumentation überprüfen.
Bereit, V auszuprobieren?
V ist eine neue Programmiersprache, die sich noch in einem frühen Entwicklungsstadium befindet. Trotzdem hat es viel Kraft und ist schnell, sicher, einfach und wartungsfreundlich.
V hat saubereren Code als C++ und Go. Dies deutet darauf hin, dass V Programmierern dabei helfen kann, sich an eines der grundlegenden Programmierprinzipien zu halten. Bist du bereit, V auszuprobieren?