2012-03-03 19 views
14

Vala'ya yeni geliyorum. GObject ile aşina değilim. Anladığım kadarıyla GObject, GLOME projesinden GNOME'den çıkarıldı. Yanlışsam düzelt.Can Vala GObject olmadan kullanılabilir mi?

Vala'nın sözdizimi ve uygulaması çok hoşuma gitti, ancak GNOME için masaüstü uygulamaları yazmak niyetim değil.

Ayrıca Vala'nın GObject dışında bir standart kütüphaneye sahip olmadığını da biliyorum (biliyorum).

Sorularım: Can Vala GObject olmadan kullanılabilir ve eğer kullanılabilirse, kullanılabilir (yazım, matematik, string manipülasyonu, arabellek vb.)?

+3

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

cevap

7

Dova ve Posix gibi başka Vala profilleri var.

+0

Posix profilinde sınıflara sahip olamayacağınızı unutmayın (veya en azından yalnızca [Kompakt] 'olanlar) – ptomato

3

Aroop'u kullanabileceğiniz başka bir profil. (Hala ağır geliştirme aşamasındadır). Umarım yüksek performansa ihtiyacınız varsa iyidir. Lütfen features here'u kontrol edin.

4

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

    • sınıfları:

      Çoğunlukla gibi GObject içinde mevcut tüm kavramları sarar + GObject ve Vala'da otomatik aka ARC)

    • Nesnelerintip emniyet
    • jenerik
    • muhtemelen çok daha fazlası ...

    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.

    İlgili konular