November 15th, 2024

Bottles of OOP now available in Python

99 Bottles of OOP by Sandi Metz is a comprehensive guide to object-oriented programming, now in its expanded 2nd Edition, suitable for all skill levels, emphasizing practical coding techniques.

Read original articleLink Icon
CuriosityAppreciationSkepticism
Bottles of OOP now available in Python

99 Bottles of OOP, authored by Sandi Metz, is a comprehensive guide aimed at enhancing the quality of object-oriented programming (OOP) across various languages, including Python, JavaScript, PHP, and Ruby. The 2nd Edition has been expanded to include three new chapters and is approximately 50% longer than its predecessor. It emphasizes practical programming techniques that lead to maintainable and aesthetically pleasing code. The book covers essential concepts such as Test-Driven Development (TDD), proper refactoring, and the application of object-oriented design principles. It is designed for programmers of all experience levels, providing step-by-step guidance to improve code clarity and adaptability. The book is available in multiple digital formats and offers a unique purchasing model that allows buyers to download versions in different programming languages. The current version, as of November 15, 2024, is 2.2.1, comprising around 105,000 words. The author aims to bridge the gap between theoretical knowledge and practical application, making it a valuable resource for anyone looking to enhance their coding skills.

- 99 Bottles of OOP is available in multiple programming languages: JavaScript, PHP, Python, and Ruby.

- The 2nd Edition includes three new chapters and is 50% longer than the first edition.

- The book focuses on practical techniques for writing maintainable and beautiful object-oriented code.

- It is suitable for programmers of all skill levels, from beginners to experienced developers.

- The current version is 2.2.1, released on November 15, 2024, and is available in various digital formats.

AI: What people are saying
The discussion around "99 Bottles of OOP" by Sandi Metz reveals various perspectives on the book and its content.
  • Many commenters appreciate the book's practical guidance on object-oriented programming and its applicability beyond OOP.
  • There are concerns about the relevance of code examples across different programming languages, suggesting they may not reflect typical practices.
  • Some users express a preference for composition over traditional OOP, highlighting different programming paradigms.
  • Questions arise regarding the book's format, including its length and whether it is DRM-free.
  • Several users share links to related talks and discussions, indicating a broader interest in the author's approach and philosophy.
Link Icon 14 comments
By @crabmusket - 13 days
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.

By @lastofus - 14 days
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!

By @robomc - 14 days
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?
By @SiempreViernes - 14 days
> 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".

By @kubav1 - 14 days
Is the book DRM free? Sorry to be this paranoid, but you cannot be sure today.
By @elashri - 14 days
Previous Discussion

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

By @inanepenguin - 13 days
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.
By @gigatexal - 14 days
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

By @dennisy - 13 days
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?
By @teraflop - 14 days
HN's automatic title editing strikes again. The title of this submission should presumably be: "99 Bottles of OOP now available in Python".
By @cutler - 14 days
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).
By @otteromkram - 14 days
Thank you for using snake_case.

That's all I got. Best of luck!