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
--
https://mail.python.org/mailman/listinfo/python-list