Required reading for everyone!
-
Surprisingly, "Just use Rust" is not the answer to all of the problems discussed in the book, just to a few of the chapters.
Was pleasantly surprised that there already were equivalents of sanitizing compilers in 2001, just not as evenly distributed as nowadays. Is there a modern coutnerpart to this book? The kind I could give to a student so that they wouldn't implement website authentication entirely in client-side JavaScript?
-
@aitap said in Required reading for everyone!:
The kind I could give to a student so that they wouldn't implement website authentication entirely in client-side JavaScript?
Nothing can prevent this. It is as inevitable as the kneeling of the warthog.
-
-
-
-
@DogsB said in Required reading for everyone!:
Come on. You saw that cover and expected the book to be good?
-
@Zerosquare I was hoping that it would be terrible. It was just bad and even worse. Dull.
-
@DogsB said in Required reading for everyone!:
@Zerosquare I was hoping that it would be terrible. It was just bad and even worse. Dull.
Would you say it was a bit of a floppy?
-
A strange book. On the one hand, its goals are very noble: teach Ada to programming novices. Most people here are probably not the target audience. There aren't many books like this; people usually start with something else and approach Ada after being scarred by C++ with its undefined behaviour and Turing-complete templates or
<insert modern language>
with its runtime errors that could have been prevented at compile time by a stronger typing system.On the other hand, the book feels... odd at times. For example, the author is very strict about never using
goto
(I guess there's less need for it in Ada than in C? e.g.goto cleanup;
in fail paths can be replaced by destructors) and almost never importing package namespaces withuse
, preferring to spell the full name of every outside function and type. Some quotes:The Current State of Software Development
To put this another way, everyone wants to try the latest Lamborghini. This is an exciting car; who would not want to drive one around town? However, when you actually get into this car, you find that while the clutch is amazing, the steering is flawed and difficult to control or it might have a very powerful engine, but that engine breaks down after driving just a few miles. As a result, while you have a very shiny tool, it is worthless if you want a very reliable and secure program.
Recursion is when a function (or procedure) keeps calling itself over and over until a specific condition has been met to stop it. It is similar to that of a loop.
type Custom_Float is delta 0.001 range -1.0 .. 1.0;
This is the specification for the custom float type.(Note that numbers with a given
delta
are fixed-point, not floating point.)Perhaps the things I didn't like were knowingly oversimplified for the sake of teaching programming novices. Maybe with another editing pass it would have been a better book, especially closer to the end, where instances of code not formatted as such in the middle of paragraphs start showing up. I realised that I sometimes sound like this book when I'm tired and trying to explain too much at the same time to a student.
I liked this book a lot. It has lots of relevant comparisons with other languages ("Packages look similar to, but are semantically very different from, header files in C/C++"; "Ada's variant records are very similar to Sum types in functional languages such as OCaml or Haskell"; "Hashed maps are similar to dictionaries in Python and hashes in Perl.") and teaches the language approximately the same way I learned the other languages. The progression from imperative language constructs to subprograms, modules, type shenanigans, followed by advanced or Ada-specific concepts like tasks, contracts and interoperability with C feels very natural.
In the end, neither book mentions Unicode support, which (at least in
gnat
) requires some non-default options to the compiler in order to work with anything other than Latin-1. That has to be learned elsewhere.
-
Do you have a specific reason for learning Ada, or is it just curiosity?
-
@Zerosquare said in Required reading for everyone!:
Do you have a specific reason for learning Ada, or is it just curiosity?
You should know that's not gonna get an answer - if it's not for [REDACTED] the only reason is masochism unable to be satisfied by even the most severe corporeal means.
-
@Zerosquare said in Required reading for everyone!:
Do you have a specific reason for learning Ada, or is it just morbid curiosity?
-
@Zerosquare said in Required reading for everyone!:
a specific reason for learning Ada
Mostly just curiosity. Have been writing too much R (where the errors are runtime) and seen too much Rust propaganda and decided to see if there's other languages where static type safety is a cornerstone. The previous book may have played a role too.
Also signed up for a microcontroller course where the chips are sufficiently beefy (STM32) for Ada to be useful; maybe I can do the course project in it.
-
-
@HardwareGeek said in Required reading for everyone!:
@Zerosquare said in Required reading for everyone!:
Do you have a specific reason for learning Ada, or is it just morbid curiosity?
Hence my question. Ada is pretty much the opposite of the "hey, looks fun, I should try it" languages. Or at least it's the reputation it has.
-
@Zerosquare said in Required reading for everyone!:
Ada is pretty much the opposite of the "hey, looks fun, I should try it" languages. Or at least it's the reputation it has.
Now I want to try it, damn it.
-
A Dadaist Affliction
-
@DogsB said in Required reading for everyone!:
I met a man who spent seven years in the woods, studying his introductory calculus book, because he decided he wanted to understand every sentence and equation in it. I call him The Math Hermit.
-
@DogsB said in Required reading for everyone!:
@MrL said in Required reading for everyone!:
Does it even mention the psychoactive effects?
-
-
-
-
-
-
@DogsB said in Required reading for everyone!:
@Zerosquare I was hoping that it would be terrible. It was just bad and even worse. Dull.
you should have asked me, that writer is a lying scumbag, he made that all up, I should sue them
-
-
:nope:
-
Let me suggest 2 books by Richard Feynman (yes, that crazy physics guy). I read them in german translation many many years ago. And I am sure they are still worth reading nowadays:
Surely You're Joking, Mr. Feynman!: Adventures of a Curious Character
What Do You Care What Other People Think: Further Adventures of a Curious Character
-
@BernieTheBernie they were good, I agree. I suppose he stopped writing when he had that rib removed.
-
-
-
-
-
@DogsB well I see y'all dimly realize it's coming but you've woefully underestimated the impact again
-
@jinpa said in Required reading for everyone!:
@DogsB said in Required reading for everyone!:
@MrL said in Required reading for everyone!:
Does it even mention the psychoactive effects?
If it has no psychoactive effects it wouldn't be a book.
-
-
-
-
-
@MrL said in Required reading for everyone!:
@DogsB said in Required reading for everyone!:
Not good, or sad that it's over?
Sad that itβs over and disappointing ending. It wasnβt bad but he could have went out with a bang. The beginning of the book is a bit dull. Probably would be better on tv. Picked up in the middle but the humdinger of an ending doesnβt come.
Good series over all though. If he comes back to the universe Iβll pick it up.
-
@DogsB said in Required reading for everyone!:
Good series over all though. If he comes back to the universe Iβll pick it up.
Them
-
-
-
@DogsB but look at all the incongruent symbolism on the cover!
-
-
-
-
-
-
@DogsB Priestley was a very good author. I remember enjoying The Good Companions a lot years ago.