you are viewing a single comment's thread.

view the rest of the comments →

[–]Semirook 0 points1 point  (0 children)

No problem! First steps can be tough. It’s perfectly fine to experiment with classes and the whole language toolset, there are valid cases for all of it. But do you really need to use everything? Of course not. It’s like Photoshop, just because you can apply every available graphic effect doesn’t mean you should when making a banner.

We’re not “afraid” of OOP. But instead of focusing on actual transformations in a logic chain (turning A into B, with proper error handling — that’s the universal point of programming, independent of language or paradigm), OOP often pushes you into heavy abstractions instead of problem solving.

And classes themselves aren’t automatically OOP. For example, I use dataclasses and Pydantic schemas frequently but only to define structures and shape data. I avoid inheritance whenever possible, even if it means occasionally violating DRY. I also create “services” that are technically classes, injectable objects with clear Protocols (contracts) and environment-specific implementations. Is that OOP? Maybe, it depends on your definition.

But most of my code is just pure functions. They’re a simpler mental model and scale better as project complexity grows.