What I've left behind, what I'm going to do

in #ada-lang7 years ago

I know I've left behind my series of “music lessons” (here the last lesson), and I promise I'll post other lessons before the end of my life (which, I hope, won't be soon) — and also I owe an apology to anybody who was waiting for the next one.

The truth is, I am self-taught and though I've tried to do music in the past — by “doing music” I mean composing, rather than playing — and I did in fact few things which were judged not too bad by people who deserve to be called musicians, I am not training and studying the matter seriously since too long: I need to catch up with my own past knowledge. I realized this while writing the ninth lesson.

Here the thing: the music lessons series will go on, but very very slowly. In the meantime I can write another sort-of lessons series on a topic I am currently more confident, and that is some kind of current fresh study, so that I can say what I already know (or what I think I already know!) about that.

The topic is in a different domain, that is, computer programming: I am going to write something about a computer programming language which is called Ada.

Ok, it isn't exactly the hot stuff of the moment, but it isn't dead anyway (last standard is Ada 2012). It isn't what they teach in many universities: I think Java is still the great player nowadays, but other languages have momentum, too — Python should be one of these. Unlikely Ada will make you be hired for your first job as a programmer…

Moreover, when compared with more common languages, especially the hot ones, Ada looks boring, cumbersome, not fancy at all… Its verbosity can kill you, and you can list other “defects” of this kind.

Nonetheless, I like Ada: it has interesting features which make it suitable for writing reliable software, and I hope to make it clear that this objective can be “fun” even when you don't need such a great reliability: let's make software we can trust also outside critical niches.

The company Adacore is one of those (few?) companies promoting Ada, and building their business on it. They give (for free) interesting materials which can wet your appetite. They also show where Ada is used and where it can shine:

and so on. As you can see, those are industries where software is critical and for this reason subject to strict processes (needed to obtain certifications) which must meet well defined criteria.

A company like Adacore sells its pro tools, but their “tool chain” is built on opensource software you can have free: the GNAT compiler, first of all. Adacore's GNAT Programming Studio has a free community version you can download and install to learn and experiment with Ada.

Adacore has many other interesting documents and articles: dig it! Other sources/links where you can find materials to study and learn Ada:

If you search you can find articles which says Ada is a dead language. I don't know if these rumors have a grain of truth, but from what I've seen I would say it isn't true. Surely it isn't Java, nor Python, nor Javascript in the invasive web we are all caught in, but yet it has qualities and tools which make it worth a try for very specific purposes.

Learning is fun, and even if you don't want to pursue a career in one of the industries where you can use Ada, still maybe you can learn from it something which will be useful for your programmer mindset.

The coming lessons are for…

I think the lessons will be for people who already know a bit about computer programming. They have already at least a bit of experience with a computer programming language, maybe with C, C++, Java, Python… They know also how to use a command line interface, at least to compile their source codes — in fact they already know what “to compile” means, and also the rest (linking and alike).

The lessons aren't about programming a computer (in Ada), but about Ada.

Moreover, likely I'm going to imply certain details, avoiding too many explicit explanations: readers have to figure them out by themselves, borrowing from their experience or checking other online learning resources. Maybe this is not the best way to teach, but I think that to learn people need to make the efforts of filling the holes looking “around them”.

Also, keep in mind I am learning with you! I am a professional programmer, but Ada is a whole new world to me too!

Why the name Ada?

Ada was named after Augusta Ada, Countess of Lovelace, because

her work on Charles Babbage's proposed mechanical general-purpose computer, the Analytical Engine. She was the first to recognise that the machine had applications beyond pure calculation, and published the first algorithm intended to be carried out by such a machine.