logoalt Hacker News

99 Bottles of OOP now available in Python

255 pointsby mattcollins11/15/202486 commentsview on HN

Comments

crabmusket11/20/2024

I'd like to mention that despite OOP being in the title, I thought this book had a lot to teach that isn't specific to OOP architecture or OOP languages. Really, I think the star of the show is TDD and refactoring.

For a short intro to Sandi's style and approach, I always recommend this 35min talk: https://youtu.be/OMPfEXIlTVE?si=Ird6t8uDN86T06Y7

Aside from any specifically educational content, as a talk it is fantastic - funny, smart, well put together.

lastofus11/19/2024

This is one of my favorite software development books of all time. It's the book that finally offered straight forward guidance and wisdom on how to properly utilize OOP language features.

I'm very happy to see it out for Python!

show 2 replies
robomc11/19/2024

Maybe this is misguided, but it feels a bit to me (comparing the ruby and js versions for example) that this is using the same code examples in both, and neither are really typical of the sorts of code people in either language community would actually write?

show 1 reply
SiempreViernes11/20/2024

> The 2nd Edition contains 3 new chapters and is about 50% longer than the 1st.

I've never really had the problem that I've read an OOP text and felt "this was too short".

kubav111/19/2024

Is the book DRM free? Sorry to be this paranoid, but you cannot be sure today.

show 4 replies
elashri11/19/2024

Previous Discussion

Bottles of OOP - https://news.ycombinator.com/item?id=12129821 - July 2016 (71 comments)

show 1 reply
inanepenguin11/20/2024

While I understand the complaints against OOP, I highly recommend this book to anyone working in an environment where they're working with OOP languages/frameworks. There are plenty of Ruby/Rails shops out there still. At the very least I love the mentality that this book teaches and often recommend Tidy First by Kent Beck at the same time.

gigatexal11/20/2024

I’m gonna buy the book but I prefer composition over OOP. I prefer to have an init that takes some params where those params are fully baked clients of whatever services I need and then the class just uses them as needed. I don’t see a lot of value in having a Python class that might have a few or more classes that it extends where all the functions from all the classes crowd up the classes namespace.

Class Foo.__init__(self, db, blob_storage, secrets_manager, …)

Instead of class Foo(DB, BlobStorer, SecretsMgr)

Etc

show 4 replies
dennisy11/20/2024

I have seen quite a few digital books at this price point now. Personally I feel it is quite high, but I assume I am in the minority?

teraflop11/19/2024

HN's automatic title editing strikes again. The title of this submission should presumably be: "99 Bottles of OOP now available in Python".

show 5 replies
cutler11/20/2024

OOP is an industry of its own which generates a ton of incidental complexity. See "Object-Oriented Programming is Bad" by Brian Wills (https://www.youtube.com/watch?v=QM1iUe6IofM) and most of Rich Hickey's excellent videos, especially his keynote at Rails Conf 2012 where he basically told the Ruby crowd they're doing it wrong (https://www.youtube.com/watch?v=rI8tNMsozo0).

show 4 replies
henning11/19/2024

[flagged]

show 1 reply
otteromkram11/20/2024

Thank you for using snake_case.

That's all I got. Best of luck!

show 1 reply