On Oct 18, 2013 10:54 AM, "s|s" <supr.e.etse...@gmail.com> wrote: > > Hi Pranav, > > I would pose a counter question regarding object oriented programming. How did you learn OOP concepts? I am assuming like most of us, probably through a C++ or Java course. These courses ingrain a certain expectation of what OOP should "look like". Which to me seems to be a dis-service to underpinnings of Object Oriented Paradigm itself. >
I think it's a little unfair to club C++ and Java in the same bucket just because one borrows some syntactic elements from the other in order to maintain a smooth migration path. > Python implements OOP differently from imperative languages of C family like C++ and Java. Umm... I don't know if anyone's told you yet, but Python is also essentially an imperative programming language. > The reason, I think is C++ and Java are very much driven towards machine code efficiency whereas Python is very much about developers productive. You couldn't be far from the truth. While, syntactically, Python is touted to be more reader-friendly, that was also one of the design goals of Java. Just because a bunch of people write bad Java code doesn't mean that the language leans toward low-level optimizations; I've seen enough atrocious Python code in my 2.5 years working with it that has obliterated any notion of readability/productivity. And anyone suggesting LOC comparisons better be prepared for some righteous Monty Pythonic Trout Slapping! Also, comparing a dynamically typed language to two statically typed languages is hardly fair. A comparison to other dynamically typed, imperative languages like Groovy, Ruby or SmallTalk would be more useful; all of which, BTW, provide primitives for the kind of encapsulation the OP is looking for. > To this end Python developers must have thought of data hiding as not an important language goal. > That makes no sense. Implementing the notion of encapsulation doesn't particularly get in the way of developer productivity. If anything, it enhances productivity by providing compiler/interpreter hints that communicate when developers are engaging in undesirable resource access. > Mind you Python does allow data hiding through slots but it is not as straight forward as C++ or Java. > Sigh! Implementing a reasonably important feature in an obscure manner (that too, not completely, since even slots are accessible from outside an object) is not in keeping with friendliness. I say this feature is reasonably important since it is repeatedly brought up every few months with little to no satisfactory responses most of which is 'we are all adults here', which I am hard pressed to accept as a generalization on account of all the atrocious code mentioned above. - d _______________________________________________ BangPypers mailing list BangPypers@python.org https://mail.python.org/mailman/listinfo/bangpypers