Η V είναι μια νέα γλώσσα προγραμματισμού ανοιχτού κώδικα, στατικά πληκτρολογημένης που δημιουργήθηκε από τον Alexander Medvednikov. Το V υπόσχεται να είναι απλό, γρήγορο και ασφαλές για τη δημιουργία συντηρήσιμου λογισμικού. Αρκετές γλώσσες έχουν επηρεάσει τον σχεδιασμό του V, συμπεριλαμβανομένων των Oberon, Swift, Kotlin και Python.
Μάθετε για το V, τα χαρακτηριστικά του και πώς συγκρίνεται με άλλες γλώσσες.
Πράγματα που μπορείτε να κάνετε με το V
Το V έχει πολλή ισχύ και μπορείτε να το χρησιμοποιήσετε σε σχεδόν οποιονδήποτε κλάδο, συμπεριλαμβανομένου του προγραμματισμού συστημάτων, της ανάπτυξης ιστού και της ανάπτυξης παιχνιδιών. Η γλώσσα είναι απλή, γρήγορη και ασφαλής.
Το V προσφέρει ένα ευρύ φάσμα ισχυρών βιβλιοθηκών γραφικών για την ανάπτυξη παιχνιδιών. Αυτά βασίζονται στο GDI+/Cacoa Drawing και στο OpenGL για πιο εξελιγμένες εφαρμογές 2D/3D.
Το V διαθέτει μια μονάδα UI που χρησιμοποιεί εγγενή εργαλειοθήκη GUI για εφαρμογές για κινητά, WinAPI/GDI+ για Windows, Cocoa για macOS και προσαρμοσμένο σχέδιο για Linux.
Λόγοι για να δοκιμάσετε το V
Αν και η V είναι μια νέα γλώσσα, αυτά τα πλεονεκτήματα την καθιστούν νόμιμη επιλογή.
Απλότητα
Για να δημιουργήσετε το έργο σας, πρέπει απλώς να εκτελέσετε:
v .
Δεν χρειάζεται να ρυθμίσετε ένα περιβάλλον κατασκευής, να δημιουργήσετε ένα makefile, να εισαγάγετε κεφαλίδες ή να δημιουργήσετε ένα εικονικό περιβάλλον. Εάν θέλετε να εγκαταστήσετε νέες βιβλιοθήκες μέσω vpm (Διαχείριση πακέτων V), απλά τρέξτε
v εγκατάσταση <όνομα πακέτου>
Ασφάλεια
Από προεπιλογή, το V έχει:
- αμετάβλητες μεταβλητές
- αμετάβλητες δομές
- επιλογή/αποτελέσματα και υποχρεωτικοί έλεγχοι σφαλμάτων
- τύποι αθροίσματος
- γενόσημα
- αμετάβλητη συνάρτηση args
και όχι:
- μηδενικό
- μεταβλητή σκίαση
- απροσδιόριστη συμπεριφορά
- καθολικές μεταβλητές (μπορεί να ενεργοποιηθεί για εφαρμογές χαμηλού επιπέδου όπως πυρήνες, μέσω σημαίας)
Ταχύτητα μεταγλώττισης
Ορισμένες γλώσσες προγραμματισμού είναι πιο γρήγορες από άλλες, όσον αφορά την εκτέλεση ή τη μεταγλώττιση. Το V είναι εξίσου αποτελεσματικό με το C. Διαθέτει χρόνους μεταγλώττισης περίπου 110k loc/s με backend C και περίπου 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". παράμετρος «χρήστης». είναι μεταβλητό, πρέπει να παρέχετε `mut`: "update_user (mut user)".
7 | mut user := Χρήστης{}
8 | update_user (χρήστης)
| ~~~~
9 | }
Με τη βοήθεια του μηνύματος σφάλματος, μπορείτε να διορθώσετε αυτόν τον κωδικό:
mut user := Χρήστης{}
update_user (mut user)
C++ vs. Go vs. V: Σύγκριση των Τριών Γλωσσών
Σε αυτά τα παραδείγματα, μπορείτε να δείτε πώς διαφέρει ο κώδικας C++, Go και V σε συγκεκριμένες περιπτώσεις χρήσης προγραμματισμού.
Γειά σου Κόσμε
Σε C++:
#περιλαμβάνω <iostream>
ενθκύριος(){
στδ:: κόουτ <<"Γειά σου Κόσμε!"<< std:: endl;
}
In Go:
πακέτο κύριος
εισαγωγή "fmt"
func κύριος(){
fmt. Println("Γειά σου Κόσμε!")
}
Στο V:
println('Γειά σου Κόσμε!')
Σε αυτό το πολύ βασικό πρόγραμμα-εκτύπωση του κειμένου "Hello World!"—μπορείτε να δείτε ότι το V είναι πολύ πιο απλό από το C++ ή το Go. Δεν χρειάζεται να εισάγετε ή να συμπεριλάβετε βιβλιοθήκες για ένα τόσο απλό πρόγραμμα.
Αρχικοποίηση διανύσματος
Σε C++:
std:: διάνυσμα<ενθ> αριθμοί = {1, 2, 3, 4};
In Go:
αριθμοί := []ενθ{1, 2, 3, 4}
Στο V:
αριθμοί := [1, 2, 3, 4]
Σε αυτήν την περίπτωση χρήσης, μπορείτε να δείτε ότι το V εξακολουθεί να παράγει καθαρότερο κώδικα από τους δύο άλλους. Σε αντίθεση με το Go και C++ διανύσματα, το V δεν απαιτεί από τα διανύσματά του να έχουν τιμές σταθερού τύπου.
Εκτύπωση διανύσματος
Σε C++:
std::copy (numbers.begin(), αριθμοί.τέλος(),
std:: ostream_iterator<ενθ>(std:: cout, ""));
std:: cout << std:: endl;
In Go:
fmt.Εκτύπωση(αριθμοί)
Στο V:
println (αριθμοί)
Η συνάρτηση println του V μπορεί να εκτυπώσει εγγενώς τη μεταβλητή του διανύσματος, όπως ακριβώς και η Go, αν και η τελευταία χρησιμοποιεί το πακέτο fmt. Τα αρχεία κεφαλίδας iostream C++ παρέχουν παρόμοια λειτουργικότητα. Ωστόσο, θα πρέπει να φροντίσετε να εκτυπώσετε μόνοι σας τα μεμονωμένα στοιχεία του διανύσματος.
Διαβάζοντας ένα αρχείο
Σε C++:
#περιλαμβάνω
#περιλαμβάνωενθκύριος(){
std::σειρά path = "/etc/hosts";
std::ifstream φά(μονοπάτι);
std::σειρά κείμενο;
text.assign(std::istreambuf_iterator<απανθρακώνω>(f), {});
αν (!φά)
std::cerr << "σφάλμα ανάγνωσης από το αρχείο" << std::endl;
}
In Go:
πακέτο κύριος
εισαγωγή (
"io/ioutil"
"κούτσουρο"
)func κύριος(){
μονοπάτι := "/etc/hosts"
b, err := ioutil. ReadFile (διαδρομή)αν λάθος != μηδέν {
κούτσουρο.Εκτύπωση(πλανώμαι)
ΕΠΙΣΤΡΟΦΗ
}
κείμενο := συμβολοσειρά (β)
}
Στο V:
εισαγωγή os
μονοπάτι := "/etc/hosts"
text := os.read_file (διαδρομή) ή {
eprintln (λάθος)
ΕΠΙΣΤΡΟΦΗ
}
Για την ανάγνωση αρχείων, το V χρησιμοποιεί τη λειτουργική μονάδα για να παρέχει κοινές ανεξάρτητες λειτουργίες OS/πλατφόρμας. Αυτά χειρίζονται εργασίες όπως η πρόσβαση σε ορίσματα γραμμής εντολών, η ανάγνωση αρχείων και ο χειρισμός διαδικασιών. Σε αυτήν την περίπτωση, θέλουμε να διαβάσουμε ένα αρχείο μονοπάτι και επιστρέψτε τα περιεχόμενα, ώστε να χρησιμοποιήσετε το read_file (διαδρομή) λειτουργία. Το read_file επιστρέφει ένα σφάλμα εάν δεν υπάρχει υπάρχον περιεχόμενο στο δεδομένο μονοπάτι. Αν θέλετε να μάθετε περισσότερα για άλλες ενότητες του V, ίσως θέλετε να ελέγξετε την τεκμηρίωσή τους.
Είστε έτοιμοι να δοκιμάσετε το V;
Η V είναι μια νέα γλώσσα προγραμματισμού που βρίσκεται ακόμα στα αρχικά στάδια ανάπτυξής της. Ακόμα κι έτσι, έχει πολλή ισχύ και είναι γρήγορο, ασφαλές, εύκολο και συντηρήσιμο.
Το V έχει πιο καθαρό κώδικα από το C++ και το Go. Αυτό υποδηλώνει ότι το V μπορεί να βοηθήσει τους προγραμματιστές να τηρήσουν μία από τις βασικές αρχές προγραμματισμού. Λοιπόν, είστε έτοιμοι να δοκιμάσετε το V;