Today’s ADDcast begins with this outrageous claim “C++ is the best object-oriented language ever, given its design philosophy.” and just gets weirder from there. Pat and I have both been reading Object Thinking by David West and we spend a good time chatting about object-oriented analysis, design and programming in terms of formalist philosophy. We also talk about something wonderful with a horrible name: hermeneutics. Along the way we discuss mental health, Attention Deficit Disorder (the real actual thing), and the design of beer-management systems.
Contest!
“What are the two hardest problems in computer science?” – Pat asked Dave this question, but forgot to deliver the punchline after Dave proclaimed, “Getting dates with women, and I’m going with that twice.” Leave a comment below, and we’ll send our favorite a copy of Exceptional Ruby by Avdi Grimm. The winner will be announced in the next episode.
Show Notes:
- Get your awesome MINASWAN shirt and more sweet geek gear from RubyThreads
- Here is the music box in the opening credits.
- Object Thinking by David West – Pat & David have both been reading this book, and we discuss thoughts from it at various points throughout the podcast. (20:40)
- Dave boldly stated: “C++ is the best object-oriented programming language ever, given its philosophy.” A minute later he was explaining how folks with ADD have hunting instincts in a world dominated by farming behavior. He cites ADD: A Different Perception as a useful resource for understanding ADD. (21:50)
- Driven to Distraction – The Bible of ADD books, with an important but boring section that even non-ADD folks find dry. (25:21)
- We pontificate about how Erlang’s messaging patterns are OOish in nature. Pat brings up Alan Kay’s mailing list post stating “the big idea is messaging.” (32:00)
- Streamlined Object Modeling – Pat cites this book as a good reference for collaboration patterns, and how it demonstrates the “flipped” nature of object-oriented design. (53:30)
- Dave wonders whether Smalltalk Best Practice Patterns it’s relevant today. Pat thinks it provides a straightforward, systematic approach to crafting code. (1:01:00)
- Pat points to the C2 wiki page on Defensive Programming during a discussion on validating data. (1:02:15)
- Avdi Grimm’s “Confident Code” talk, and his new book, Exceptional Ruby (1:02:30).
Podcast: Play in new window | Download (Duration: 1:05:29 — 89.9MB)
Podcast (video): Play in new window | Download (421.7MB)


1. Comment by Joe Fredette
31/May/2011 at 3:56 pm
“Caching, Naming, and off-by-one errors”
I love that joke.
2. Comment by Ashish Dixit
31/May/2011 at 6:09 pm
Trying to convince yourself that there is only one hard problem when WTFs per min increases exponentially & off by one error.
3. Comment by Joe Fredette
31/May/2011 at 6:31 pm
I figured I should leave a longer comment (and a potential topic!)
I really love the show, you guys jump around a lot, but it’s all nice and high-level, I really like that sort of abstract, almost philosophical stuff, as it’s often hard to come by people, places, and books which talk about the philosophy of programming without finding need to delve into such details as implementation in specifics.
That said, sometimes it’s nice to get your hands dirty. I’m a blue-collar kind of mathematician, and I’d dearly love to see some Smalltalk being written. I downloaded Pharos and played with a bit, but it’d be great to see some real code being written to do something interesting.
I also asked, a long time ago (7ish episodes, near and around your first, to be specific), about “Stupid Ruby Tricks” — particularly about the use of dynamic types to do things in “better” ways than via static types. I’m pretty versed in statictypitude, but less so in the wide world of you late-binding type-inference folks (what would duck typists be called? Static folks are just “fuddyduddys” or mathematicians, would duck typists be quacks? I digress (I find it amusing to digress in a podcast which was, in a sense about people who digress alot, viz, those people with ADD)).
In any case, love the show, keep it up!
4. Comment by Jon Smock
1/Jun/2011 at 6:07 am
Curses, Joe beat me to the punch (by almost a day, but yeah, you know how that goes). That said, it would be cool to hear you guys rant on naming or caching.
I’d also love to watch you guys pair-program something. It would be awesome to see that pairing done and also neat to expose the lessons you’re taking from Object Thinking in actual code.
Either way, I’m a huge fan! Keep up the awesome podcast, guys.
5. Comment by Jeff Heon
1/Jun/2011 at 6:08 am
Two (of the) hardest problems in computer science:
-Intercommunication between disparate systems.
-Concurency programming.
Do I have ADD? This episode was both interesting and hard to follow for me 8)