TLDR: En üstte tasarlandığından, Vala'yı GLib/GObject ile kullanmanızı öneririm.
Valac için alternatif profiller olabileceği gibi, bunlar bitmemiş veya kullanımdan kaldırılmıştır.
Vala bütün mesele C. GLib ve GTK + uygulamaları yazmak için gerekli Demirbaş miktarını azaltmaktır
Ayrıca yerine basit bir veri türleri dizesine ve bir dizi gibi, C üzerinde bir güzel diğer geliştirmeleri içerir hata eğilimli işaretçiler. kılavuzu C olan (
özellikleri
miras
temsilci
uyumsuz yöntemleri
başvuru sayma
bu kavramların tamamı
GObject/GLib/Gio kullanmadan uygulanabilir, ancak bu temelde GObject/GLib'in yeniden yazmak anlamına gelecektir/Gio çok mantıklı değil.
GUI uygulamalarını yazmak istemiyorsanız GLib, konsol uygulamaları yazmak için de kullanılabilir; GIO veya GTK +, Vala'da isteğe bağlıdır, uygulamalar da başsız bir sunucu üzerinde çalışır. Qt ve GLib'in birlikte çalışmasını çok daha kolay hale getirecek olan GLt ana döngüsüne geçmek için Qt'de biraz çaba harcamanın bile olduğunu düşünüyorum.
GLib kullanan bir çerçeveye iyi bir örnek, farklı masaüstü ortamlarında da kullanılan GStreamer'dır.
Özetle
:
- GLib temel bir çapraz platform uygulama çerçevesi
- GObject olan
- GIO (ağ, dosya, vs. bir I/O soyutlamasıdır GLib ekosistem tarafından kullanılan nesne sistemi .) GLib + GObject
- GTK + dayanan bir grafik kullanıcı arayüzü araç GLib + GObject + GIO + diğerlerine dayalı olduğunu
- GNOME tüm "G" teknolojilerinedayalı bir masaüstü ortamıdır 0
- Vala, C dilindeki "G" kitaplıklarını kullanmak için belirtilen kazan plakasını azaltmak için tasarlanmış bir üst düzey programlama dilidir.
GTK + orijinal olarak GIMP'den geldi ve günümüzde GNOME'un temelini oluşturan farklı "G" kitaplıklarına bölünmüştü.
Vala ayrıca, herhangi bir C kütüphanesi için "VAPI" dosyalarının yazılmasını kolaylaştırmak için çok güçlü bağlama mekanizmalarına sahiptir.
Doğru VAPI bağlamaları ile el ile bellek yönetimi, işaretçiler, dizelerin ve dizilerin sıfır sonlandırılması ve C kodu yazmayı zorlaştıran diğer bazı sıkıcı şeyler hakkında endişelenmenize gerek yok.
GObject çerçevesi gnome masaüstü ortamlarına bağlı değildir. GObject kütüphanelerini neredeyse her türlü linux ve hatta pencereler üzerinde kullanabilirsiniz. – Mindbane