Blog - HubSpot Product Team

Thoughts on Returning to Java

Written by Dan Milstein | Jun 23, 2009

Early in my coding career, I did a lot of work in Java, but for the last few years, I've mostly worked in Python. Since joining HubSpot a few months back, I've been gradually getting back in to the Java world. Here's some quick takes on rejoining the Java borg.

Pros 

  • These crazy IDE things are really quite good. When I last was coding the Java, I was still using your basic text editor to do everything. And hence I was constantly bitching about the endless repetition. As I was leaving Java, there were these rumors about Eclipse and IntelliJ and all that, but I was on my way out, and am slow to adopt the new tech, so I had never tried them. Well, here is a shocking newsflash: the rumor I had heard from Everyone I Ever Asked is true--modern IDE's are very helpful if you're coding Java.

    Don't get me wrong, Emacs is still wired into my brain. As Paul Sutherland, a recent HubSpot hire, twittered recently: thank god for 33 year old software. Exactly. But for Java, I join the ranks of the sane and will use Eclipse.
  • The new enums are delightful. Just nailed it. Very happy to see that.
  • Generics are also very nice. I had been following their development in GJ and pizza, and am delighted to see them in the lang itself

Cons

  • I remain profoundly suspicious of the "make everything available via getFoo/setFoo" idiom.

    Once you've got all your properties available via get/set, it seems much to me like you have the worst of both worlds -- all the concise elegance of Java, with all of the type safety of python. Because everything is still resolved at runtime, but you have to say what you mean, like, eighteen times. I may still come around, but for now, I look askance, I say.

  • Life without hash/dict literals is going to make me sad.  My Favorite Python Idiom is to turn a complex chunk of logic into a small piece of code which walks over a static data structure.  With no hash literals, no tuples,  and only homgenous lists, it's a lot harder to employ that idiom.
Alright, I think I'll leave it at that for now.  Anyone else have back-to-Java stories to share?