
Who's Using Ada? Real-World Projects Powered by the Ada Programming Language - dodders
http://www.seas.gwu.edu/~mfeldman/ada-project-summary.html
======
acomjean
A lot of radar systems run on Ada. Its takes a little getting used to, but its
a good language.

Ada has a c binding package so it can call down to the OS libraries
(networking, shared memory), which is great, but kills some of the niceness of
living in an ada world.

When I was trying out GO, I got a little ada flashback for some reason.

The package system was good.

I disliked ada strings though.

When I left the industry, they were looking for alernative languages for new
projects. GCC Ada compiler was being considered for maintaining older
projects, seemed decent. [http://libre.adacore.com/tools/gnat-gpl-
edition/](http://libre.adacore.com/tools/gnat-gpl-edition/)

~~~
zild3d
Yep, the Aegis Combat System is almost all in Ada (but simulated and developed
mostly in C++ and Matlab)

[http://en.wikipedia.org/wiki/Aegis_Combat_System](http://en.wikipedia.org/wiki/Aegis_Combat_System)

------
thejteam
Although I've never coded in Ada I have had to read existing code to figure
out what it was doing.

Ada struck me as a language that would be a pain to write in(at least it would
take a long time) but it was a pleasure to read. Even without an intimate
knowledge of the language (I was a C++ guy) I was able to figure it out.

~~~
nabla9
Alternative to Ada is often writing Ada in some other language more painfully
:( I think it's sad that companies move to restricted C/C++ subset just
because there are more people with C/C++ in their resume.

1\. The JSF air vehicle C++ coding standards [http://www.stroustrup.com/JSF-
AV-rules.pdf](http://www.stroustrup.com/JSF-AV-rules.pdf)

2\. MISRA-C:2004 Guidelines for the use of the C language in critical systems
[http://caxapa.ru/thumbs/468328/misra-c-2004.pdf](http://caxapa.ru/thumbs/468328/misra-c-2004.pdf)

3\. MISRA C++:2008 Guidelines for the use of the C++ language in critical
systems [http://frey.notk.org/books/MISRA-
Cpp-2008.pdf](http://frey.notk.org/books/MISRA-Cpp-2008.pdf)

~~~
pjmlp
I have been visiting FOSDEM every few years and Ada presence in Europe has
been slowly rising.

Just check the archives.

Most likely because for writing fail safe software, it is better to use a
language with built in support for safety, than using crutches.

~~~
tormeh
That's really encouraging! The C++/Java/Python monoculture coming out of
schools suck.

------
reledi
I would have enjoyed seeing a list like this in university where we had the
option to learn Ada for a software engineering course.

Ada was mandated to be used for military applications but became largely
irrelevant for commercial applications. It's now considered a white elephant
[1] by many.

1:
[http://en.wikipedia.org/wiki/White_elephant](http://en.wikipedia.org/wiki/White_elephant)

~~~
krylon
To my knowledge, Ada is used in embedded/realtime systems where reliablity is
of the utmost importance. The European Ariane rockets have code written in Ada
on board, I think (these are civilian rockets, not military). There is a
subset of Ada called Spark that allows - to a degree - automated verification
of code.

Not saying I like it or anything like that, but it definitely has its place.

~~~
reledi
For sure. This "Who's Using Ada?" list that was posted gives a good overview
for what kind of applications it's used for. You'll see many where lives are
on the line (be it for good or bad).

------
arthursilva
Ada is a language that deserves more love.

~~~
agumonkey
Beside being intimidating and having few syntax curiosity (' as string index
operator) it really is a nice language.

~~~
_kst_
Hmm? Ada uses the apostrophe for character literals and to introduce
attributes. Strings are arrays; indexing uses the same `array[index]` syntax
as any other array.

    
    
        S: constant String := "Hello";
        H: constant Character := S(1);

~~~
agumonkey
True, I was thinking about type conversion from String to Character, IIRC you
have to use ' operator, something like my_string'first (not sure, I needed it
10 years ago), otherwise my_string(1) gives a String of length one, not the
first Character.

~~~
attackcrow
Depends on how the array is defined. Ada allows you to have any discrete type
as your array indices, so to get the first element of an array, you need to
use my_string(my_string'first).

------
sushdb
Ada was used on some of the modules on India's Mars mission:
[http://www.reddit.com/r/india/comments/1ujcmo/we_are_three_i...](http://www.reddit.com/r/india/comments/1ujcmo/we_are_three_isro_scientists_here_to_answer_your/)

------
kevin_thibedeau
The attribute mechanism is something a lot of languages would benefit from.
Need to know the maximum value of an integer? Just ask the integer type to
tell you. No going to a library to look up inscrutable constants.

~~~
cjensen
C++:

    
    
      numeric_limits<type>::max ()

~~~
kevin_thibedeau
Ada attribute provide a lot more meta information about types and objects than
just integer limits.

[http://en.wikibooks.org/wiki/Ada_Programming/Attributes](http://en.wikibooks.org/wiki/Ada_Programming/Attributes)

Some of these would be methods in modern OO languages but many are unique to
Ada.

~~~
cjensen
So does C++; both C++ and Ada have traits the other doesn't. Good ideas go
around.

------
bglazer
This is certainly an impressive list of projects. Ada seems to be favored for
critical software that can't ever fail. I've been considering how to achieve
this type of software reliability for more "enterprisey" applications.
Formally verifiable languages are certainly intriguing, but would be a hard
sell for the managers at the Fortune 100 company where I work.

Reading the wikipedia page for Ada didn't really give much insight into why
the language is so heavily favored for applications like avionics software.
Built in task based concurrency is certainly nice, but not a game-changer. Can
someone more familiar with Ada explain what makes it so popular for high
reliability applications?

Or is it a question of culture and tooling rather than the language itself?

~~~
acomjean
It has a lot of safety checks built into the runtime, which make it a little
slower.

x is and int between 1 and 200.

x gets asigned out of that range, exception is thrown. So we weren't manually
checking everything.

Also I think it was mandated as a language for US government contracts, for a
variety of reasons.

~~~
RogerL
As with asserts in C, you can compile with that turned on or off.

------
imgabe
Wow, I went to GW and learned Ada in CS051. I didn't have much of a point of
reference at the time to compare it to other languages, but it was pretty easy
to learn and I enjoyed the class.

~~~
ahi
I am class of 05 so my intro class was the last one to use ada. I also
remember it being very easy on beginners. At the time I was annoyed the
underclassmen got java, but now that I know java, no thank you.

------
circlefavshape
I used Ada on my first coding job - test scripts for Airbus engines back in
the mid-90s. Nice to see they're still using Ada, though tbh I don't remember
a single thing about the language except for you can't dynamically create
objects

~~~
baldgeek
Ada used to be basis for CS Curriculm at Cal Poly Pomona (Circa '92- '98). Ada
teaches good practice. One prominent feature is that there is no implicit
casting; Add a float and int, you get a compile error. It's good to know that
you have to do exactly what you want and the compiler enforces this.

~~~
henderson101
ADA at university - never touched it again. It was ADA 83, and the ADA 95
object extensions looked horrible.

I remember seeing PL/SQL circa Oracle 8i and it looking a lot like ADA.

~~~
jacques_chester
> _I remember seeing PL /SQL circa Oracle 8i and it looking a lot like ADA._

Not a coincidence. The designers of PL/SQL were largely inspired by Ada's
basic syntax and structure.

It's not an acronym, by the way, so no need to all-caps it.

------
meej
Nice list. I programmed in Ada for eight months in 1997 when I was on a co-op
at Rockwell Collins, working on their simulation testbed for their general
aviation flight management systems -- I recognize several of the planes listed
in the Commercial Aviation section.

I ended up really enjoying programming in Ada and was unhappy about having to
return to C++ when I went back to school that fall. It was a bit more work to
write, but it was easy to read and when it compiled it usually did what you
expected it to. It's a language that makes it difficult for you to shoot
yourself in the foot.

------
zerr
I'd love to hear about remote Ada jobs, and not requiring US citizenship...

~~~
bitwize
Europe loves it some Ada in the avionics space.

~~~
zerr
Yes, but in those types of organizations remote jobs aren't really encouraged.

~~~
HeyLaughingBoy
Though it would be cool if you could SSH into an A320 flight management
computer from your apartment :-)

~~~
zerr
Or they could borrow me one for some time... :)

------
okatsu
As a college student, is Ada still worth learning for (Canadian) development
jobs in critical systems? I'd like to think it would give me an edge coming
out of school, but I keep reading that new applications are being written in
C/C++.

Edit: In fact, I interned at an avionics company and they're slowly trying to
entirely switch to model-based development, using certified software that
generates the code for you.

------
mtimjones
I worked on two geosynchronous communication satellites built on Ada (late
1980s using the TLD compiler). Both had a maximum of 48KB of ROM and 16KB of
RAM. That included attitude control, command, telemetry, thermal/power
management, fault manager, and little OS.

Since then, I've done pretty much nothing but C, but I do miss Ada's features
from time to time.

------
Igglyboo
Ada is still extremely popular in mission critical software. I know the US
military and NASA use it a lot.

------
dugmartin
We used Ada in my software engineering class in 1992 to _try_ to build a
system to do route finding on a map and then generate directions. Each build
took 40 to 50 minutes on a pretty nice PC at the time. I don't miss those
days.

~~~
tormeh
Wrong tool for the job. I would do that in Python.

~~~
iak8god
Not in 1992 you wouldn't.

This is a strange thing to say without explaining anyway. Would you care to
expand on your point? I would expect Ada to run orders of magnitude faster
than Python for a task like this.

~~~
tormeh
I think that when you are doing exploratory programming and you're not quite
sure about what you're doing you should have a language that gets out of the
way as much as possible, which Python does. Ada and other bondage languages
are for when correctness is most important or you need structure because you
know the codebase will become large.

~~~
iak8god
> I think that when you are doing exploratory programming and you're not quite
> sure about what you're doing you should have a language that gets out of the
> way as much as possible, which Python does.

I agree with this, but am not sure it's on point. Every software engineering
class I've heard of is about as far as you can get from exploratory
programming.

------
foogered
I used Ada during my first internship (avionics software). However, the group
I was part of was in the middle of phasing out Ada in favor of C/C++. This was
around 2010-2012.

~~~
anderspitman
Similar for me. My first ever programming assignment for a real company was
converting an Ada project to C for the Boeing 787.

~~~
claystu
How was your feeling about the C codebase compared to Ada? Did one feel more
comprehensible or reliable than the other?

------
callmeed
Ada was my first language in college. At JC, our professors were DoD
contractors at the nearby Air Force Base. Good times.

