Recommendation for Object-Oriented systems to study

Alan Evangelista alanoe at linux.vnet.ibm.com
Sun May 29 14:12:30 EDT 2016



On 05/29/2016 02:49 PM, Michele Simionato wrote:
> On Sunday, May 29, 2016 at 4:42:17 PM UTC+2, Ankush Thakur wrote:
>> Hello, I'm a self-taught programmer who has managed to claw his way out of Python basics and even 
>> covered the intermediate parts. But I feel I have a ton of theory in my head and would like to 
>> see some smallish applications in action. More specifically, I'm looking for Object Oriented 
>> designs that will help me cement my knowledge and expose me to best practices that books never 
>> cover. I have half a mind to start reading up the Django or Pandas source code, but I don't want 
>> to overwhelm myself. Can somebody recommend smaller and simpler projects I can learn from? And if 
>> I can pick the brains of the creator, bonus points!

The answer may be a little out of scope because you are asking in a Python mailing list, but
if the interest is learning OOP concepts (and not OOP in Python), IMHO Java is better.

- Java forces everything to be implemented in OO model (classes)

- Java widely uses interfaces and abstract classes. Python has not the concept of interface, as it 
favors EAFP
and duck typing instead of creating base classes which establish contracts. Python also allows 
multiple inheritance,
which is *usually* a bad idea, unless the base classes are interfaces.

- In Java, interface/implementation separation is *usually* a bigger concern (eg getters and setters
are common in Java code, rare in Python code) .

I know that Python developers see Python as more pragmatic, more flexible and quicker/easier/less
bureaucratic to develop than Java, so my opinion may be controversial.


Regards,
Alan Evangelista



More information about the Python-list mailing list