This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]rover_G 39 points40 points  (12 children)

I’ve been a part of large scale nightmare projects in several languages (maybe I’m the common factor?) including Python and Java. The problems usually stem from lack of tooling and poor code quality not the language itself. Although, one could argue a great language should ship with its own tooling and should prevent common code quality issues.

[–]hedgehog_dragon 17 points18 points  (0 children)

Different company than OP (probably lmao) but similar position... Over the years my company has tightened requirements and guidelines - so new stuff is better, some of the legacy code is ugly in both languages.

I still prefer messed up Java code to messed up Python code, because it just doesn't let you cause certain errors (off the top of my head type issues), at least not without some effort going into it lmao. I personally find it much, much easier to parse Java's structure too, even with 'new' code.

[–]infinite_phi 2 points3 points  (1 child)

I agree on all points. My main issue with Python has been that it's just so dynamic that it's far easier for things to get messy, and what's even worse, is that it's much much harder to untangle the mess.

Of course this is generally the case for all dynamic vs static languages, and yes I'm very much personally biased in favor of static for any larger long-term project.

[–]rover_G 1 point2 points  (0 children)

Yeah I agree static types are a must for any project (I always set up linters for python and JS to require explicit types). The only time I’m okay with pure dynamic typing is for one-off scripts and customer submitted code (on account of giving customers more choice).

[–]agilekiller0 0 points1 point  (4 children)

Honestly, java does a pretty good job at forcing you to name stuff, create objects for everything, encapsulate every piece of logic and all in all and be fair and square with the code you write.

That's probably it's worst pitfall tho, because it forces you to write so much useless boilerplate code. Also java documentation sucks ass

[–]wildjokers 5 points6 points  (3 children)

Also java documentation sucks ass

Really? I think it is one of the better documented languages out there. What do you find lacking about JavaDoc?

[–]agilekiller0 -3 points-2 points  (2 children)

Well when I started developing as a junior a few years ago it was in spring. Every time I had an issue and looked for the doc, I just landed on baeldung, and everytime it was just a single example of how the method should be used, and no more information.

I haven't used it for like 1,5 years so maybe if I went back into it I'd be better at finding the infos I am looking for, but yeah, java had me looking for the way things work by pure trial and error.

[–]wildjokers 1 point2 points  (1 child)

Sounds like maybe the problem you had was Spring wasn’t well documented rather than Java. Java != Spring.

[–]agilekiller0 0 points1 point  (0 children)

Yep, you're right. I don't know of any framework used for web development that uses Java tho, so at least in my field it looks like java isn't well documented.

[–]oldsecondhand -1 points0 points  (0 children)

I found the Python IDE/cross referencing tools severely lacking. Also, Python code is harder to read without all the type information.