V adalah bahasa pemrograman baru, open-source, dan diketik secara statis yang dibuat oleh Alexander Medvednikov. V berjanji untuk menjadi sederhana, cepat, dan aman untuk membangun perangkat lunak yang dapat dipelihara. Beberapa bahasa telah memengaruhi desain V termasuk Oberon, Swift, Kotlin, dan Python.

Pelajari tentang V, fitur-fiturnya, dan perbandingannya dengan bahasa lain.

Hal yang Dapat Anda Lakukan Dengan V

V memiliki banyak kekuatan dan Anda dapat menggunakannya di hampir semua industri, termasuk pemrograman sistem, pengembangan web, dan pengembangan game. Bahasanya lugas, cepat, dan aman.

V menawarkan berbagai perpustakaan grafis yang kuat untuk pengembangan game. Ini dibangun di atas GDI+/Cocoa Drawing dan OpenGL untuk aplikasi 2D/3D yang lebih canggih.

V memiliki modul UI yang menggunakan toolkit GUI asli untuk aplikasi seluler, WinAPI/GDI+ untuk Windows, Kakao untuk macOS, dan gambar kustom untuk Linux.

Alasan untuk Mencoba V

Meskipun V adalah bahasa baru, manfaat ini menjadikannya pilihan yang sah.

instagram viewer

Kesederhanaan

Untuk membangun proyek Anda, Anda hanya perlu menjalankan:

v .

Anda tidak perlu menyiapkan lingkungan build, membuat makefile, mengimpor header, atau menyiapkan lingkungan virtual. Jika Anda ingin menginstal perpustakaan baru melalui vpm (Manajer paket V), jalankan saja

v menginstal <nama paket>

Keamanan

Secara default, V memiliki:

  • variabel yang tidak dapat diubah
  • struct yang tidak dapat diubah
  • opsi/hasil dan pemeriksaan kesalahan wajib
  • jumlah jenis
  • obat generik
  • fungsi yang tidak dapat diubah args

dan tidak:

  • batal
  • bayangan variabel
  • perilaku tidak terdefinisi
  • variabel global (dapat diaktifkan untuk aplikasi tingkat rendah seperti kernel, melalui flag)

Kecepatan Kompilasi

Beberapa bahasa pemrograman lebih cepat dari yang lain, dalam hal eksekusi atau kompilasi. V sama performannya dengan C. Ini membanggakan waktu kompilasi sekitar 110k loc/s dengan backend C dan sekitar 1 juta loc/s dengan backend asli dan tcc. V juga menghindari alokasi yang tidak perlu untuk menyediakan pendekatan pengkodean bebas abstraksi sederhana.

Manajemen memori

V tidak menggunakan pengumpul sampah, yang membuatnya berbeda dari bahasa seperti Go dan Java. Sebaliknya, V mengelola memori pada waktu kompilasi, tetapi hanya berfungsi untuk situasi dasar. Anda perlu mengelolanya secara manual untuk kasus yang lebih kompleks.

Pemformatan untuk Konsistensi Gaya Kode

Anda dapat menggunakan vfmt pemformat untuk memformat kode V Anda dan meningkatkan keterbacaannya dengan menjalankan:

v fmt -w <nama_file anda>.v

Pesan Kesalahan Ramah

Pesan kesalahan V terperinci, informatif, dan bermanfaat. Lihatlah contoh ini:

pengguna.v:8:14: kesalahan: `perbarui_pengguna` parameter `pengguna` bisa berubah, Anda perlu menyediakan `mut`: `update_user (mut pengguna)`
7 | mut pengguna := Pengguna{}
8 | update_user (pengguna)
| ~~~~
9 | }

Dengan bantuan pesan kesalahan, Anda dapat memperbaiki kode ini:

mut pengguna := Pengguna{}
update_user (mut pengguna)

C++ vs. Pergi vs. V: Membandingkan Tiga Bahasa

Dalam contoh ini, Anda dapat melihat perbedaan kode C++, Go, dan V dalam kasus penggunaan pemrograman tertentu.

Halo Dunia

Dalam C++:

#termasuk <iostream>

ke dalamutama(){
std:: cout <<"Halo Dunia!"<< std:: endl;
}

Dalam Pergi:

kemasan utama
impor "fmt"

fungsi utama(){
fmt. Cetak("Halo Dunia!")
}

Di V:

println('Halo Dunia!')

Dalam program yang sangat mendasar ini—mencetak teks "Halo Dunia!"—Anda dapat melihat bahwa V jauh lebih sederhana daripada C++ atau Go. Anda tidak perlu mengimpor atau menyertakan pustaka apa pun untuk program yang begitu sederhana.

Inisialisasi Vektor

Dalam C++:

std:: vektor<ke dalam> angka = {1, 2, 3, 4};

Dalam Pergi:

angka := []ke dalam{1, 2, 3, 4}

Di V:

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

Dalam kasus penggunaan ini, Anda dapat melihat bahwa V masih menghasilkan kode yang lebih bersih daripada dua lainnya. Tidak seperti Go dan vektor C++, V tidak memerlukan vektor-vektornya untuk menyimpan nilai dari tipe yang tetap.

Mencetak Vektor

Dalam C++:

std::copy (angka.mulai(), angka.akhir(),
std:: ostream_iterator<ke dalam>(std:: cout, ""));

std:: cout<<: endl>

Dalam Pergi:

fmt.Println(angka)

Di V:

println (angka)

Fungsi println V dapat mencetak variabel vektor secara native, seperti halnya Go, meskipun Go menggunakan paket fmt. File header iostream C++ menyediakan fungsionalitas serupa. Anda masih harus mengurus pencetakan elemen individual dari vektor sendiri.

Membaca File

Dalam C++:

#termasuk
#termasuk

ke dalamutama(){
std::rangkaian path = "/etc/hosts";
std::ifstream f(jalur);
std::rangkaian teks;
teks.tugaskan(std::istreambuf_iterator<arang>(f), {});

jika (!f)
std::cerr << "kesalahan membaca dari file" << std::akhir;
}

Dalam Pergi:

kemasan utama

impor (
"io/ioutil"
"catatan"
)

fungsi utama(){
jalan := "/etc/hosts"
b, err := ioutil. BacaFile (jalur)

jika salah != nihil {
catatan.Println(berbuat salah)
kembali
}

teks := string (b)
}

Di V:

impor os

jalan := "/etc/hosts"
teks := os.read_file (jalur) atau {
eprintln (err)
kembali
}

Untuk pembacaan file, V menggunakan modul os untuk menyediakan fungsi independen OS/platform umum. Ini menangani tugas-tugas seperti mengakses argumen baris perintah, membaca file, dan menangani proses. Dalam hal ini, kami ingin membaca file di jalur dan kembalikan isinya, jadi Anda akan menggunakan read_file (jalur) fungsi. read_file mengembalikan kesalahan jika tidak ada konten yang ada di yang diberikan jalur. Jika Anda ingin mempelajari lebih lanjut tentang modul lain dari V, Anda mungkin ingin melihat dokumentasi mereka.

Siap Mencoba V?

V adalah bahasa pemrograman baru yang masih dalam tahap awal pengembangan. Meski begitu, ia memiliki banyak kekuatan dan cepat, aman, mudah, dan dapat dipelihara.

V memiliki kode yang lebih bersih daripada C++ dan Go. Hal ini menunjukkan bahwa V dapat membantu programmer dalam mengikuti salah satu prinsip dasar pemrograman. Jadi, apakah Anda siap untuk mencoba V?