For the most part I was pretty happy with Aptana. It includes code highlighting, it can upload files to my sites via FTP, it provides autocomplete suggestions as I type, it has a file comparison editor, and good search capabilities. It also works well with GIT for version control. But it also has a few small annoying quirks. One is the insertion of closing quotation marks. Usually it does a good job, but whenever I add escaped quotation marks within an existing string, it adds incorrect closing quotation marks. And it has been a little sluggish. When I’m typing fast, it is doing so much work in the background to try to find the autocomplete suggestions, and highlight matching items on the page, that the cursor would often lag a few milliseconds behind my typing.
I decided to give NetBeans a try. It installs quickly, and it was easy to add my existing projects and start trying it out. Besides the annoyance of learning new keyboard shortcuts for my common actions (copying lines up and down, and shifting lines up and down), which can all be customized back to the Aptana equivalents, it is easy to figure out, and the program settings are much more concise. It picked up the local GIT information for my projects, and FTP connections were also easy to create, so I was up and running very quickly.
It eliminated the cursor lag, which was an immediate improvement, and then I started noticing the subtle improvements. The comparison editor is much better than Aptana’s. It only allows changes in one direction at a time, which makes it much easier to understand, and reduces the chances of accidentally pushing changes in the wrong direction. The comparison editor also includes all the usual editor code highlighting, keyboard shortcuts, and other commands, which Aptana’s comparison editor does not include (like copying and shifting lines, for example).
Although it doesn’t have the quick “Find in file” and “Find in project” options in the menu (Search, Text, File or Project in the menu), it has a “Refactor” option which fills in the gap quite nicely, and actually does a much better job than find and replace. And when you do refactoring or “Find in Projects” in NetBeans, it gives you a preview or result list with handy check-boxes beside each item, and when you click on an item, it will show it in a preview pane, or a comparison editor for refactoring, so you can be totally sure you’re getting it right before you make any changes.
And because I do some work on projects that don’t use version control, one of my favourite features is the “Synchronize…” option in for uploading via FTP. Right click a file, or set of files in the Projects pane and select “Synchronize…” and it will which ones need updating. If you click on one, it can open it in a comparison editor with the remote file, allowing you to grab any of the remote changes before uploading your file and overwriting the remote copy.
So far I’m impressed, and will be keeping NetBeans as my primary IDE for PHP development.