Right, this ain’t as bad as it seems, honest! But in the last two years I have pretty much coded Java without the use of an IDE, albeit I wasn’t doing too much Java, all the same though, I was doing pretty much everything by hand. Why I hear you ask SCREAM!
A little background first. In my first job I used Visual Studio (6!) almost exclusively and being just out of uni with no prior experience of any IDE, I thought it was brilliant. Time has move on since then and if we all face facts VS is still a top (the best?) developer tool. On to my next job where development was done in XEmacs and debugging with some Sun IDE, god I can’t remember the name of it for the life of me, it was ancient at the time, Work(something) I think? This was going back a step. However, I got to love XEmacs, and within our organisation we had quite a few Emacs Lisp scripts that allowed us to automate adding things like header files or creating classes. Then when I moved onto Java development near the end of my time there I just stuck with XEmacs – there wasn’t too much else around at the time (2002-2003) that wouldn’t run on a dog of a Sun U10. After this I went back to uni to do a PhD (that’s back to Grad School for my readers over the Atlantic) where I done a fair bit of Java in my first year but largely went without programming after this. I always think it seems bizarre that you can do a PhD in the area of Algorithms and most folk barely write a line of code – and some don’t even know a programming language, no joke! Fortunately though I done a fair bit of contracting work throughout my graduate studies using Visual C++ (.NET 2003 then onto .NET 2008). Also, in the last year or so, I have managed to do quite a bit of JavaScript programming and some PHP stuff – again non IDE based.
Right not sure whether the background was need but you got it anyway. So where was I. Yeah, I tried Eclipse at the start of my time as a graduate student and just thought it sucked! It was slow, froze often and I ended up back with trusty old XEmacs. I did miss a debugger though – especially as I was using VS for the contracting work. I just couldn’t face Eclipse though.
Now skip forward around 4 years to a few months ago and I find myself writing loads of Java again. By this time I had ditched XEmacs for the very nice e text editor – I seen a Google developer videocast and in it they were using TextMate and I thought it looked awesome, so I wanted a windows version of it which is what e promised, and delivered. This was great, it did have some nice autocompletion stuff but I was still doing quite a bit manually. I never really felt that it was a problem though, as I just got on with doing what I was doing. Then after a couple of conversations with people I gradually started thinking that I may be missing out on stuff that the IDE provided, so I decided to give it a go.
I tried Eclipse and I still think it sucks. It’s not that slow anymore but I can’t put my finger on why I don’t like it, just tastes I suppose. Or maybe it was because I had tried NetBeans 6.5, which I think is rather excellent. I have no doubt Eclipse does all the things that NetBeans does but I could “figure out” NetBeans quicker.
For starters, it made it pretty clear where I should put my unit test files, you simply click add on the “Test Sources” tree. Easy. When I added my existing source files it didn’t seem to have the same bizarre problem that Eclipse was giving me for my package name. Then when I wanted to run one of my tests it seemed easy I just right-clicked and selected Run File. I mean I’m not saying you can’t do these things in Eclipse but it certainly wasn’t as easy as doing them in NetBeans, so why go with Eclipse? I won’t go on further but essentially getting started in NetBeans just seems easier than Eclipse, which has got to be the single most important thing for gaining new users.
All that said and done, my general point is that boy have I been waaaaaaay more productive with the IDE over using an editor and the old System.out.println
style of debugging! I would say the key elements to this improvement have been intellisense, automatic compilation (probably a fancier word for it), ease of unit testing and of course a nice shiny debugger (I had tried JSwat as a stand alone debugger at first but it constantly failed to repaint its window).
There are a few things that annoy me about both Eclipse and NetBeans, the first is the color themes. With e it is so easy to change themes and plenty of themes available – I really need a dark background for developing. However, it’s a royal pain in the ass with both of the above IDEs. Furthermore, NetBeans gave me a laptop destroying moment where I deleted files from the NetBeans project and expected it only to delete them from the actual project. No, afraid not, it deleted them from the file system, without making it obvious it was going to do this. I was seconds away from throwing my laptop against a wall, seriously!
Apart from that though it really has been a bonus switching to an IDE. Those of you out there that are thinking a text editor and println
will do are just kidding yourself on – like I was. Those using an IDE are going to be way more productive than you are. Now if we only had a decent IDE for every programming language, we all have a dream right?