0xDECAFBAD

It's all spinning wheels and self-doubt until the first pot of coffee.

Making a return to the fields of Java

So we've managed to get the go ahead at work on what seems like it should be a nightmare project: We're going to re-examine, re-design, and re-implement our in-house web app platform, the Toybox. Not only that, but we're going to switch languages, from Perl to Java. It's got me immensely excited, though this may be naive of me.

It's been years since I was last knee deep in Java, and years that I've spent up to my ears in Perl. I'd almost forgotten how much of Java I'd reinvented to make my ideas work in Perl. (This may not be so much an indictment of Perl as of the way I think.) And the last time I worked seriously in Java, there were no IDEs yet, so starting to work with NetBeans or even Project Builder under OS X for Java work is a dream. I love using NetBeans in particular, occasional hiccups aside. Besides all the obvious integration of build, test, run, debug, etc, I love being able to highlight a keyword or class name and pop up the docs in an internal HTML browser. I love that it makes suggested changes to classes when I change an interface they implement.

Yeah, none of this is news to most of the world, but I've been steadfastly sticking to shells and bare emacs or pico for my editing. Maybe a web browser handy for docs. I haven't worked very much with IDEs these past years, since a lot of them just got in my way. Or at least, with hubris, I thought that they did. Then again, I don't see very many equivalent tools for a language as free-form and multiple choice as Perl.

And, though I miss CPAN, I'm loving resources like the Jakarta project over at Apache. Again, not news, but new to me. I feel like a Rip Van Winkel-Java over here, since my last real work in Java was when the API was in 1.0 days, Servlets were this neat thing for the Java Web Server (now at the end of its life), and the dot-com boom was just starting to stretch its wings.

Now, I haven't been completely oblivious to Java over this time. I've poked at it, and played with a few things from time to time to at least stay somewhat current, and I've tried to vaguely keep up with things a bit. I have an overall sense of what does what and where to find what, but really getting it under my fingernails again now is a different experience.

shortname=ooobaf

Archived Comments

  • Suggestion: do it in Jython first, then profile and convert the important parts to normal Java. I suspect that it'll be way more fun that way.
  • Actually, I've been circulating that thought a bit :) Seems to me that Jython would make me never homesick for Perl again, Python being tastier to me than Perl in many respects.
  • If you like Netbeans, you should try Idea. IMHO, it kicks Netbeans all over the map. Things to specifically note are the Ctrl-Space context sensitive completion of almost anything (even going so far as to suggest variable names), and the built-in refactorings (extract method being one of my favourites).
  • Hmm... The latest beta of Netbeans I'm using has a ton of Ctrl-Space completion now of classes, variables, etc. But I'm happy to see Idea has a Mac OS X version, so I'll have to check it out. I don't think Netbeans has any or much refactoring support, which is something I've been dreaming about while working in other languages. :) The only barrier might be price for me, since NetBeans is open/free and Idea is almost US$400.
  • The price is definately higher than Netbeans, although significantly lower than, say, JBuilder. And they have an Early Access Program where you can test out betas for free. I've been on it for a couple of years, and it's very rare that the betas are less than rock-solid. Also, you get to influence the development of the product, which is always a good thing. :)
  • You might want to check out Eclipse (http://www.eclipse.org), too. It was originally developer by IBM and then released as open source. While it's written in Java, it doesn't use Swing. They use an API called SWT that they developed in house. SWT uses native libraries on the platforms it's been ported, too (right now includes Windows, Linux and a number of Unix variants, but not OSX, yet -- though OSX support is planned). I've found that the latest release is significantly zippier than any of the other java IDEs I've used and the features it supports are generally comparable or better than any of the others that I've tried. It should be noted that Eclipse is also the basic technology underlying a number of major player products (IBM's WebSphere Studio and Rational's newest development tool, the name of which I can't recall at the moment). So you know the project isn't going anywhere anytime soon.
  • Yeah, I checked out Eclipse too, getting the vibe that it was a main competitor for NetBeans in the open source arena. But, the lack of OS X support is pretty much a show stopper for me since my primary work machine and personal laptop are both Macs. This is also the reason I have yet to get into .NET and C#, but that's another story altogether.. :)