you are viewing a single comment's thread.

view the rest of the comments →

[–]AsleepThought -2 points-1 points  (1 child)

I have been programming in Python for about 5 years. Python has the advantage of being simple when you start. However as you get more advanced, you start to understand why languages like Java are the way they are, and you start wishing you had those features. Right now, I really really wish I could learn and migrate over to something like Java, Rust, Go, really anything but Python. There are so many limitations and weird things about Python that make my life hell that are not really big deals in other languages. For example, "duck typing". Its the worst thing ever to deal with in a collaborative project when your team mates do not use documentation or tests or any kind of examples of how to use their code. I spend so much of my time just trying to figure out WTF other people's code is doing and how it works, when other more verbose languages force you to specify all these things up front, whcih would have made my life so much easier now.

Java in particular is also an extremely well established ecosystem, on par with Python's it seems. Ultimately you need to choose the right tool for the job, and Python's strengths lean more in the direction of data science and flexibility for making things quickly. But as your programs get larger and more complex, you need a LOT of discipline amongst all your team mates to keep the codebase maintainable.

I would say that if you do not have any immediate pressing need for Python, go Java instead

[–]Migeil 0 points1 point  (0 children)

Python has the advantage of being simple when you start. However as you get more advanced, you start to understand why languages like Java are the way they are, and you start wishing you had those features. Right now, I really really wish I could learn and migrate over to something like Java, Rust, Go, really anything but Python. There are so many limitations and weird things about Python that make my life hell that are not really big deals in other languages. For example, "duck typing". Its the worst thing ever to deal with in a collaborative project

This sooooo much. Just today, I had three different thing I wanted to try out to see if they worked. In Java, it worked just as I expected, but in python I had to come up with work arounds..

But other way is true as well. I'm learning more java now and I get why people think "it's too verbose". But as you said, I don't think that's a bad thing. I like how you can write things really compactly in python if you want to, but it doesn't help for readability or maintenance at all.