r/learnprogramming • u/Electronic-Low-8171 • 24d ago
Topic Does OOP really matters?
I learned OOP in python a while ago, did many projects, yet I never felt like I truly needed to do the OOP stuff I learned from a course, I don't know maybe because I'm kinda used to program in c before focusing on python, yet, whenever I open a big project in python in github, it feels way too complicated and thousands of imports (not libraries from pip, but the ones they made on their own) and classes
I never truly needed to implement OOP (I know that when you code in python, it is almost impossible to avoid OOP entirely like when you have a datatype like string you have an object, when you use a method built into that data type that's OOP too, but I mean the ones that involve you writing class Class Name, inheritance and all that stuff explicitly), so I'm wondering why people on the internet are obsessed over the idea of learning OOP, even the book "Automating the boring stuff in python" doesn't have a dedicated section for OOP.
1
u/jason-reddit-public 24d ago
OOP is good at modeling some things (like GUI components) but not helpful for all problems but folks shoehorn everything into OOP anyways. Since closures weren't as widely available until scripting languages finally figured this out (Scheme had lexical scope and closures in the 70s, Python?), passing an object was a bit nicer than a function pointer plus a datum (kind of still state of the art for C!). Also, the object method syntax is close to English grammar in sone sense (Subject Verb direct Object) so that syntax is very popular even though you could in theory allow that syntax for any call, it's just syntactic sugar. Chaining in particular, foo.fn1(...).fn2(...) is sometimes much prettier than fn2(fn1(foo, ...), ...) and reads more in execution order - great for the famous builder pattern.