Reddit Reddit reviews Ada 95 from the Beginning (3rd Edition)

We found 1 Reddit comments about Ada 95 from the Beginning (3rd Edition). Here are the top ones, ranked by their Reddit score.

Computers & Technology
Books
Computer Software
Ada 95 from the Beginning (3rd Edition)
Check price on Amazon

1 Reddit comment about Ada 95 from the Beginning (3rd Edition):

u/Lucretia9 ยท 1 pointr/Compilers

> Be honest. The type system, and generics are difficult at first. It took some months for that stuff to all click into place.

I learnt it at uni, there was no mention of generics, that I remember. Just using them to instantiate things like Unchecked_Deallocation. It was quite a good way to learn it. I only got more heavily involved with Ada when I left my programming job. The we used at uni was Jan Skansholm which is a nice easy intro to the language, we used the second edition which was Ada9X at the time.

> Ada also has a different programming dictionary. Things like limited/unlimited, tagged, abstract/concrete, discriminante, subtypes, and others were things that either were different in other languages, or I'd never heard of excpet in Ada. It's a language with a long digestion period.

Limited is still more powerful than other languages equivalents, which many don't have. Having a hide a constructor is a pain and can be worked around, limited cannot, therefore you can't abuse it like you can in C++.

Tagged is the a generic term for classes, all languages have the concept of a tag, it's just spelt out and not hidden in Ada. How do you think C++ determines which class is derived from another class? It's with a tag, a value stored in the class. Anyone who has done low level programming with C++ should know or at least have a clue about what goes into a C++ class, a tag and a vtable, then there are non-virtual member functions which take a pointer to the class as an implicit first parameter, this.

Abstract most will (should) have come across with pure virtual functions in classes.

Discriminants are not unique to Ada, anybody whose done a bit of Pascal will have come across them, they're also more structured than the equivalent struct/union.

Subtyping is not exactly unique to Ada, most OO languages have subtyping by extension/derivation, but subtyping primitive types is, I've not seen this anywhere else, same for strong typing of primitive types, same for fixed point types. The fact you cannot define a range in all other languages (without using templates) is one of the reasons there are so many errors in software.

Wrap around in modular types still impresses me now, no other language has that either (without using templates).

Printing the name of an enumeration is easy too, you can also read and write these names and convert to/from the enumeration values easily. In other languages you have to build the name table yourself and then write the conversions and the i/o code for each enum you want to do this with, how much work is that?

Then you can use all these ranges/enums as array bounds, doesn't even have to start at 0!

You do need to build up your knowledge bit by bit, but that's the same with all languages, it's just those languages have less to them and therefore (perceived to be) "easier" to learn.

It's got it's issues and it's showing it's age in certain parts, but it's got some good stuff in it and has some good stuff coming to 202x including parallel blocks for fine grained parallelism alongside it's (slightly) heavier tasking model (which other languages still don't have).

A new language for me has to have what Ada has and more, there just isn't any.