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?
I have to confess (in line with the tone of the post) that when I started reading I was expecting you to wax lyrical about the benefits of using a text editor over IDE for Java development. But no, it seems you have well and truly embracing the concept. Welcome to the 21st Centuary 🙂
Oh, and I agree that Netbeans is probably better than eclipse is now but I will continue to use it as i’m more familiar with it. Or is that falling into the same trap as yourself?
It’s like the late great Randy Pausch said, give people a chance and they will end up surprising you 😀
Just like Richie I thought you’re going to bash IDEs. I guess I thought the title is cynical.
I must admit that I recall several occasions (writing a small project/adding a small patch to an existing project) where I felt that the task is small enough to get it quicker without setting up an IDE project. You know, just use a good editor, ant, grep, prinln()-based debugging etc. Almost every time this decision proved itself wrong.
Also, I once wrote how my whole perception of Ruby changed once I tried it through NetBeans. It made the language much more accessible. I just could not see the strengths of the language when I experienced it via a text editor.
Finally, just so that we can all have a bit of a good laugh I suggest we compare your confession with that of Tuxie’s ( http://blog.jayfields.com/2008/12/targeted-languages.html). I wonder how long will it take for Tuxie till he confesses ? 🙂
We all confess eventually Itay, it’s just a matter of time 😉 Normally it’s after recompiling that damn println statement for the 100th time and still the cause of the mysterious bug cannot be found 🙂
Sun Workshop is the name you were looking for. It was a terrible code editor but I still remember the underlying debugger (dbx?) being pretty good.
I stick to the age old style of text editor, makefiles and debugger. The vast majority of my work is C++ on Linux and these ingredients just seem to make sense. The only variable over the years has been the editor where I have migrated (regressed perhaps) from XEmacs to a thing called nedit and now vim.
I have done some Java development on Windows before and Eclipse was the IDE in use. It has maybe matured a fair bit since a couple of years ago but I always seemed to spend as much time waiting for the GUI to come back after freezing or hunting down the lock files to delete after it has crashed (otherwise it wouldn’t startup again) than actually writing Java code. I must admit though, it’s web app debugging was really good – how on earth would you debug a JEE application without that?
Workshop that’s the one.
See Darren, the “seems to make sense” was something that I was using as well. Maybe it’s a sign that you are falling behind with the times 😉 If the C++ and vim were not a sure fire give away anyway 🙂
The issue of JSwat not repainting is specific to Windows Vista, and the work around is now documented on the Installation wiki page. Thanks.
Thanks Nathan. I will be sure to try it out as I have a fair few projects where it has proved very useful.