- Vala, GNOME geliştiricilerine modern programlama dili özellikleri sunmayı hedefleyen bir programlama dilidir
- C ile yazılmış uygulama ve kütüphanelerle karşılaştırıldığında ek çalışma zamanı gereksinimleri getirmez ve farklı bir ABI kullanmaz
- Desteklenen modern dil özellikleri: arayüzler, özellikler, sinyaller,
foreach, lambda ifadeleri, yerel değişkenler için tür çıkarımı, generics, non-null türler, bellek yönetimi, istisna işleme
- Nesne yönelimli yaklaşımla yüksek seviyeli soyutlamalardan yararlanarak rahatça kod yazılabilir ve GObject, GTK gibi GNOME teknolojileriyle derin entegrasyon sunar
- Kodu çok hızlı yerel ikili dosyalara derler. Mevcut C kodu Vala programlarında yeniden kullanılabilir veya Vala'dan C kodu üretilebilir
Mevcut C kütüphaneleriyle uyumluluk
- Vala, çalışma zamanı binding'leri olmadan mevcut C kütüphanelerine, özellikle GObject tabanlı kütüphanelere erişim sağlamak için tasarlanmıştır
- Sınıf ve metot bildirimlerini içeren API dosyaları Vala sözdiziminde mevcutsa, kütüphaneler Vala ile birlikte kullanılabilir
- Vala şu anda GLib ve GTK+ için binding'lerle birlikte gelir
Vala derleyicisi valac
valac, Vala kaynak kodunu C kaynak ve başlık dosyalarına dönüştüren self-hosting bir derleyicidir
- Vala kaynak kodunda bildirilen sınıf ve arayüzleri üretmek için GObject tür sistemini kullanır
- Vala'nın sözdizimi C#'a benzer, ancak GObject tür sistemiyle daha uyumlu olacak şekilde uyarlanmıştır
C'den Vala ile yazılmış sınıf ve metotları kullanmak
- Vala kütüphanesinden üretilen başlık dosyaları kurulduğunda, C uygulamaları Vala kütüphanesinin GObject tabanlı API'sine olağan şekilde erişebilir
- Vala ayrıştırıcısı bir kütüphane olarak yazıldığından ve tüm derleme zamanı bilgileri binding üretimi sırasında kullanılabildiğinden, C# gibi dillerle yazılmış uygulamaların Vala kütüphanelerine erişmesi için binding üreticileri yazmak da kolay olacaktır
GN⁺ görüşü
- Vala, C'ye benzer sözdizimiyle GNOME teknolojileriyle iyi entegre olan nesne yönelimli bir dil olma avantajına sahiptir. Özellikle GUI uygulama geliştirme için optimize edilmiştir ve GTK, Granite gibi teknolojilerle kolayca entegre olabilir
- Vala, GNOME masaüstü ortamı geliştirmeye uzmanlaşmış bir dildir; bunun dışındaki alanlarda kullanımının çok yaygın olmayacağı düşünülmektedir
- C#'a benzer sözdizimine sahip Vala, C#'a aşina geliştiricilerin GNOME geliştirmeye katılmasına yardımcı olabilir
- Mevcut C kütüphaneleriyle uyumluluğu önemserken modern dil özelliklerini de destekleme hedefi taze bir yaklaşım sunuyor, ancak bunun sonucunda dilin kendine özgülüğü sınırlı kalabilir
- Vala projelerine bakıldığında çoğunlukla GNOME veya elementary OS için masaüstü uygulamalar öne çıkıyor, ancak dil sunucu programlamada da kullanılabilir. Yine de bu alandaki ekosistem henüz zayıf
- Vala'nın ne kadar yaygınlaşacağı belirsiz olsa da, GNOME ekosisteminde C yerine Vala kullanımıyla üretkenlik artışı beklenebilir
- Vala'ya sözdizimi açısından benzeyen ve GNOME teknolojilerini kullanabilen Genie adlı bir dil de vardır. Python'daki gibi girintilerle kod bloklarını ayırması ayırt edici özelliğidir. Vala'ya alternatif olarak değerlendirilebilir
1 yorum
Hacker News görüşleri
valac) tarafından derleniyor.valadoc.org) da geliştirmeyi kolaylaştırıyor.gtk-rs.org).