A good programmer needs good tools and in web development this thing is particularly true mostly because programming is usually entertwined with design (despite heavy efforts for separation). Therefore, a good IDE is essential for a productive activity.

IDE stands for Integrated Development Environment and from the definition everyone should realize that an IDE is more than just a place to write code. A true IDE brings many tools in one place and I will ennumerate just the most prominent ones: code-completion, code-highlight (although this is present even in the simple code editors), code inspector, syntax check, diff capability, SVN/CVS support, remote development support, debugging, documentation support, formatting and refactoring.

I know many fans of classical editors (pico, vi, Notepad++ – the last two being quite great on their own, especially Notepad++ ) but it’s great to have all those things in one place and be able to check and deploy your code in one click. In the following I will list my favorite IDE’s and some of others that I worked with so that you may have some practical info, aside from what written on their own side. As a side-note, it’s really hard to find everything in one pack and so far I haven’t seen a pack that has everything I’d like.

1. Zend Studio: by Zend, the company behind php, should be the best but it’s not. First of all, it’s commercial, second of all, I find the interface very hard to adjust since it’s not very efficient space-wise and if I throw in all the features I use, then the code space becomes freakishly small.  It has nice support for most of those things, phpDoc, highlight, completion, inspector, etc. To be more specific, it has the best and most stable support for SFTP of the editors here, although the code-completion is not. SVN/CVS support is measly and when going from PHP to design, the support for JS, CSS, HTML is lackluster and blatantly annoying when combining PHP with HTML code. It doesn’t offer specific support for browser compatibilities, nor for standard doctypes (so that the tag closing/attribute style would change accordingly). Automatic formatting is weird. Doesn’t have remote SVN capabilities. It’s the lightest on resources.

2. Aptana:  I used to like it a lot and has support for everything, remote editing and CVS coming with plugins, while the rest are native. Refactoring is good, but formatting is weird and sometime the automatic engine makes awkward decisions but it can be adjusted. Doesn’t have SFTP support, which is annoying. Also a bit annoying is the code completion: it always kicks in for anticipation but once it’s there, any key you press acts in the context of the list that appears and since it’s also filled with the functions and classes from includes which have priority making it hard quite often to find the desired continuation. You have to press ESC everytime to go on. Bit heavy on resources.

3. NetBeans:  it forces you to use projects which means that no matter what, you must have a local file location. It’s quite counter-intuitive that you don’t get FTP options from the start, especially since for a first time user there’s nothing to indicate that you’ll ever be allowed to do that. In fact, at the first glance there’s nothing to indicate that you can open FTP connections in NetBeans and while that makes sense given the workflow, it can be quite a detterent (it was for me, I only got to use it when my Aptana crashed, see near the end). Another shortcoming relates to syntax highlight when combining PHP and HTML code: very often it shows you a line as invalid and can’t find closing tags if they are after a PHP piece (regardless if it’s with regular or short tags). It’s quite annoying if you’re the sloppy kind that doesn’t separate the two (or if you’re forced to work like that). Refactoring and formatting are the best (this is why I use it) I’ve seen, very fast and intuitive. A very good thing is that despite relying on JDK, NetBeans is quite fast and responsive as long as you don’t leave it in the background too long. If you do, recovering the application will be a troublesome experience (doesn’t crash, but your system will lag until it’s done, which might be a few minutes).

4. PDT2 :  the Eclipse plugin from Zend, it comes with Remote Development and while ok on the coding/debugging, it fails on the Remote DEvelopment (the plugin given the task of handling FTP, SFTP, etc). The FTP randomly disconnects, SFTP seldomly refuses to connect (on machines where other clients do connect) and if it does, it may not get the files to edit, and if it does you may not upload them back (I only managed to use SFTP for about 3 minutes). All in all, remote developing may be a frustrating experience which depends too much on the remote server configuration (while SFTP is a lost case, the FTP troubles can be alleviated by relaxing some security settings on the FTP server side … then again … why?). Refactoring is ok, code completion doesn’t always kick in. Being built on Eclipse, it’s heavy on resources but as long as you’re not doing Photoshop or video editing in the background, you should be ok.

5. Eclipse:  eclipse itself with the old PHPEclipse is … annoying. Slow, no SFTP, no SVN, unusable code-completion, no phpDoc (yeah, there is tag support but you’ll have to generate manually outside Eclipse). Did I mention slow? I’m an Eclipse fan for Java … but not in this case.

I mentioned above  something about an Aptana crash. Yeah, thing is I used to love Aptana (moved to it from Zend) but one day it simply wouldn’t go past the splash screen after a JDK update. All my other Java things were ok save for Aptana. I got the latest from the website, installed, no effect. I send a bunch of logs to the support, nothing came of it. So I moved on to NetBeans which is much better IMHO.

Zend is also very good feature-wise but the fact that it costs a lot ($500 for the top version, vs a whopping 0 -zero- dollars for NetBeans) is a serious handicap especially since it’s oh so far from perfect (and has an ugly and inneficient GUI).

Happy coding!

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)