Elements of Programming
elementsofprogramming.com
elementsofprogramming.com
"Efficient Programming with Components" - https://www.youtube.com/playlist?list=PLHxtyCq_WDLXryyw91lah...
"Programming Conversations" - https://www.youtube.com/playlist?list=PLGvfHSgImk4Y1thqJLpcS...
I warn you though, this is a philosophical and painstakingly detailed intro in to this way of thinking that takes an entire series of videos to build up a single algorithm, in C++, bit by bit, episode by episode. It also happens to be one of my favorite lecture series.
I'm also fairly experienced, having spent the last 30 years or so writing code. Every kind of code you can think of in any language. Which means I'm fairly used to juggling abstractions.
But I just couldn't crack this one, I lack the motivation needed to work this elevation for extended periods of time. I need some kind of real-world connection now and then to make sure what I'm learning is at all useful.
I got the book when it just came out, and haven't tried since, but I'm pretty sure the problem persists. I have even less patience with academic abstractionitis these days.
I would be very interested to learn how and why people find the information contained in the book useful.
Its one of the few books that are sitting on my shelf waiting for the day I give it another go, but I really doubt that day is coming.
Its amazing how well gmail works, instantly finding emails from ten years ago.
It's worth reading, you will get something out of it! But it is a lot of work!
Do you mind maybe explain how you were able to communicative and associative props to avoid using semaphores/mutex?
There seems to be a lot of complaints here about the formality of it all. My preference is usually for more formal literature, just because it tends to lend for a more powerful tool for me. With that said, did you find it to be too formal?
A typical approach is if you can divide your algo into map/reduce, you can do this. Going back to the properties of you computation allows you to reason how to apply something like map/reduce.
As someone who’s largely self taught, I was fascinated by the concepts around modeling the complete input and output space of a program, and being able to fully reason about its correctness. I also liked the elegance of some of the approaches.
I guess overall I’d say that it’s a nice way to stretch out of the comfort zone, and think about programming in a different way than a lot of us learned.
i have had elements of programming on my wishlist for a while and saw the price skyrocketed on amazon. the book is being sold used for $200+ on amazon right now. i am just going to get the lulu paperback because that's a steal right now. big fan of Alexander Stepanov.
And I'd never heard about From Mathematics to Generic Programming. I'm definitely going to check it out! It seems like a really cool book.
“John: ... How — and please be brutally honest — would you contrast your experiences of co-authoring a book with Dan versus Paul?
“Alex: The goals of the books were quite different. Both books have their place.
“Paul convinced me that it is essential to write a very formal treatise in order to unambiguously define the foundations of generic programming. He thought that the conversational style of my lectures undermines the seriousness of the subject. I agree with him. We wrote a very terse, but — in my opinion — elegant book. Some people appreciate it; but it is clearly not for everyone. I am very grateful to Paul. He is and will always remain my close friend. I would gladly collaborate with him on another book.
“Dan had a different idea. He thought that what was needed was a more accessible book, and I agree with him as well. And he led the work in such a direction. I would love to collaborate with him on another book as well.”
In this video, Sean Parent, at the time working at Adobe on Photoshop, estimated that if PS codebase followed ideas from this book, the codebase could be reduced from 3,000,000 LOC to 30,000 LOC.
If you mean something that takes a very mathematical approach to deriving programs: Algebra of Programming by Bird and de Moor [1]
[0] (pdf) https://ncatlab.org/nlab/files/MartinLofOnTheMeaning96.pdf
[1] (pdf) https://themattchan.com/docs/algprog.pdf
Imagine if car manufacturers had formal proofs of their claims regarding self-driving car software and it’s predictability / reliability. This is not a situation for trial-by-error.