Hacker News new | ask | show | jobs
by mithaler 5496 days ago
I hadn't known much about Ada other than that it's very old (as programming languages go) and it has a kind of nonspecific bad reputation, but I looked it up on Wikipedia and it actually doesn't look like an unpleasant language at all from the article. I particularly like its built-in message-passing system for concurrency: http://en.wikipedia.org/wiki/Ada_(programming_language)#Conc...

On projects like this I would worry more about accumulated technical debt from decades of modification than the language they're written in. (I suppose the language can complicate the task of hiring programmers who are skilled with its idiosyncrasies, but that's hardly an insurmountable or crippling problem.)

2 comments

From my defense software experience with Ada 83 and Ada 95, Ada's concurrency features made it much easier to work with than C. Tasks/processes were a top-level feature of the language, like classes in Java, and the "protected" keyword functioned somewhat like "synchronized" in Java (an implementation of the monitor pattern).

Our compiler package also came with an extensive concurrency API that offered a variety of threadsafe containers comparable (again) to java.concurrent - and this was software from the late 80s/early 90s!

What was bad about Ada was Ada 95. It strove to make Ada into an object-oriented language, but did a poor job of it with some very tortured syntax. edit what Masklinn said - "bolted on" is a perfect way to put it.

There are many nice ideas in Ada, but I have two big issues with it:

1. It's a very lawyery language, there are very few things the compiler will accept to infer, which makes Ada tedious to read and write.

2. The strange mix of underscores and uppercases that is the normal Ada writing style (I believe Ada identifiers are case-insensitive, code from the 80s tends to be VERY_UPPERCASE_HEAVY while the same code now Tends_To_Be_Strangely_Capitalized) makes my head hurt.

And since this is avionics, they're probably dealing with embedded code (which tends to be even less readable) as well...

And as totalc notes, the OO additions of Ada 95 (if you have access to them) feel very bolted on and unnatural.