I’ve been doing some form of coding since around the advent of the IBM PC and VIC-20 and have obviously come across many editors and IDE:s for a number of platforms. Things have come a long way since Edlin. I cannot recall every single editor and IDE I’ve been toying with, and I’m not sure it’s relevant to this post, but some of them include A/Edit, Emacs, TSE/Qedit, Brief, SlickEdit, vi, and many derivatives of these. Having been a DOS programmer for quite some time, I’ve also been working in the various Borland IDE:s.
In the past 10 years I’ve mostly been using Emacs, and every now and then I’ve been sneaking a peek at various other Linux based editors. For the past several years I’ve been giving both Eclipse and NetBeans a go. There are a number of IDE:s out there that are based on Eclipse (Zend/ZDE, Aptana Studio, Eclipse PDT to name a few), so in many cases they share their core behavior, look ‘n’ feel, pros and cons.
One thing I’ve learned, the hard way, is that there are just about as many “My editor is better than your editor”-battles being fought as there are “My language is better than your language”-battles; programmers and developers truly seem to enjoy trying to outdo each other when it comes to proving their arsenal of tools to be superior to that of others. I’ve never understood this part. If you can solve the given task, with all its parameters, with whatever tools you prefer, go and do it. If someone else can manage the same thing with some other tool, good for them. Listening to these arguments is like listening to two five-year-olds battling it out trying to convince the other that a given color is prettier than another. Of course, one could just turn a deaf ear and not listen 🙂
Now let’s talk a little bit about Eclipse and NetBeans.
There’s no mistaking Eclipse for an extremely powerful development platform for a number of languages and tasks. It’s Java-based, and readily available on a number of operating systems. Eclipse has sub-projects that specialize in packaging it with an edge towards some language or environment, such as Eclipse PDT which is an excellent packaging for PHP developers. Separate packaging like that of Aptana Studio and Zend Studio is also available; sometimes the various package distributions add extra functionality to Eclipse.
I’ve looked at NetBeans three times in the past five years. The first time I discarded it after 30 minutes of toying with it. It just wouldn’t do what I needed it to do. The second time was in late 2009, and it still didn’t feel like something I wanted to spend thousands of hours of my life with.
So I’ve been going back to various package distributions of Eclipse. At first, it was Zend Studio; but since I don’t really benefit from anything Zend added to its packaging, I went to have a look at Eclipse PDT and found that it pretty much did what I wanted. I also used Aptana Studio for quite some time. All good. All capable. All flexible. All cumbersome, heavy, slow, and not-quite-getting it. Eclipse knows how to do so many things that merely getting it to do *only* what you want is a challenge sometimes.
A few weeks ago, I was setting up a new Linux workstation at home from where I do a lot of late night coding; going through the routine motions of installing nine zillion (possibly more) packages, applications, and tools that I need/want; I ran into trouble with the Eclipse PDT installation for some reason. All of a sudden, it felt slow as mud when I was working with a project of some 100 source files and too many thousand lines of code. After I had Java dump (crash) on me a few too many times, and after experiencing some really slow SSH/SFTP connections to the development server, I was ready to check out NetBeans again.
I’ve thought many times about going back to more lightweight IDE:s like BlueFish, but every time I’ve done that in the past, I’ve ended up being disappointed. I know quite a few developers to use these packages, so I’m sure I’m doing someting wrong. Using Emacs is what I prefer, but as projects grow and the fact that Emacs has a rather weak PHP-support-base, makes it less-than-suitable for large-scale PHP projects.
So here I was, downloading NetBeans 6.9.1 for PHP. After having spent eight (8) minutes installing and configuring it, I spent the next two days playing with it. I still haven’t wrapped my head around all of it of course, but compared to my previous experiences with it, it’s looking mighty fine.
NetBeans is a good PHP IDE. No, let me correct that. NetBeans 6.9x is a *great* PHP IDE. It has a fast understanding of your PHP code (code completion for the PHP core *and* your own code, manual reference, PHPdoc reference, etc). I have yet to see that function fail (although I’m sure it will at some point). The remote editing handling in NetBeans has come a long way since I first looked at it (when it didn’t know how to spell SFTP). Its code reformatting works. The editor is quite clever (which annoyed me to bits before I finally sat down and figured out why it was trying to do something I didn’t want it to do), it’s easily configurable. In many situations, it does exactly what I’d like it to do; and that always surprises me 🙂
The only downside that I have found so far in my renewed relationship with NetBeans is that it lacks somewhat in visual themes and plugin repository for PHP and general web development. Other than that, I can’t really see any show-stoppers thus far.
I’m too old, I’m too tired, I’m too f-ing annoyed (*) with editors and IDE:s that don’t work the way I want them to work. That doesn’t mean they’re bad. It just means I don’t get along with them. 30 years ago, there was nothing to customize in these tools, 20 years ago I thought it was a challenge to bend the editor or IDE until I liked it enough, 10 years ago I began settling on something that came close to what I wanted. These days, I seem to be more interested in being productive 🙂
Just my two cents; I don’t know how you came to read this post. But if you were looking for a comparison of editors or IDE:s I’m sorry if I disappointed you. Since you are part of the equation of finding the “best editor” for your PHP development, there is no “best”. There’s only “best for you” 🙂
(for Android development, I use Eclipse because as of this writing there’s no clean way of doing it with NetBeans – and benefit from the Android API and its documentation – that I’ve found — I’m sure there will be at some point though.)
Keep on coding!
You can find NetBeans for PHP here: netbeans.org/features/php/
(*) Quote from the Scent of a Woman (Al Pacino) movie, slightly adjusted.