Elementary OS – Why we write elementary apps in Vala

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • jakt

    The Jakt Programming Language

  • A similar language that was created to make creating GUIs more pleasant is Jakt [1] for SerenityOS which is Impressive to see how fast they've been able to develop a pleasant, went from 0 to rust-based then self-hosting compiler inc. VS Code static analysis & intelli-sense in weeks.

    Like most of SerenityOS you can follow much of its development is on YouTube [2]. A good video series that captures the language ergonomics is in the "Jaktness Monster" series which goes through creating a NES Emulator from scratch [3].

    [1] https://github.com/SerenityOS/jakt

    [2] https://youtu.be/RXp2T_iAhWc

    [3] https://youtu.be/47svsnd7HIQ

  • gtk-rs

    Discontinued Rust bindings for GTK 3

  • Elementary is heavily dependent on the GTK ecosystem, which has its own OOP system implemented in C (for example like GObject). It is really hard to map GTK's OOP semantics to Rust. People have tried things like https://github.com/gtk-rs/gtk3-rs, but it requires heavy macro usage and doesn't feel like ergonomic Rust. On the other hand Vala is directly built upon the GObject system on the first place, so it's more fitting for GTK-specific development.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • ladybird

    Discontinued The Ladybird web browser

  • It already can, as it currently just transpiles to C++ it just needs Clang to build [1].

    Even though it doesn't require SerenityOS, even SerenityOS GUI apps can run on Linux, Andreas already has SerenityOS has ported its Ladybird Browser [2] to Linux, his last video shows "Abstracting the event loop so Ladybird can be fast & responsive on Linux" [3]

    [1] https://github.com/SerenityOS/jakt#usage

    [2] https://github.com/SerenityOS/ladybird

    [3] https://youtu.be/S8lXroxngYo

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts