Hacker News

jaypatelani
Introduction to Ada: a project-based exploration with rosettas blog.adacore.com

OhMeadhbh2 days 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.]

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

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

monkeyelite2 days ago

How would you rate that experience?

firesteelraina day ago

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

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

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

inamberclad2 days ago

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

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

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

jaypatelaniop2 days ago

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

https://ada-lang.io/

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

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

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

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

thorn2 days 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?

pjmlp2 days ago

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

thorna day ago

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

andsoitis2 days ago

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

giancarlostoro2 days ago

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

jmward012 days 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!

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

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

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

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

p_la day ago

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.

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

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

giancarlostoro2 days ago

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

inamberclad2 days ago

Nvidia is notably using Ada for serval modern projects.

tos12 days ago

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

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

cpeterso2 days ago

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.

gte525u2 days ago

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

anta402 days ago

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

Davidbrcz2 days ago

anta40a day ago

Hmm looks like there are some interesting stuffs under "OS and Kernels" category. Thank you.

ducktective2 days ago

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

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

ajdude2 days 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

pjmlp2 days ago

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_ba day ago

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.

rwallacea day ago

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.

OhMeadhbh2 days ago

[flagged]

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

nxobject2 days 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?

tjr2 days ago

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

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

altix3502 days 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).

hn-front (c) 2024 voximity
source