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
  • Zigi - Close all those tabs. Zigi will handle your updates.
  • Scout APM - Truly a developer’s best friend
  • Sonar - Write Clean C++ Code. Always.
  • InfluxDB - Build time-series-based applications quickly and at scale.
  • 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

    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.

  • Zigi

    Close all those tabs. Zigi will handle your updates.. Zigi monitors Jira and GitHub updates, pings you when PRs need approval and lets you take fast actions - all directly from Slack! Plus it reduces cycle time by up to 75%.

  • ladybird

    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