In my experience, packaging Python applications feels easier than packaging Java applications. For those who have worked with both ecosystems, which one do you find more difficult to package and distribute, and why? I'm especially interested in dependency handling, creating standalone executables, and protecting or obfuscating the application.
3 Answers
Java has fairly standardized options now. Tools such as jlink and jpackage can build a trimmed runtime and create platform-specific installers, so Java packaging can be more predictable once the build is configured. It may feel heavier at first, but the result is often consistent across deployments.
Python is often simpler for quick distribution because tools can bundle the interpreter and dependencies into a standalone executable. The tradeoff is that native libraries, platform differences, and large package sizes can still make the process awkward.
If the goal is protecting the code rather than merely distributing it, both are difficult. Obfuscation adds cost and complexity, and neither ecosystem can make a determined reverse engineer completely unable to inspect the application. With modern automated code-analysis tools, obfuscation should be treated as a minor deterrent rather than strong security.

What parts of Python packaging have been easiest in your experience? The dependency and native-library issues are usually where I run into trouble.