All Posts programming How many Vala programs distributed via Homebrew ?

How many Vala programs distributed via Homebrew ?

ยท 1029 words ยท 5 minute read

What is Vala language ? ๐Ÿ”—

Vala is an object-oriented programming language designed to bring modern language features to C developers without adding extra runtime overhead. It primarily targets the GNOME desktop ecosystem, allowing developers to write code with high-level abstractions that compiles down to standard C.

Language Overview and Purpose ๐Ÿ”—

Vala was created to simplify the development of applications for the GNOME desktop environment by providing a higher-level alternative to plain C. Its primary goal is to combine the productivity and syntax of modern languages like C# with the performance and low resource usage of C. Unlike many high-level languages that require a virtual machine (like Java or C#), Vala produces native binaries that have no additional runtime dependencies beyond the standard C libraries.

Compilation to C ๐Ÿ”—

A unique characteristic of Vala is its compilation process; it is a source-to-source compiler that translates Vala code into intermediate C code rather than machine code directly. This generated C code is then compiled by a standard C compiler, such as GCC or Clang, to create the final executable. This approach allows Vala programs to easily interact with existing C libraries and maintain full binary compatibility with the C ABI (Application Binary Interface).

Syntax and Modern Features ๐Ÿ”—

Vala’s syntax is heavily inspired by C# and Java, making it immediately familiar to developers coming from those ecosystems. Despite compiling to C, it supports numerous modern programming paradigms that plain C lacks, including:

  • Object-Oriented Programming: Full support for classes, interfaces, and inheritance.
  • Memory Management: Automated reference counting (ARC) manages memory automatically without the pauses associated with garbage collection.
  • Productivity Features: Includes lambda expressions, type inference, generics, exception handling, and signals.

Comparison with C and C# ๐Ÿ”—

Vala sits effectively between C and C#, offering the high-level syntax of the latter while retaining the execution model of the former.

FeatureCValaC#
Syntax StyleLow-level, imperativeHigh-level, Object-Oriented (similar to C#)High-level, Object-Oriented
CompilationDirect to Machine CodeTranspiles to C, then to Machine CodeCompiles to Intermediate Language (IL)
RuntimeMinimal (Standard Lib)Minimal (GObject/GLib)Heavy (Common Language Runtime)
Memory ManagementManual (malloc/free)Assisted (Reference Counting)Garbage Collection

Integration with GNOME ๐Ÿ”—

Vala is deeply integrated with the GObject type system, which is the foundation of the GNOME desktop platform. It was specifically designed to make writing GObject-based code less verbose and error-prone compared to writing it in pure C. Because of this tight integration, Vala is a popular choice for developing GTK graphical user interfaces and other GNOME-native applications.

Statistics of Vala programming language ๐Ÿ”—

On December 16th 2025, The number of CLI apps written in vala and distributed via Homebrew Core Formulae is 61 apps.

You may like to compare it with Python , Rust , Go , and Ruby .

Apps written in vala and distributed via Homebrew Core Formulae ๐Ÿ”—

  • gxml : GObject-based XML DOM API
  • libayatana-indicator : Ayatana Indicators Shared Library
  • libosinfo : Operating System information database
  • appstream : Tools and libraries to work with AppStream metadata
  • libxmlb : Library for querying compressed XML metadata
  • jsonrpc-glib : GNOME library to communicate with JSON-RPC based peers
  • gupnp : Framework for creating UPnP devices and control points
  • libgudev : GObject bindings for libudev
  • vte3 : Terminal emulator widget used by GNOME terminal
  • gitg : GNOME GUI client to view git repositories
  • libgit2-glib : Glib wrapper library around libgit2 git access library
  • libspelling : Spellcheck library for GTK 4
  • simple-scan : GNOME document scanning application
  • gplugin : GObject based library that implements a reusable plugin system
  • gspell : Flexible API to implement spellchecking in GTK+ applications
  • libgoa : Single sign-on framework for GNOME - client library
  • pdfpc : Presenter console with multi-monitor support for PDF files
  • vala-language-server : Code Intelligence for Vala & Genie
  • gnome-online-accounts : Single sign-on framework for GNOME
  • gtkspell3 : Gtk widget for highlighting and replacing misspelled words
  • libsecret : Library for storing/retrieving passwords and other secrets
  • template-glib : GNOME templating library for GLib
  • gupnp-av : Library to help implement UPnP A/V profiles
  • enter-tex : TeX/LaTeX text editor
  • gssdp : GUPnP library for resource discovery and announcement over SSDP
  • gucharmap : GNOME Character Map, based on the Unicode Character Database
  • baobab : Gnome disk usage analyzer
  • gcr : Library for bits of crypto UI and parsing
  • libgdata : GLib-based library for accessing online service APIs
  • libgusb : GObject wrappers for libusb1
  • libpeas : GObject plugin library
  • gtksourceview4 : Text view with syntax, undo/redo, and text marks
  • libdazzle : GNOME companion library to GObject and Gtk+
  • libpeas@1 : GObject plugin library
  • [email protected] : Spellcheck library for GTK 4
  • sdb : Ondisk/memory hashtable based on CDB
  • spice-gtk : GTK client/libraries for SPICE
  • gexiv2 : GObject wrapper around the Exiv2 photo metadata library
  • libpanel : Dock/panel library for GTK 4
  • valabind : Vala bindings for radare, reverse engineering framework
  • babl : Dynamic, any-to-any, pixel format translation library
  • ayatana-ido : Ayatana Indicator Display Objects
  • gtksourceview3 : Text view with syntax, undo/redo, and text marks
  • libdbusmenu : GLib and Gtk Implementation of the DBusMenu protocol
  • libdex : Future-based programming for GLib-based applications
  • libgee : Collection library providing GObject-based interfaces
  • libhandy : Building blocks for modern adaptive GNOME apps
  • libsoup@2 : HTTP client/server library for GNOME
  • libsoup : HTTP client/server library for GNOME
  • msitools : Windows installer (.MSI) tool
  • tinysparql : Low-footprint RDF triple store with SPARQL 1.1 interface
  • fwupd : Firmware update daemon
  • gcab : Windows installer (.MSI) tool
  • gtksourceview5 : Text view with syntax, undo/redo, and text marks
  • libgda : Provides unified data access to the GNOME project
  • umockdev : Mock hardware devices for creating unit tests and bug reporting
  • libadwaita : Building blocks for modern adaptive GNOME applications
  • libayatana-appindicator : Ayatana Application Indicators Shared Library
  • libjcat : Library for reading Jcat files
  • libproxy : Library that provides automatic proxy configuration management
  • libshumate : Shumate is a GTK toolkit providing widgets for embedded maps

I hope you enjoyed reading this post as much as I enjoyed writing it. If you know a person who can benefit from this information, send them a link of this post. If you want to get notified about new posts, follow me on YouTube , Twitter (x) , LinkedIn , and GitHub .