💾 Archived View for bbs.geminispace.org › s › ada › 22325 captured on 2024-12-17 at 15:09:04. Gemini links have been rewritten to link to archived content
-=-=-=-=-=-=-
I had a class on Ada back in college, in the late 80s. The professor didn't really know much about Ada, certainly didn't understand the rationale of the language, so it was a fairly shallow introduction, and didn't really answer the question of WHY someone would pick Ada to use over other languages. So the general impression was of a fairly verbose language with very strict typing. (Note that I live in a very rural area and didn't have access to good technical book stores, so my options for exploring Ada books were almost non-existant at the time, sadly. The Internet, with all its problems, has made this SO much better.)
But something about Ada must have made an impression on me, because every time a new Ada standard came out, I bought an Ada book covering that standard, and read it and wrote a bunch of programs playing with the language and figuring things out, starting with Norman Cohen's Ada as A Second Language 2nd Edition for Ada 95, and then John Barnes's various editions of Programming in Ada. I wrote a lot of small programs in Ada, but unfortunately didn't get to use Ada much in my professional programmming career. (Although the only time I really enjoyed programming for Windows was using Ada .)
I didn't think to search out other Ada books: introductory books and books about data structures, software engineering, real time programming, parallel programming, and embedded programming. I just bought a book that covered the most recent standard and used it. In this I think I did myself a disservice; I never really saw a lot of complete examples of Ada programs, which meant I didn't see a lot of the ways you actually use Ada to solve problems: the culture of Ada programming, much of which the language books don't really cover.
Now, of course, there are lot more examples of Ada programs on the Internet to work with, and more places to go to talk to people about Ada. But those books for older versions of Ada are still useful, because the programs on the Internet tend to be fairly large, while the programs in those books are small chunks, easier to digest, and usually have a lot more explanations. I've found that there were a lot of books published for Ada 95, for instance, that are still available, often used, and relatively inexpensively. And even the Ada 83 books are often available used, and also inexpensively. And all those books are still useful, and I've learned something new from each one.
I guess what I'm trying to say is that, especially if you are learning Ada, you can often get worthwhile Ada books inexpensively. The Ada 95 books are probably easiest to work with, since I think the changes from Ada 83 to Ada 95 were the largest (hierarchical packages and tagged records/object oriented programming, for example) and everything since then is more compatible additions than changes, but even the Ada 83 books can be useful; a lot of those programs can still be used with minor changes.
Now, the rationale documents for all the Ada standards are available online for free, and make very enlightening reading. If you are learning Ada, I think it's useful to read all the rationales starting with Ada 83, since that explains a lot of fundamentals of why Ada is the way it is. And there are a fair number of other free online resources, including the Ada Reference Manuals and HTML and sometimes PDF versions of some of the out of print books. But you can pick up a lot of good used Ada books inexpensively, and still learn useful things from them.
Nov 29 · 3 weeks ago
🐝 undefined · Nov 30 at 03:23:
Yeah, I've recently tried the language for the first time, out of sheer curiocity, and was surprised how solid it felt. Most criticism of it doesn't seem justified at all. Though it really is very verbose, it's the only language that made me install vim snippets, typing out procedure xyz ... end xyz is just ridiculous. The contract programming to me was by far the coolest thing about it though. Having whatever assertions you want be built into types and functions is very convenient.