V, Alexander Medvednikov tarafından oluşturulan yeni, açık kaynaklı, statik olarak yazılmış bir programlama dilidir. V, bakımı kolay yazılımlar oluşturmak için basit, hızlı ve güvenli olmayı vaat ediyor. Oberon, Swift, Kotlin ve Python dahil olmak üzere çeşitli diller V'nin tasarımını etkilemiştir.
V, özellikleri ve diğer dillerle karşılaştırması hakkında bilgi edinin.
V İle Yapabilecekleriniz
V'nin çok fazla gücü vardır ve onu sistem programlama, web geliştirme ve oyun geliştirme dahil olmak üzere hemen hemen her sektörde kullanabilirsiniz. Dil basit, hızlı ve güvenlidir.
V, oyun geliştirme için çok çeşitli güçlü grafik kitaplıkları sunar. Bunlar, daha karmaşık 2D/3D uygulamalar için GDI+/Cocoa Drawing ve OpenGL'nin üzerine inşa edilmiştir.
V, mobil uygulamalar için yerel GUI araç takımları, Windows için WinAPI/GDI+, macOS için Cocoa ve Linux için özel çizim kullanan bir UI modülüne sahiptir.
V'yi Denemek için Nedenler
V yeni bir dil olmasına rağmen, bu avantajlar onu meşru bir seçenek haline getiriyor.
Basitlik
Projenizi oluşturmak için aşağıdakileri çalıştırmanız yeterlidir:
v.
Bir derleme ortamı kurmanız, makefile oluşturmanız, üstbilgileri içe aktarmanız veya sanal bir ortam kurmanız gerekmez. Yeni kütüphaneler kurmak istiyorsanız vpm (V paket yöneticisi), sadece çalıştırın
v yüklemek <paket ismi>
Emniyet
Varsayılan olarak, V'de şunlar bulunur:
- değişmez değişkenler
- değişmez yapılar
- seçenek/sonuç ve zorunlu hata kontrolleri
- toplam türleri
- jenerik
- değişmez fonksiyon argümanları
ve hayır:
- hükümsüz
- değişken gölgeleme
- tanımsız davranış
- global değişkenler (çekirdekler gibi düşük seviyeli uygulamalar için bayrak aracılığıyla etkinleştirilebilir)
Derleme Hızı
Bazı programlama dilleri, yürütme veya derleme açısından diğerlerinden daha hızlıdır. V, C kadar performanslıdır. C arka ucuyla yaklaşık 110k loc/s ve yerel ve tcc arka uçları ile yaklaşık 1 milyon loc/s derleme süresine sahiptir. V ayrıca basit, soyutlama içermeyen bir kodlama yaklaşımı sağlamak için gereksiz tahsislerden kaçınır.
Hafıza yönetimi
V, onu Go ve Java gibi dillerden farklı kılan bir çöp toplayıcı kullanmaz. Bunun yerine V, derleme zamanında belleği yönetir, ancak yalnızca temel durumlar için çalışır. Daha karmaşık durumlar için manuel olarak yönetmeniz gerekir.
Kod Stili Tutarlılığı için Biçimlendirme
kullanabilirsiniz vfmt V kodunuzu biçimlendirmek ve aşağıdakileri çalıştırarak okunabilirliğini artırmak için biçimlendirici:
v fmt -w <senin_dosyaadı>.v
Dostça Hata Mesajları
V'nin hata mesajları ayrıntılı, bilgilendirici ve yardımcıdır. Bu örneğe bir göz atın:
kullanıcı.v:8:14: hata: 'güncelleme_kullanıcısı' parametre 'kullanıcı' değiştirilebilir, sağlamanız gerekir "mut": 'update_user (mut kullanıcı)'
7 | mut user := Kullanıcı{}
8 | update_user (kullanıcı)
| ~~~~
9 | }
Hata mesajının yardımıyla bu kodu düzeltebilirsiniz:
mut user := Kullanıcı{}
update_user (kullanıcıyı değiştir)
C++ vs. git vs git V: Üç Dilin Karşılaştırılması
Bu örneklerde, belirli programlama kullanım durumlarında C++, Go ve V kodunun nasıl farklılık gösterdiğini görebilirsiniz.
Selam Dünya
C++'da:
#Dahil etmek <iostream>
intana(){
standart:: cout <<"Selam Dünya!"<< standart:: endl;
}
Go'da:
paket ana
içe aktarmak "fmt"
işlev ana(){
fmt. Yazdır("Selam Dünya!")
}
V'de:
println('Selam Dünya!')
Bu çok temel programda—"Merhaba Dünya!" metnini yazdırma—V'nin C++ veya Go'dan çok daha basit olduğunu görebilirsiniz. Böyle basit bir program için herhangi bir kitaplığı içe aktarmanız veya eklemeniz gerekmez.
vektör başlatma
C++'da:
standart:: vektör<int> sayılar = {1, 2, 3, 4};
Go'da:
sayılar := []int{1, 2, 3, 4}
V'de:
sayılar := [1, 2, 3, 4]
Bu kullanım durumunda, V'nin hala diğer ikisinden daha temiz kod ürettiğini görebilirsiniz. Go'dan farklı olarak ve C++ vektörleri, V, vektörlerinin sabit tipteki değerleri tutmasını gerektirmez.
Vektör Yazdırma
C++'da:
standart::kopyala (numbers.begin(), sayılar.son(),
standart:: ostream_iterator<int>(std:: cout, ""));
std:: cout << std:: endl;
Go'da:
fmt.Println(sayılar)
V'de:
println (sayılar)
V'nin println işlevi, Go'nun yapabildiği gibi vektör değişkenini yerel olarak yazdırabilir, ancak ikincisi fmt paketini kullanır. C++ iostream başlık dosyaları benzer işlevsellik sağlar. Yine de vektörün tek tek öğelerini kendiniz yazdırmanız gerekecek.
Dosya Okuma
C++'da:
#Dahil etmek
#Dahil etmekintana(){
standart::sicim yol = "/etc/hosts";
standart::ifstream f(yol);
standart::sicim Metin;
metin.atama(standart::istreambuf_iterator<karakter>(f), {});
eğer (!f)
standart::sertifika << "dosyadan okuma hatası" << standart::son;
}
Go'da:
paket ana
içe aktarmak (
"io/ioutil"
"kayıt"
)işlev ana(){
yol := "/etc/hosts"
b, hata := ioutil. ReadFile (yol)eğer hata != nil {
kayıt.Println(hata)
dönüş
}
metin := dize (b)
}
V'de:
içe aktarmak işletim sistemi
yol := "/etc/hosts"
metin := os.read_file (yol) veya {
eprintln (hata)
dönüş
}
Dosya okuma için V, ortak işletim sistemi/platformdan bağımsız işlevler sağlamak için işletim sistemi modülünü kullanır. Bunlar, komut satırı argümanlarına erişme, dosyaları okuma ve işlemleri işleme gibi görevleri yerine getirir. Bu durumda, bir dosyayı okumak istiyoruz yol ve içeriği iade edin, böylece read_file (yol) işlev. verilen dosyada mevcut içerik yoksa read_file bir hata döndürür yol. hakkında daha fazla bilgi edinmek istiyorsanız V'nin diğer modülleri, belgelerine göz atmak isteyebilirsiniz.
V'yi Denemeye Hazır mısınız?
V, henüz gelişiminin ilk aşamalarında olan yeni bir programlama dilidir. Buna rağmen, çok fazla güce sahiptir ve hızlı, güvenli, kolay ve bakımı yapılabilir.
V, C++ ve Go'dan daha temiz koda sahiptir. Bu, V'nin programcılara temel programlama ilkelerinden birine bağlı kalmasına yardımcı olabileceğini düşündürmektedir. Peki, V'yi denemeye hazır mısın?