Remix.run Logo
Introduction to Ada: a project-based exploration with rosettas(blog.adacore.com)
190 points by jaypatelani a day ago | 44 comments
OhMeadhbh a day ago | parent | next [-]

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 a day ago | parent | next [-]

> 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.

firesteelrain 21 hours ago | parent | next [-]

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 14 hours ago | parent [-]

How would you rate that experience?

firesteelrain 5 hours ago | parent [-]

AdaCore produces a good product and their technical team is top notch.

thorn a day ago | parent | prev [-]

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 21 hours ago | parent | next [-]

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 21 hours ago | parent | prev [-]

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

thesuperbigfrog 17 hours ago | parent | next [-]

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.

ajdude 12 hours ago | parent | prev [-]

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.

jaypatelani 14 hours ago | parent | prev [-]

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

https://ada-lang.io/

stevage 19 hours ago | parent | prev | next [-]

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 a day ago | parent | prev | next [-]

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 16 hours ago | parent | prev | next [-]

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 15 hours ago | parent [-]

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.

thorn a day ago | parent | prev | next [-]

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?

pjmlp 10 hours ago | parent [-]

Mostly in high integrity computing deployments, those scenarios where people die when software bugs happen.

https://en.m.wikipedia.org/wiki/High-integrity_software

A well known user is NVidia, and car industry security standards.

https://www.adacore.com/press/ada-and-spark-enter-the-automo...

thorn a few seconds ago | parent [-]

Thanks. I wonder is it fun to program high integrity software.

andsoitis a day ago | parent | prev | next [-]

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

anta40 11 hours ago | parent | prev | next [-]

Any recommendation on interesting/big projects written in Ada? Something like Linux or Apache server, perhaps?

pjmlp 8 hours ago | parent | next [-]

If you mean freely available stuff,

https://www.adacore.com/academia/projects/muen-project

https://archive.fosdem.org/2020/schedule/event/ada_spunky/

Davidbrcz 11 hours ago | parent | prev [-]

https://github.com/ohenley/awesome-ada

giancarlostoro a day ago | parent | prev | next [-]

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

jmward01 16 hours ago | parent | next [-]

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 a day ago | parent | prev | next [-]

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 a day ago | parent | next [-]

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 17 hours ago | parent | next [-]

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...

p_l 4 hours ago | parent | prev | next [-]

One interesting project is Saab Gripen jet fighter, whose entire software stack (other than software that is treated as "black box" firmware of certain physical components) is written in Ada, and AFAIK every sale includes complete source code and SDK to make modifications.

ajxs 19 hours ago | parent | prev [-]

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.

pjmlp 8 hours ago | parent | prev | next [-]

There are enough commercial projects to keep 7 vendors in business, in a day and age where many devs refuse to pay for their tools.

https://www.adacore.com/

https://www.ghs.com/products/ada_optimizing_compilers.html

https://www.ptc.com/en/products/developer-tools/apexada

https://www.ddci.com/products_score/

http://www.irvine.com/tech.html

http://www.ocsystems.com/w/index.php/OCS:PowerAda

http://www.rrsoftware.com/html/prodinf/janus95/j-ada95.htm

dragonwriter a day ago | parent | prev | next [-]

> 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 a day ago | parent | prev | next [-]

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 a day ago | parent | prev [-]

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

inamberclad 21 hours ago | parent | prev | next [-]

Nvidia is notably using Ada for serval modern projects.

tos1 20 hours ago | parent [-]

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

sillywalk 20 hours ago | parent [-]

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...

cpeterso 12 hours ago | parent [-]

Here’s a related talk: “NVIDIA - Securing the Future of Safety and Security of Embedded Software”

https://youtu.be/2YoPoNx3L5E

> NVIDIA is working with AdaCore to implement Ada and SPARK programming languages into certain firmware elements to reduce this potential error. In this webinar you will learn how the combination of NVIDIA hardware with Ada and SPARK delivers robustness and security, improving efficiency and safety in the development pipeline.

gte525u 21 hours ago | parent | prev [-]

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

ducktective a day ago | parent | prev [-]

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

synack 19 hours ago | parent | next [-]

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.

ajdude 13 hours ago | parent | prev | next [-]

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

pjmlp 11 hours ago | parent | prev [-]

LLM will make all languages mostly irrelevant, a niche like Assembly programming is nowadays, it is the next abstraction level, generating existing languages is only a temporary measure until they get good enough to generate straight executables.

adrian_b 6 hours ago | parent | next [-]

Not even the deterministic high-level programming languages have succeeded to make the assembly languages irrelevant, despite everybody claiming that this will happen.

While the amount of source code written in assembly languages is an extremely small fraction of the total existing code and only few programmers are competent to write such programs, that assembly source code determines a large fraction of the performance of the applications run on modern computers.

LLMs are likely to behave similarly, i.e. a good amount of programs will continue to be written directly in deterministic programming languages by competent programmers, while a greater amount of source code, usable for solving problems that are neither novel nor critical, will be generated by people with lower skills, with the help of LLMs.

rwallace 4 hours ago | parent | prev [-]

I predict that it will never make sense for artificial neural networks to directly generate machine code, for most of the same reasons it doesn't make sense for biological neural networks to do so.