4 ms·
Elements of Programming (2009)
- mempko 2y agoIf you are passionate about programming and and computer science, this is the book to read. It's like Euclid's elements, but for programming.
- laurent_du 2y agoEuclid's Elements is absolutely not a useful book for the contemporary.
- WillAdams 2y agoI've found it useful as a grounding, and reference, and authoritative definition source, so I refer to: https://mathcs.clarku.edu/~djoyce/java/elements/elements.html https://mathcs.clarku.edu/~djoyce/java/elements/elements.htm... when writing: https://willadams.gitbook.io/design-into-3d/2d-drawing https://willadams.gitbook.io/design-into-3d/2d-drawing
- mempko 2y agoYou missed the point. Euclid's elements is a beautiful work that is incredibly well structured. It has served an important purpose in math. Elements of programming is like Euclid's elements in this way.
- iLemming 2y agoThe year in the HN title looks wrong, in the PDF it says 2019, please fix it, otherwise people ignore the book thinking it's too outdated. Oh wait. I stand corrected - I missed that it said "Copyright 2009", "First printing 2019", not sure why it took so long to get it printed.
- icermann 2y agoIt's explained on the web page "After ten years in print, our publisher decided against further printings and has reverted the rights to us. We have published Elements of Programming in two forms: a free PDF and a no-markup paperback."
- dang 2y agoRelated. Others? Elements of Programming (2019) - https://news.ycombinator.com/item?id=32459443 https://news.ycombinator.com/item?id=32459443 - Aug 2022 (11 comments) Elements of Programming - https://news.ycombinator.com/item?id=20437347 https://news.ycombinator.com/item?id=20437347 - July 2019 (24 comments) Alex Stepanov (STL) just published a book on math foundations of programming - https://news.ycombinator.com/item?id=665987 https://news.ycombinator.com/item?id=665987 - June 2009 (1 comment)
- layer8 2y agoHistorically, this is based on what is described here: https://en.wikipedia.org/wiki/Alexander_Stepanov#Standard_Template_Library_and_generic_programming https://en.wikipedia.org/wiki/Alexander_Stepanov#Standard_Te...
- lincpa 2y ago[dead]
- kragen 2y agoI've found this book, and Stepanov's previous work, to be among the most insightful ways of thinking about programming. But it's hard to distill, and we could wish for a much better language than C++ to express these ideas in.
- pjmlp 2y agoThat is the attractiveness of the dark side of the force, the closest we have come from all kinds of Haskell like exploration ideas into a mainstream language, maybe one day Rust will get there as well. No accident that Bartosz Milewski got to mix both worlds. Agree it should be better.
- kragen 2y agoStepanov is addressing a lot of topics that Haskell sweeps under the rug. For software for which crashing is acceptable behavior, such as compilers, web browsers, or theorem provers, that's an improvement. Not all software falls in that category.
- rramadass 2y agoAlexander Stepanov also has Notes on Programming (a series of lectures he gave at various companies) which is what this and his other published books are based on. You can find the link to it in the "reference" section of his wikipedia page - https://en.wikipedia.org/wiki/Alexander_Stepanov https://en.wikipedia.org/wiki/Alexander_Stepanov I have all of his books and they are all great (though not easy!). His starting point is "Algebraic Structures" (basically sets of objects and operations defined on them eg. Groupoid/SemiGroup/Monoid/Group etc.) and so some familiarity with Abstract Algebra/Discrete Mathematics is assumed. The mapping he does from the mathematics to a language construct modeling a concept is what gives one the insight into programming. His other book From Mathematics to Generic Programming gives one a more "easier" approach to the subject and should be read in conjunction with this one for better understanding. A related old book is Ruminations on C++: A Decade of Programming Insight and Experience by Andrew Koenig and Barbara Moo. This is derived from a collection of articles written by Koenig when he was working closely with Stepanov on his ideas and implementation of STL. His idea of programming templates in a functional and generic manner is what is conveyed in this book in the "templates" section and is still quite illuminating (no math but short C++ code in articles). So something which might not be clear from Stepanov's mathematical treatment may be clearer here since you can see an actual C++ implementation (warts and all).