// guess the programming language of the day

$ whois vala

Vala

first released in 2006 · by Jürg Billeter, Raffaele Sandrini

$ guessprog --inspect vala

year
2006
paradigm
object oriented
family
c like
memory
reference counting
binding
static
safety
strong

VALA(7)

AUTHORS
Jürg Billeter, Raffaele Sandrini
HISTORY
Jürg Billeter and Raffaele Sandrini created Vala in 2006 to make developing GNOME applications easier. Writing GObject-based code in plain C requires a lot of boilerplate, so they designed a language with a C#-like syntax whose compiler translates it into C code using GLib and GObject. The result needs no extra runtime and can call C libraries directly, while offering classes, properties, signals, lambdas and reference counting.
USAGE
A niche language used almost exclusively in the GNOME and Linux desktop ecosystem, notably for many elementary OS and GNOME applications. Its community is small, and newer GNOME projects increasingly choose Rust instead.
SEE ALSO
Vala on Wikipedia ↗
$ cat greeter.vala
class Greeter : Object {
    public string name { get; construct; }
    public signal void greeted (string message);

    public Greeter (string name) {
        Object (name: name);
    }

    public void greet () {
        greeted ("Hello, %s!".printf (name));
    }
}

void main () {
    var g = new Greeter ("GNOME");
    g.greeted.connect ((msg) => print ("%s\n", msg));
    g.greet ();
}