Show HN: Getada: rustup-like installer for Ada's toolchain/package manager
Ada’s Recent Momentum
- Multiple comments report seeing more Ada content recently.
- Suggested drivers: push for safer languages after security incidents, White House guidance, and general “why are we still using C?” discourse.
- Ecosystem changes: license simplification around 2021, rise of Alire (toolchain + package manager), new Ada standard in 2022, and community consolidation on ada-lang.io.
- Content creators (Twitch/YouTube) are seen as amplifying interest.
Ada vs Other Languages (Rust, C#, Java, Go)
- Some question why Ada today vs Rust or mainstream managed languages.
- Pro‑Ada points: restricted/checked numeric ranges, pre/postconditions, rich type system, representation clauses for low-level memory-mapped work, automatic array sizing/iteration based on index ranges.
- Counterpoints: many of these can be emulated via libraries in other languages, though Ada’s version is more integrated.
- One view claims Ada is safer, easier, and more cost‑effective than C/C++/Java and even Rust; others demand citations and are skeptical.
Memory Safety and SPARK
- Debate on whether Ada is “memory safe.”
- View 1: largely safe if sticking to stack allocation and avoiding unchecked deallocation; standard containers and controlled types add safety.
- View 2: Ada is not inherently memory-safe like Rust.
- SPARK (a provable subset of Ada) is highlighted as free, easy to enable with a pragma, and available via
gnatprove; some praise its integration with GNAT Studio.
Getada and Alire Tooling
- Getada is described as a rustup-like installer layering over Alire: fetches latest release, installs under
$HOME, wires PATH via shell env files, and can uninstall cleanly. - Goal: “one-liner” install to lower onboarding friction, especially for newcomers confused by manual zip extraction, PATH edits, or macOS xattr requirements.
- Some argue these manual steps are trivial; others respond that in practice they do trip people up and automation is valuable.
- musl/Alpine support is still problematic: Alire can be built, but bundled toolchains aren’t musl-linked; flagged as a future “phase 2” concern.
Alire Usage Debates
- Fans: Alire simplifies toolchain selection, dependency management, and project scaffolding; uses gprbuild under the hood and caches toolchains (similar to virtualenv).
- Critics: it imposes
alr build, extra directories (obj,bin,alire,config), and can interact poorly with non‑git workflows or when config needs to be shared; some prefer calling gprbuild directly.
Tooling Culture and Comparisons
- Several comments frame strong tooling as key to language adoption.
- Rust’s rustup + Cargo and Go’s
gotool are cited as examples where tooling quality drives enthusiasm. - Others note opinionated tools like Cargo can clash with existing large codebases, making incremental adoption harder.
Libraries and Use Cases
- SDL2 with Ada: SDLada is available and works with Alire (
alr with sdlada), though some report Linux linking difficulties; efforts are underway to simplify linking via pragmas and project files. - Raylib bindings for Ada are mentioned as working well.
Naming and Miscellaneous
- Light bike‑shedding over the name “Getada” vs more “clever” names (e.g., Byron); some prefer descriptive names for memorability, others argue they age poorly when tools are replaced.
- A brief anecdote laments porting Ada avionics code to C as a regression in safety/maintainability.