Ada, its design, and the language that built the languages

Ada, the safety-focused programming language originally commissioned by the U.S. Department of Defense, is revisited as an early, rigorous design that anticipated many features now seen in Rust, modern Java, TypeScript, and others. Commenters highlight Ada’s strong typing, built-in concurrency, formal verification subset (SPARK), and strict separation of interface and implementation, while noting its reputation for complexity, verbosity, slow or costly toolchains, and military niche as reasons it never went mainstream. The thread also questions whether the widely praised essay on Ada was AI-generated, prompting broader concerns about authorship, expertise, and trust in long-form technical writing.

Ada’s Design & Capabilities

  • Many commenters praise Ada as ahead of its time: strong typing, rich concurrency model, tasking, generics, contracts, and clear separation of specification (.ads) vs implementation (.adb).
  • Ada’s ability to encode parameter modes (in, out, in out) is highlighted as a major advantage over C/C++‑style calling conventions.
  • SPARK (a verifiable subset) is noted for move‑like semantics for pointers and formal verification.
  • Private types and information hiding are seen as a core strength: clients see only the abstract type, not its representation.

Complexity, Verbosity, and Readability

  • Some argue Ada is extremely complex to compile and implement (arrays, generics, tasking, overload resolution, scoping), on par with C++/Rust.
  • Others say later mainstream languages have grown even more complex, making earlier “Ada is too complex” complaints look naive.
  • Verbosity splits the discussion: some see English‑like keywords and explicitness as a readability feature; others see unnecessary noise that limits adoption.
  • A recurring idea: an ideal system might support multiple concrete syntaxes (verbose vs terse) over one abstract syntax tree.

Adoption, Tooling, and Performance

  • High compiler/tool costs and late arrival of free compilers (e.g., GNAT in the mid‑90s) are repeatedly cited as key reasons Ada lost to C/C++.
  • Early compiler/runtime overhead and limited microcomputer performance also hurt Ada in the 1980s.
  • Some report good compilation performance in practice; others recall slow, cumbersome toolchains and difficulty integrating with OS features.

Comparisons with Other Languages & Systems

  • Frequent comparisons to Rust (ownership/affine types vs Ada’s controlled/limited types and SPARK), C/C++, Java, JavaScript/TypeScript, ML family, Pascal/Modula, Mesa, PL/SQL, VHDL, Verilog, and HDLs more broadly.
  • Debate over whether JavaScript modules or modern JS private fields achieve the same level of opaque types as Ada; many argue they do not.
  • Historical influences like ALGOL 68, CLU, Hope, Mesa, and JOVIAL are discussed.

AI-Generated Article Debate

  • Significant subthread debates whether the linked Ada essay is AI‑written.
  • Supporters point to repetitive rhetorical patterns, rapid publication cadence, and some technical inaccuracies.
  • Others push back, noting humans can also write in that style and that quality, not authorship method, should matter.

Use Cases, Culture, and Ethics

  • Ada is strongly associated with safety‑critical systems: defense, aerospace, rail, and avionics.
  • Some admire this domain; others explicitly avoid working on weapons or high‑stakes systems due to ethical or stress concerns.
  • Several lament that Ada’s successes are largely invisible (systems that quietly work), while a notable failure (early Ariane 5 incident) is widely remembered.