Introduction to Ada: a project-based exploration with rosettas

123 jaypatelani 29 9/2/2025, 5:32:08 PM blog.adacore.com ↗

Comments (29)

OhMeadhbh · 4h 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 · 3h 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 · 3h 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 · 2h 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 · 3h ago
Alire is just a package and toolchain manager that AdaCore wrote in the style of Cargo. It still runs GNAT under the hood.
firesteelrain · 3h 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.
stevage · 1h 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 · 5h 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.
andsoitis · 3h ago
If you’re curious about Ada or SPARK, a great place to start: https://learn.adacore.com/
thorn · 4h 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?

giancarlostoro · 4h ago
So is there a list or statistic of how many DOD projects actually use Ada?
sharpy · 4h 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 · 3h 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...

ajxs · 28m 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 · 3h 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 · 3h 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 · 3h 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 · 3h ago
Nvidia is notably using Ada for serval modern projects.
tos1 · 2h ago
I’m interested. Do you have a link or can you elaborate?
sillywalk · 1h 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 · 3h ago
There were a lot of waivers back in the day. A couple big companies (Boeing) still use it.
ducktective · 4h ago
Would the "LLM era" revitalize languages like Ada and Haskell into mainstream?
synack · 42m 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 · 4h ago
No.
remixff2400 · 4h 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 · 3h 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 · 3h ago
If AI is writing the code, how important is it to have new languages?
pasc1878 · 3h 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 · 3h 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).