Java is a Bad Ex

Although I’ve been enamored with Python for the last 13 or so months, I’ve often dreamt longingly for days of Java glory. Things from the past seem so desirable at times — IDEs with good code completion and integrated debugging, staticly-typed compiler hand-holding, mature application servers and deployment tools. There was never much black magic tying things together. You could easily trace where and why something was breaking, and throw a fix up quickly.
It only takes a few minutes of reading through a large Java codebase to bring me back to reality. The horribly cluttered JSPs with code spewing into and around markup. MEGA-JARs. XML files and properties files galore. 65 lines of code to parse a querystring (not because there wasn’t a better way, but because many Java coders don’t value beauty by simplicity). Seriously.
I know there are pie-in-the-sky Java apps that give developers the warm-and-fuzzies inside, but most of what I’ve seen in practice gives me the chills. I guess part of what is so alluring is the notion that I could take an ugly Java app, apply what I’ve learned from Python, and behold the beauty of an amazing creation.
Alas, Java is like the bad ex that you think you want back. A few months after the breakup, you think back on all the good times, the marathon sex sessions, and forget entirely why it was you broke up. You want a second chance to make it work. In reality, the sex was never really that good, it was just comfortable. There were countless little things that annoyed you and caused you so many headaches, the same few things that you always fought about and never really resolved.
Just so that I don’t forget, here’s a list of 5 things I love about Python or hate about Java.
from future import antigravity;Seriously, justeasy_installit, import it, and you have it. So much more is available at your fingertips in Python than was in Java.- The fact that Python was willing to break backwards compatibility with the advent Python 3K, which is a serious testament to the community. Java can’t do that because its user base is notoriously full of late adopters who are resistant to change and are generally less agile.
- Collections. Yes there are all the collection types in the Java standard library, but they’re still so klunky to work with. Everything relies on hashtables and arrays, so why not make them as easy to use as Python?
- XML fever. Why is it so buzzy still in Java? There is a better way.
- The lack of an awesome, blow-me-away, clear-winner of a web framework in Java. I know Python doesn’t quite have that either, but Django is making great strides. And in a weird way, not having one is good for Python, in that it’s fostering some great new developments. Granted, I don’t know anything about Struts 2, but I have a feeling it’s the same-old same-old.
The moral of the story? Don’t forget how good you got it.
- Filed under software development
- Tagged with java, python, rant
- Comments(0)
