5 पॉइंट द्वारा GN⁺ 2024-04-09 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Vala एक प्रोग्रामिंग भाषा है जिसका लक्ष्य GNOME डेवलपर्स को modern programming language features प्रदान करना है
  • यह C में लिखे गए applications और libraries की तुलना में कोई अतिरिक्त runtime requirements नहीं लगाती और न ही कोई अलग ABI का उपयोग करती है
  • समर्थित modern language features: interfaces, properties, signals, Foreach, lambda expressions, local variables के लिए type inference, generics, non-null types, memory management, exception handling
  • object-oriented तरीके से high-level abstraction का उपयोग कर आसानी से code लिखा जा सकता है, और यह GObject, GTK जैसी GNOME technologies के साथ गहराई से integrated है
  • यह code को बहुत तेज native binaries में compile करती है. मौजूदा C code को Vala program में reuse किया जा सकता है या Vala से C code generate किया जा सकता है

मौजूदा C libraries के साथ संगतता

  • Vala को इस तरह design किया गया है कि वह runtime bindings के बिना मौजूदा C libraries, खासकर GObject-आधारित libraries, तक access कर सके
  • यदि API file उपलब्ध हो जिसमें Vala syntax में class और method declarations शामिल हों, तो library को Vala के साथ उपयोग किया जा सकता है
  • Vala अभी GLib और GTK+ के लिए bindings के साथ उपलब्ध है

Vala compiler valac

  • valac एक self-hosting compiler है जो Vala source code को C source और header files में बदलता है
  • यह Vala source code में घोषित classes और interfaces को generate करने के लिए GObject type system का उपयोग करता है
  • Vala का syntax C# के समान है, लेकिन इसे GObject type system के साथ बेहतर मेल के लिए संशोधित किया गया है

C से Vala में लिखी गई classes और methods का उपयोग

  • यदि Vala library से generated header files install कर दी जाएँ, तो C applications सामान्य तरीके से Vala library के GObject-आधारित API तक access कर सकती हैं
  • क्योंकि Vala parser एक library के रूप में लिखा गया है और binding generation के समय सारी compile-time information का उपयोग किया जा सकता है, इसलिए C# आदि में लिखे applications के लिए Vala libraries तक access देने वाले binding generators लिखना भी आसान होगा

GN⁺ की राय

  • Vala का लाभ यह है कि यह C-जैसे syntax वाली एक object-oriented language है जो GNOME technologies के साथ अच्छी तरह integrated है. खासकर GUI application development के लिए यह optimized है और GTK, Granite आदि के साथ आसानी से जुड़ सकती है
  • Vala GNOME desktop environment development के लिए विशेष रूप से बनाई गई भाषा है, इसलिए अन्य क्षेत्रों में इसका उपयोग बहुत अधिक नहीं होने की संभावना है
  • C# जैसे syntax वाली Vala, C# से परिचित डेवलपर्स के लिए GNOME development में भाग लेना आसान बना सकती है
  • मौजूदा C libraries के साथ compatibility को महत्व देते हुए modern language features को support करने का Vala का लक्ष्य ताज़गीभरा है, लेकिन इसके कारण भाषा की अपनी मौलिकता कम हो सकती है
  • Vala projects को देखें तो ज़्यादातर GNOME या elementary OS के लिए desktop apps मिलते हैं, लेकिन यह server programming में भी उपयोग की जा सकने वाली भाषा है. हालांकि उस क्षेत्र में इसका ecosystem अभी कमजोर है
  • Vala कितनी व्यापक रूप से अपनाई जाएगी यह स्पष्ट नहीं है, लेकिन GNOME ecosystem में C के बजाय Vala का उपयोग करके productivity बढ़ने की उम्मीद की जा सकती है
  • Vala से मिलता-जुलता syntax रखने वाली और GNOME technologies का उपयोग कर सकने वाली Genie नाम की एक भाषा भी है. इसकी खासियत यह है कि यह Python की तरह indentation से code blocks को अलग करती है. इसे Vala के एक विकल्प के रूप में देखा जा सकता है

1 टिप्पणियां

 
GN⁺ 2024-04-09
Hacker News राय
  • इस पर सवाल उठाए गए हैं कि क्या Vala में हाल के समय में सक्रिय विकास हुआ है। एक GNOME डेवलपर की ब्लॉग पोस्ट के अनुसार, Vala का मेंटेनेंस एक ही डेवलपर कर रहा है और नए डेवलपमेंट के लिए इसकी सिफारिश नहीं की जाती।
  • एक कमेंट करने वाले ने कहा कि उसने हाल ही में Vala में एक ऐप लिखा और यह अनुभव आनंददायक था। उसे ऐसा ऐप चाहिए था जो desktop Linux और PinePhone पर अच्छी तरह काम करे, इसलिए Vala उसके लिए उपयुक्त रहा; उसके अनुसार यह Python की तुलना में कहीं अधिक आनंददायक था और प्रदर्शन भी बेहतर था।
  • Vala की एक sister language भी है, जिसका नाम Genie है। दोनों भाषाएँ मूल रूप से समान हैं, लेकिन Vala में C# जैसी syntax है, जबकि Genie में Python जैसी significant whitespace का उपयोग होता है। दोनों को उसी compiler (valac) से compile किया जाता है।
  • syntax के स्तर पर Vala, Swift से काफ़ी मिलता-जुलता दिखता है। syntax के अलावा भी Vala में first-class reference counting, C language bindings, और बिना किसी external runtime के सीधे binary में compile होने जैसी बातें Swift से मिलती-जुलती हैं।
  • इस पर सवाल उठाया गया कि क्या Vala के पास stable ABI है या C++ या ObjC जैसी दूसरी high-level languages के साथ compatibility है। यह वही कठिन समस्या है जिसे Swift हल करने की कोशिश कर रहा है।
  • यह देखना कठिन है कि Vala, Java या C# की तुलना में (काफ़ी) अधिक productive या powerful language है। Vala का फ़ायदा क्या है या यह कौन-सी समस्या हल करना चाहता है, यह स्पष्ट नहीं है।
  • एक राय यह है कि Vala की एक बड़ी ताकत GObject के साथ compatibility की वजह से उपलब्ध native libraries की व्यापक रेंज है। साथ ही, सब कुछ एक जगह पर उपलब्ध शानदार documentation website (valadoc.org) भी development को आसान बनाती है।
  • कहा गया कि elementary OS के अधिकांश "native" apps, Vala में लिखे गए थे।
  • Geary को पसंद करने वाले एक कमेंट करने वाले ने उसी वजह से Vala के बारे में जाना और पाया कि Vala एक elegant language है और GNOME में practical programs बनाने के लिए अच्छी है। हालांकि, उसने कहा कि उसने पिछले 7 वर्षों में Vala को नहीं देखा है।
  • GNOME development के लिए Rust का उपयोग धीरे-धीरे अधिक लोकप्रिय हो रहा है (gtk-rs.org).