Introduction to Ada: a project-based exploration with rosettas

(blog.adacore.com)

162 points | by jaypatelani 12 hours ago ago

38 comments

  • OhMeadhbh 10 hours ago ago

    I would love to get a list of language features that are "free to use with GNAT" and those that are "AdaCore license required." The last time I did Ada (admittedly, back in the 90s) it wasn't all that clear what language features I could use for free. And since we're on lists of things, a list of zero-cost abstractions and non-zero-cost abstractions would be nice.

    I'm pretty sure these aren't big issues these days, but there's still a lot of people walking around thinking "I can't use Ada on this project, I don't have budget for a commercial compiler." Maybe a "project manager's introduction to Ada." I would write it myself, but I've forgotten most everything I learned about the language and it's development community.

    [Apart from that... young engineers should definitely check out Ada, even if you don't eventually use it. Why it was considered a good idea to create a new language, the problems language designers were trying to solve and how developers used the language to build code that was more bullet-proof than C++ is kind of an interesting story.]

    • csb6 10 hours ago ago

      > I would love to get a list of language features that are "free to use with GNAT" and those that are "AdaCore license required."

      All Ada language features are present in the free/open source version of the compiler. The proprietary version of GNAT is just updated more frequently I think and has commercial support - they periodically copy their changes into the main GCC source tree.

      They have proprietary tools for some kinds of static analysis, but those wouldn’t be considered language features. GNATprove (the theorem prover tool for verifying SPARK programs) is open source.

      • thorn 10 hours ago ago

        I think AdaCore stopped supporting GNAT community in 2022 and recommended to use Alire community, no?

        https://blog.adacore.com/a-new-era-for-ada-spark-open-source...

        • csb6 9 hours ago ago

          GNAT Community was just a version of the GNAT toolchain/IDE provided by AdaCore. GNAT is still open source and still updated as part of GCC, it is now just recommended to install it using the Alire package manager. Builds of GNAT are also provided on some distros since it is part of GCC.

        • inamberclad 9 hours ago ago

          Alire is just a package and toolchain manager that AdaCore wrote in the style of Cargo. It still runs GNAT under the hood.

          • ajdude 22 minutes ago ago

            Alire isn't written by adacore, it's an independent project though adacore has donated to them.

            At this point it is becoming the de facto method of acquiring the toolchain and building Ada projects.

          • thesuperbigfrog 5 hours ago ago

            I don't think AdaCore was involved in the creation of alire:

            https://zaguan.unizar.es/record/79726/files/texto_completo.p...

            AdaCore does directly contribute to GNAT which is important.

            GNAT was chosen for alire since it is free software: "This work presents a working prototype tailored to the Ada compiler available to open source enthusiasts, GNAT."

            Other Ada implementations typically use their own build systems which are different from GNAT's and so they would probably need changes to work with alire.

      • firesteelrain 9 hours ago ago

        The last time I bought a license for AdaCore it was to get the unit testing, static analysis and dynamic analysis tools IIRC but, that was about 8-9 years ago. We also paid for training from AdaCore and their main guy came out.

        • monkeyelite an hour ago ago

          How would you rate that experience?

    • jaypatelani 2 hours ago ago

      Check this might help. Community created space to access free open source tooling it will still have adacore toolings

      https://ada-lang.io/

  • stevage 7 hours ago ago

    I did a student project at uni using Ada, building a compiler. it was a pretty nice language to work in, felt similar to Pascal. I don't remember particularly disliking anything. Declaring function parameters as in, or out, or in out, was cool.

  • eggy 11 hours ago ago

    I've always liked generative art and I am getting up to speed on Ada 2022, so this is a fitting article. Currently using SPARK2014/Ada 2022 for a high-integrity, safety-critical automation control software project.

  • jmward01 4 hours ago ago

    There is a special place in my programming heart for Ada since it was my first professional language (back in 1996). It is interesting to see it coming back a bit. Ignoring the language, the culture and history of Ada is a great one. I was around for the fall of the Ada mandate and I got to see the play 'Lady Ada and Castle Mandate'. The community that put that on was passionate and, obviously, quirky.

    • GeertB 2 hours ago ago

      That one has a special place for me. I was a consultant then and invited to join the chorus even though I wasn't at the more professional level the other cast members were. We did a performance in London and one in St Louis. Still, it was a lot of fun, and how I got to meet my spouse 25-ish years ago.

  • andsoitis 10 hours ago ago

    If you’re curious about Ada or SPARK, a great place to start: https://learn.adacore.com/

  • thorn 10 hours ago ago

    I remember reading about Ada when I was young in 90s. I programmed in Pascal at that time, but was intrigued by Ada’s syntax. I had no book for it sadly and internet was out of reach for me too. Modern Ada looks a bit different too, they definitely added new features into the language. I quite like the syntax.

    I never heard about Spark/Ada before. I wonder if anyone uses Spark for real world tasks, and if yes, what for?

  • ducktective 10 hours ago ago

    Would the "LLM era" revitalize languages like Ada and Haskell into mainstream?

    • ajdude 24 minutes ago ago

      There was a pretty good article a while ago on how using verified SPARK (a subset of Ada) could help with llm generated output https://arxiv.org/html/2502.07728v1

    • synack 7 hours ago ago

      Claude does an okay job of translating from other languages into Ada. It works especially well if you write the specification (.ads) file and let it write the body (.adb)

      Ada’s strictness about types and a preference to allocate on the stack rather than the heap means more bugs are caught at compile time. Claude Code is really good at iterating on compile time errors without much user intervention.

    • OhMeadhbh 10 hours ago ago

      No.

      • remixff2400 10 hours ago ago

        From the guidelines:

        > Please don't post shallow dismissals, especially of other people's work. A good critical comment teaches us something.

        because... they don't have as many examples, documentation, textbooks, or public example projects to base generation off of, perhaps. There may be a future where documentation/servers are more formally integrated with LLMs/AI systems in a way that makes up for the relative lack of literature by plugging into a source of information that can be used to generate code/projects.

        • nxobject 10 hours ago ago

          It's a not-so-ideal situation: how is the marketplace of libraries and languages going to evolve when you're competing against whatever version of Python and $FRAMEWORK that was crawled a long time ago?

          • tjr 10 hours ago ago

            If AI is writing the code, how important is it to have new languages?

        • pasc1878 10 hours ago ago

          That might actually be a benefit as most public code say in C++ is not good code.

          If the pool is smaller but from say experienced programmers then the number of errors might be less. I can see that for Ada however most Haskell is probably written by undergraduates just learning it so not a quality code base.

          I think Apple researchers published a recent papaer where they had a LLM giving good Swidt code but the original corpus only included one Swift program but the AI model was tuned by experienced Swift programmers to get into a good stae for general use.

      • altix350 10 hours ago ago

        I would say yes in that it could help revitalize things a bit. Writing difficult and complicated bindings to C libraries will be much easier now. Also, if you can supply a decent context, LLMs can do some good coding in Ada (just not new or fancy features without examples).

  • giancarlostoro 11 hours ago ago

    So is there a list or statistic of how many DOD projects actually use Ada?

    • jmward01 4 hours ago ago

      The Marines had an entire MOS dedicated to it, 4067 Ada programmer. That was when LCPL (E-3) could own the software for a chuck of the supply system and make changes with almost no oversight... Man those were the days!

    • sharpy 10 hours ago ago

      Worked in the defence industry for a few years in the 2000s. I worked on exactly one Ada project. The rest were C/C++. I presume the shift away from Ada has accelerated if anythinng.

      • blutack 10 hours ago ago

        This might be a US/EU difference. It's pretty popular in the EU still, although some of the market has been taken by various Simulink to C tools.

        Every Rolls-Royce gas turbine FADEC runs ADA binaries on a custom processor [1].

        It's also used extensively at Airbus. Lots of DO-178C (safety critical aerospace).

        1: https://www.his-conference.co.uk/session/visiumcore-a-high-i...

        • ummonk 4 hours ago ago

          Seems to be standard in India as well. E.g. the newly announced made in India space microprocessor is targeted by an in house Ada compiler: https://thestateindia.com/2025/09/02/vikram-3201-india-unvei...

        • ajxs 6 hours ago ago

          Thank you for sharing this! I'd love to know more about what led them to develop their own CPU, and what the instruction set looks like. It looks like AdaCore actually merged their support for VISIUMCore into upstream GCC. The slides state it features SEU detection/correction, which is pretty interesting.

      • dragonwriter 9 hours ago ago

        > Worked in the defence industry for a few years in the 2000s.

        The Ada mandate for mission-critical software was only in place from 1991-1997.

      • Jtsummers 10 hours ago ago

        The DOD mandate was very short-lived, and many projects sought and received exemptions to it. So it's not surprising that, at that time, you only saw one project.

      • giancarlostoro 10 hours ago ago

        I worked in that industry and never saw a single project using Ada, but I've always been fascinated by different programming languages.

    • inamberclad 9 hours ago ago

      Nvidia is notably using Ada for serval modern projects.

      • tos1 8 hours ago ago

        I’m interested. Do you have a link or can you elaborate?

        • sillywalk 7 hours ago ago

          Looks like they're using the SPARK subset of Ada:

          "NVIDIA began implementing SPARK in its security strategy in 2019 on select pieces of firmware. They began training additional personnel in SPARK and eventually developed an in-house training program.

          Several NVIDIA teams are now using SPARK for a wide range of applications that include image authentication and integrity checks for the overall GPU firmware image, BootROM and secure monitor firmware, and formally verified components of an isolation kernel for an embedded operating system, to name just a few."[0]

          https://www.adacore.com/nvidia

          [0] https://www.wevolver.com/article/nvidia-adoption-of-spark-us...

    • gte525u 9 hours ago ago

      There were a lot of waivers back in the day. A couple big companies (Boeing) still use it.