Hacker News new | ask | show | jobs
by hodwik2 3646 days ago
If you're going to learn another language, learn something from a different programming paradigm, or one which is lower level.

Learning Ruby would be an absolute waste of time.

This isn't a hip or cool answer, but I'd suggest learning Java. It's one of the most popular languages by a large margin, and knowing it will help you speak the object-oriented lingua franca. If you only write Python, you're probably mostly writing procedural code. Learning OO is a good idea.

1 comments

This is so wrong I don't even know what to say.

Python is a beautiful object oriented language. Very much so.

Java is not different at all, I'd say go for Haskell or similar to get something really truly dif

Python has all of the constituent parts of an OO language, save explicit types, but it is never written in an OO style.

Using classes != OO.

Generally, Python programmers treat objects as structs with associated methods, basically the Go model. Python programmers rarely encapsulate at all. At best, they use a bunch of accessors (which is not itself OO). Implementation details are rarely hidden.

That's because dynamically-typed languages, the interpreter, and the Python culture, lend themselves more to exploratory programming, rather than a UML-design, with objects that relate to real-world entities, that are implemented after careful planning.

If you can show me a Python program where objects are really encapsulated, and aren't chock-full of accessors, I'll stand happily corrected.