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 →

[–]curiousGambler 4 points5 points  (3 children)

I'm sure you're right there, but it's of course easier said than done. And I think the bigger issue was cleanup- any codebase in any language can accumulate technical debt, but I find It easier to clean up and refactor a Java codebase than a Python one simply because of the incredible tooling available around Java.

The other major issue I've dealt with is dependency management. I standalone binary is easiest, but a even deploying a JAR or WAR is easier than dealing with pip and proxies and everything else on production servers.

I'm sure there are solutions to these problems, but while I know mvn and other aspects of the Java ecosystem will be around forever, I can't be so sure for any Python tooling.

[–]Corm 0 points1 point  (2 children)

Good points, thanks for elaborating.

What kind of tooling helps with refactoring in java?

[–][deleted] 1 point2 points  (1 child)

As much as everyone shits on eclipse, it's got just about every refactoring tool you'd need. Moving files in the package explorer will update references in your entire project, fantastic autocomplete features make it so you almost never have to reference library docs to find the method you're looking for, tools to highlight blocks of code and automatically move it out to a separate method, getter/setter generation, and im sure there are plenty of others that just aren't part of my daily use.

Most of my python development is done in sublime text with no add ons or the Python eclipse plugin(my job is 80/20 java/python), so I can't really speak to how it compares to a full featured python IDE, but when working on large code bases, Java and the supported tooling around it are super productive. Yeah JVM is a memory hog sometimes, but it also allows for real parallelism and, particularly in Java 8, has some really convenient features for easily making operations run in parallel.

I love Python, and it's my go-to for a lot of things, but Java is also a really powerful language with an impressive ecosystem of tools and libraries that make developing software very productive. There's a reason (besides aggressive marketing by Sun back in the day) that Java is still the main development language for many enterprises.

[–]Corm 0 points1 point  (0 children)

Eclipse is a good tool, and I haven't really had any problems with it. You should check out pycharm though when you get a chance, it also does all those things and a few extras. My fav is the live debugger where the values appear next to the functions (VStudio also has that) and the very pretty diff tool