5 puan yazan GN⁺ 2024-04-09 | 1 yorum | WhatsApp'ta paylaş
  • 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

 
GN⁺ 2024-04-09
Hacker News görüşleri
  • Vala'nın yakın dönemde aktif olarak geliştirilip geliştirilmediği konusunda soru işaretleri var. Bir GNOME geliştiricisinin blog yazısına göre Vala'nın bakımı tek bir geliştirici tarafından yapılıyor ve yeni geliştirmeler için önerilmiyor.
  • Bir yorumcu kısa süre önce Vala ile bir uygulama yazdığını ve bunun keyifli bir deneyim olduğunu söylüyor. Masaüstü Linux ve PinePhone'da iyi çalışan bir uygulama istediği için Vala'nın buna çok uygun olduğunu, Python'dan çok daha keyifli olduğunu ve performansının da daha iyi olduğunu belirtiyor.
  • Vala'nın Genie adında kardeş bir dili var. İki dil temelde aynı, ancak Vala C# benzeri sözdizimi kullanırken Genie Python'daki gibi anlamlı girintileme kullanıyor. İkisi de aynı derleyici (valac) tarafından derleniyor.
  • Vala sözdizimi açısından Swift'e çok benziyor gibi görünüyor. Sözdiziminin ötesinde, birinci sınıf referans sayımı, C dili bağlamaları ve harici bir runtime olmadan doğrudan ikili dosyaya derlenmesi gibi yönleriyle de Swift'e benziyor.
  • Vala'nın kararlı bir ABI'ye ya da C++ veya ObjC gibi diğer üst düzey dillerle uyumluluğa sahip olup olmadığı sorgulanıyor. Bu, Swift'in çözmeye çalıştığı zor problemlerden biri.
  • Vala'nın Java veya C#'tan ne kadar daha üretken ya da güçlü bir dil olduğunu görmek zor. Vala'nın asıl avantajının ne olduğu veya hangi problemi çözmeye çalıştığı net değil.
  • Vala'nın güçlü yanlarından birinin, GObject uyumluluğu sayesinde erişilebilen geniş yerel kütüphane ekosistemi olduğu söyleniyor. Her şeyin tek yerde toplandığı harika bir dokümantasyon sitesi (valadoc.org) da geliştirmeyi kolaylaştırıyor.
  • elementary OS'teki "yerel" uygulamaların çoğunun Vala ile yazıldığı belirtiliyor.
  • Geary'yi seven bir yorumcu, bu yüzden Vala'yı araştırdığını ve Vala'nın zarif bir dil olduğunu, GNOME üzerinde pratik programlar geliştirmek için iyi olduğunu gördüğünü söylüyor. Ancak son 7 yıldır Vala'ya bakmadığını da ekliyor.
  • GNOME geliştirme için Rust kullanımı giderek daha popüler hale geliyor (gtk-rs.org).