# Favourite books about Ada/Spark

**URL:** https://forum.ada-lang.io/t/favourite-books-about-ada-spark/80
**Category:** General
**Created:** [October 16, 2022, 6:35pm UTC](https://forum.ada-lang.io/t/favourite-books-about-ada-spark/80 "2022-10-16T18:35:59Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![kevlar700](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/kevlar700/32/40_2.png) [@kevlar700](https://forum.ada-lang.io/u/kevlar700)
#### Post date: [October 16, 2022, 6:35pm UTC](https://forum.ada-lang.io/t/favourite-books-about-ada-spark/80/1 "2022-10-16T18:35:59Z")

</div>

> **[Ada Reference Manual](http://www.ada-auth.org/arm.html)**
>
> Home for the Ada Reference Manual

Programming in Ada 20xx by John Barnes  
Ada Distilled by Richard Riehle

> **[“learn.adacore.com"](https://learn.adacore.com)**
>
> An interactive learning platform to teach the Ada and SPARK programming languages.

> **[Commercial software solutions for Ada, C and C++](https://www.adacore.com/books)**
>
> AdaCore is the leading provider of commercial software solutions for Ada, C and C++ — helping developers build safe and secure software that matters.

[https://en.m.wikibooks.org/wiki/Ada\_Programming](https://en.m.wikibooks.org/wiki/Ada_Programming)

Please list any favourites or references that you personally turn to?

---

<div class="post-metadata">

### Author: ![pyj](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/pyj/32/5_2.png) [@pyj](https://forum.ada-lang.io/u/pyj)
#### Post date: [October 16, 2022, 9:08pm UTC](https://forum.ada-lang.io/t/favourite-books-about-ada-spark/80/2 "2022-10-16T21:08:49Z")

</div>

I don’t know about you, but I really like [ada-lang.io](http://ada-lang.io) 🙂

---

<div class="post-metadata">

### Author: ![OPi](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/opi/32/31_2.png) [@OPi](https://forum.ada-lang.io/u/OPi)
#### Post date: [October 16, 2022, 9:14pm UTC](https://forum.ada-lang.io/t/favourite-books-about-ada-spark/80/3 "2022-10-16T21:14:19Z")

</div>

Here my personal bookmarks:  
[http://www.opimedia.be/DS/Ada/](http://www.opimedia.be/DS/Ada/)

---

<div class="post-metadata">

### Author: ![codeTripr](https://forum.ada-lang.io/letter_avatar_proxy/v4/letter/c/7ea924/32.png) [@codeTripr](https://forum.ada-lang.io/u/codeTripr)
#### Post date: [October 17, 2022, 9:51am UTC](https://forum.ada-lang.io/t/favourite-books-about-ada-spark/80/4 "2022-10-17T09:51:56Z")

</div>

That’s a quite useful linkfarm. Though I have to say some links point to access restricted walled gardens like adaic·org¹. I suggest prefixing adaic URLs with `https://web.archive.org/web/` so the page is world-viewable to all comers.

1. adaic is a siteground site that blocks some visitors with “Our system thinks you might be a robot!” This makes that link unsuitable for sharing outside of the siteground walled garden.

To answer the OP, Ada as a Second Language by Cohen has to be my top pick.

---

<div class="post-metadata">

### Author: ![kevlar700](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/kevlar700/32/40_2.png) [@kevlar700](https://forum.ada-lang.io/u/kevlar700)
#### Post date: [October 19, 2022, 10:58am UTC](https://forum.ada-lang.io/t/favourite-books-about-ada-spark/80/5 "2022-10-19T10:58:35Z")

</div>

Thanks  
I haven’t read any of these but came across them whilst looking for an Ada book specifically about microprocessors, which they are not ha ha.

> **[12 Excellent Free Books to Learn Ada - LinuxLinks](https://www.linuxlinks.com/excellent-free-books-learn-ada/)**
>
> Ada is a structured, statically typed, imperative, wide-spectrum, multi-paradigm, object-oriented high-level, ALGOL-like programming language.

---

<div class="post-metadata">

### Author: ![kevlar700](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/kevlar700/32/40_2.png) [@kevlar700](https://forum.ada-lang.io/u/kevlar700)
#### Post date: [October 26, 2022, 11:51pm UTC](https://forum.ada-lang.io/t/favourite-books-about-ada-spark/80/6 "2022-10-26T23:51:29Z")

</div>

> [@codeTripr](#):
>
> To answer the OP, Ada as a Second Language by Cohen has to be my top pick.

Thank You. That book is very useful.

---

<div class="post-metadata">

### Author: ![cantanima](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/cantanima/32/121_2.png) [@cantanima](https://forum.ada-lang.io/u/cantanima)
#### Post date: [September 21, 2024, 11:46pm UTC](https://forum.ada-lang.io/t/favourite-books-about-ada-spark/80/7 "2024-09-21T23:46:31Z")

</div>

![image](https://forum.ada-lang.io/uploads/default/original/1X/73f55a78b28fe6b6bd71a411fe23d482cbf9de9b.jpeg)  
For some reason I thought I’d read that Barnes wasn’t writing a new edition of his excellent book for Ada 2022. Very glad to see I was wrong.

---

<div class="post-metadata">

### Author: ![DirkCraeynest](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/dirkcraeynest/32/94_2.png) [@DirkCraeynest](https://forum.ada-lang.io/u/DirkCraeynest)
#### Post date: [September 24, 2024, 7:31am UTC](https://forum.ada-lang.io/t/favourite-books-about-ada-spark/80/8 "2024-09-24T07:31:23Z")

</div>

And if you’re a member of Ada-Europe, you can order John’s new book with a significant discount… (I don’t have the details handy now, info was handed out at the recent Ada-Europe conference in Barcelona.)

---

<div class="post-metadata">

### Author: ![alexispaez](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/alexispaez/32/920_2.png) [@alexispaez](https://forum.ada-lang.io/u/alexispaez)
#### Post date: [September 24, 2024, 7:58am UTC](https://forum.ada-lang.io/t/favourite-books-about-ada-spark/80/9 "2024-09-24T07:58:18Z")

</div>

Woah! Really? I requested to be added as a member of Ada-Spain a few months ago, which I think will also make me a member of Ada-Europe. Do you know how can you get this discount?

Incidentally, I have this book on pre-order on Amazon since about June, but the delivery date keeps sliding… last I saw it was October 7th. Now its going to be November?? 😅

---

<div class="post-metadata">

### Author: ![ptihanyi](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/ptihanyi/32/736_2.png) [@ptihanyi](https://forum.ada-lang.io/u/ptihanyi)
#### Post date: [September 24, 2024, 11:39am UTC](https://forum.ada-lang.io/t/favourite-books-about-ada-spark/80/10 "2024-09-24T11:39:47Z")

</div>

Maybe this topic is not the most suitable for the question: what happened to [www.ada-auth.org](http://www.ada-auth.org)? It has not been available for some time (from Hungary).  
It is not available from a browser, it just waits, even with wget it just waits for connection.  
Another interesting thing is that the main page of [www.adaic.org](http://www.adaic.org) also loads incorrectly: a completely blank page with a gray bar at the top. Someone mentioned here earlier that this is a siteground page. What exactly does this mean?  
Are there any access restrictions to these websites?

---

<div class="post-metadata">

### Author: ![Irvise](https://forum.ada-lang.io/letter_avatar_proxy/v4/letter/i/7ba0ec/32.png) [@Irvise](https://forum.ada-lang.io/u/Irvise)
#### Post date: [September 24, 2024, 8:15pm UTC](https://forum.ada-lang.io/t/favourite-books-about-ada-spark/80/11 "2024-09-24T20:15:11Z")

</div>

AFAIK the webmasters of both pages have already been contacted 🙂

---

<div class="post-metadata">

### Author: ![ptihanyi](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/ptihanyi/32/736_2.png) [@ptihanyi](https://forum.ada-lang.io/u/ptihanyi)
#### Post date: [September 24, 2024, 8:51pm UTC](https://forum.ada-lang.io/t/favourite-books-about-ada-spark/80/12 "2024-09-24T20:51:05Z")

</div>

Thanks for the info! Good to know it’s not a local problem.

---

<div class="post-metadata">

### Author: ![kevlar700](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/kevlar700/32/40_2.png) [@kevlar700](https://forum.ada-lang.io/u/kevlar700)
#### Post date: [September 24, 2024, 10:34pm UTC](https://forum.ada-lang.io/t/favourite-books-about-ada-spark/80/13 "2024-09-24T22:34:01Z")

</div>

Will John Barnes new version cover upcoming features like parallel or just the released features 🤔

---

<div class="post-metadata">

### Author: ![cantanima](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/cantanima/32/121_2.png) [@cantanima](https://forum.ada-lang.io/u/cantanima)
#### Post date: [September 25, 2024, 1:48am UTC](https://forum.ada-lang.io/t/favourite-books-about-ada-spark/80/14 "2024-09-25T01:48:29Z")

</div>

From [the description](https://www.cambridge.org/core/books/programming-in-ada-2022/144FA52E3F0C1F260CBF9DECD10A68C9#):

> The latest version of ‘Programming in Ada’ covers the full details of the core language Ada 2022 as approved by ISO in 2023, including new features that aid program proof **and the efficient use of multicore architectures**. The book is arranged in four parts. The first part introduces the key ideas to the newcomer with a working example illustrating the basic ideas. The algorithmic features, structural features such as OOP and multitasking, and details of the standard library and interaction with the external environment are all covered in subsequent parts. This comprehensive guide includes several working examples and is enhanced by a range of supplementary online materials, including a dozen complete executable programs, five of which illustrate important new features. ‘Programming in Ada’ is a must-have for anyone looking to learn Ada programming language, and will serve as a definitive reference for years to come.

Sorry I didn’t include a link earlier. I thought I had.

---

<div class="post-metadata">

### Author: ![evanescente-ondine](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/evanescente-ondine/32/451_2.png) [@evanescente-ondine](https://forum.ada-lang.io/u/evanescente-ondine)
#### Post date: [December 17, 2024, 5:01pm UTC](https://forum.ada-lang.io/t/favourite-books-about-ada-spark/80/15 "2024-12-17T17:01:31Z")

</div>

What do you all think of _Ada for software engineers_ by Ben Ari ? I have it, it seems very thorough and all, but the very first program I compiled from its sourcecode, dot2dot, a graphviz format reader, is defectuous. Compiling but failing to display elementary graphs.  
I was written in Ada2005, with some things annoying a 2022 norm. If the book is worth it, I was wondering if we could update its code exemples, make it work again as intended ? But it’s honestly above my paygrade, grammar errors is one thing, but complex errors, no.  
or shall I keep with Barnes book ?

---

<div class="post-metadata">

### Author: ![pmnw](https://forum.ada-lang.io/letter_avatar_proxy/v4/letter/p/c37758/32.png) [@pmnw](https://forum.ada-lang.io/u/pmnw)
#### Post date: [December 19, 2024, 3:22pm UTC](https://forum.ada-lang.io/t/favourite-books-about-ada-spark/80/16 "2024-12-19T15:22:17Z")

</div>

I started reading Ben-Ari’s _Ada for Software Engineers_ it and got a few good chapters into it (it’s waiting on the shelf for now).

The book’s strength seemed to be that it treats you as a serious person - from the start, you are shown non-trivial code and asked to write non-fizzbuzz programs.

The weakness, as you noticed, is that there may are issues with the program code available on the publisher’s website, as well as discrepancies between the code and the book. For example, the first interesting problem of filling and justifying text appears in Chapter 4. You are thrown straight into dealing with Ada Strings (an interesting choice) and the code in the book or on the website (or both, I don’t remember which), does more than is discussed in text (namely, does some additional framing). The quality/readability of that early code was subpar in my opinion - it was too complicated and not what I would ever write if I wanted maintainability.

Given the serious nature of the projects the reader is asked to analyze or write - I remember writing some array algorithms for image processing and a quaternions library - I think the book is worth spending time with.  
The caveat is that the book treats its reader as a software engineer and expects them to act like one; if a project is asking you to write quaternions code, and you don’t know quaternion mathematics, you will have to spend some time with a book on quaternions (like I did).

I also note that while I think the book is nice, I would never pay the price the notorious Springer racket is asking for it. Borrow it from a library.

---

<div class="post-metadata">

### Author: ![JC001](https://forum.ada-lang.io/letter_avatar_proxy/v4/letter/j/e56c9b/32.png) [@JC001](https://forum.ada-lang.io/u/JC001)
#### Post date: [December 19, 2024, 7:34pm UTC](https://forum.ada-lang.io/t/favourite-books-about-ada-spark/80/17 "2024-12-19T19:34:40Z")

</div>

> [@pmnw](#):
>
> I also note that while I think the book is nice, I would never pay the price the notorious Springer racket is asking

There’s a PDF [here](https://webpages.charlotte.edu/rbunescu/courses/ou/cs3200/ase.pdf), with the caveat

> You may download, display and print one copy for your personal use in non-commercial academic research and teaching. Instructors in non-commerical academic institutions may make one copy  
> for each student in his/her class. All other rights reserved. In particular, posting this document on  
> web sites is prohibited without the express permission of the author.

So if that applies to people, they can obtain a free copy.

(You have to display the document to read that, so I presume that displaying the file in order to read that is OK.)

---

<div class="post-metadata">

### Author: ![evanescente-ondine](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/evanescente-ondine/32/451_2.png) [@evanescente-ondine](https://forum.ada-lang.io/u/evanescente-ondine)
#### Post date: [December 19, 2024, 10:58pm UTC](https://forum.ada-lang.io/t/favourite-books-about-ada-spark/80/18 "2024-12-19T22:58:24Z")

</div>

I can try and code anything if the instructions are clear…He rather goes like “so you gotta something like that somewhat like this, somehow.”. An exemple:

> One way of implementing a text editor is to use an array, storing the characters in front of the cursor at the beginning of the array and the characters after the cursor at the end of the array. Define an appropriate data structure using a discriminated record and implement the relevant operations on the data structure.

What does it mean ? Shall I code an entire text editor complete with TUI ? That’s a hella lot more than storing a string. Do I get one line at time from a file ? Then I don’t see what the discriminant is meant for. The readability does not improve later. Which sucks when you’re meant to **learn** from it.

---

<div class="post-metadata">

### Author: ![pmnw](https://forum.ada-lang.io/letter_avatar_proxy/v4/letter/p/c37758/32.png) [@pmnw](https://forum.ada-lang.io/u/pmnw)
#### Post date: [December 20, 2024, 12:22am UTC](https://forum.ada-lang.io/t/favourite-books-about-ada-spark/80/19 "2024-12-20T00:22:39Z")

</div>

I haven’t read that chapter so I can’t comment on how appropriate this exercise is, but it appears straightforward even without that context:

1. The text does not ask for a complete text editor. It only talks about the underlying data structure which is the essence of a text editor (and most programs).
2. It comments on how you can do it - using an array of characters.
3. The proposal is to store all characters in contiguous memory and treat the cursor as an iterator.
4. It tells you to use a discriminated record - perhaps the discriminant is the buffer/array size?
5. Relevant text editor operations - read into buffer, find, insert, erase, save to file?

I exercised certain autonomy and imagination and made a number of assumptions above that may be incorrect. That doesn’t matter because the drill is not to reinvent _vi_ but to practice working with arrays or records or whatever this chapter is about.

---

<div class="post-metadata">

### Author: ![evanescente-ondine](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/evanescente-ondine/32/451_2.png) [@evanescente-ondine](https://forum.ada-lang.io/u/evanescente-ondine)
#### Post date: [December 22, 2024, 5:26pm UTC](https://forum.ada-lang.io/t/favourite-books-about-ada-spark/80/21 "2024-12-22T17:26:14Z")

</div>

Usually, I end up giving up understanding someone’s code if it’s not properly commented beyond the obvious (“here is the text buffer variable”: NO SHIT as if the name wasn’t explicit enough !), and implementing the task from the ground on my own. No better way to learn I guess.

[Next page](https://forum.ada-lang.io/t/favourite-books-about-ada-spark/80.md?page=2)
