I think my previous posts have already indicated that my development environment, specifically my IDE, is important to me, and that I make a habit of exploring my options on a regular basis. For the last 7 months I've been using NuSphere's PhpED, which I've really enjoyed. The only things that I've been just a little dissatisfied with is that it only runs on windows and that its window arranging capabilities are not as robust as Eclipse. But, having seen a few tweets about NetBeans, I decided to visit this old acquaintance once again.
I had used NetBeans ages ago when I was learning a little bit of Java. It was good enough... for Java. Then, some time ago I had tried NetBeans 6 (I don't recall which minor version), because I learned they were working on building a PHP IDE out of NetBeans, which intrigued me. At the time, I simply felt NetBeans didn't stack up to Eclipse, and I hadn't yet discovered PhpED. However, with some recent twitter traffic about NetBeans, I figured I'd give the latest incarnation a spin to kick the wheels a little.
For a quick summary of what I look for in IDEs and how I evaluate them, see my review of PhpED. Based on that, I'll try to be succinct:
- Customizable Interface - NetBeans does well here, allowing me to dock panes, minimize things for single-click fly-out, and even position code windows next to eachother. Also nice is the ability to "undock" a window to have it handled by the window manager as a separate window appearing in the task bar. NetBeans beats PhpED (which can't put code windows next to eachother) and Eclipse (which treats side-by-side code in a silly manner) in this category. Only downside is that dragging windows can be a little awkward compared to the other IDEs.
- Stability - NetBeans has yet to crash for me on Ubuntu 9.04 x64 or Vista 32-bit (used heavily on both).
- Fast - Startup takes a little, but that's faster than Eclipse, and doesn't bother me. Normal operation is good. Scanning projects to build auto-complete and such is faster than Eclipse (though hideously slower than Eclipse when scanning files on a Samba share), though slightly slower than PhpED. Speed of UI is good enough. Overall, PhpED wins in this category, but NetBeans is "good enough" to be perfectly usable.
- Project/File Management - NetBeans has the all-too-familiar project management pane. It has some nice features, good integration with the language, and nice right-click options. Nothing special, and it works well enough. IDEs tie here.
- Syntax Highlighting - Highlighting is fast and modestly customizable -- easier, I might say, than Eclipse. Add this to the ease of importing/exporting segments of settings, and you NetBeans just barely beats PhpED here as well. Only thing extra I want in NetBeans is separate highlight category for built-in PHP functions.
- Real-time, Remote Debugging - NetBeans works very well with Xdebug, using the IDE-triggered debug session model. I feel it does this slightly better than Eclipse, which always wants you to be creating debug profiles. Also, NetBeans path mapping has yet to get confused, while I'm always fighting with Eclipse in this regard. NetBeans is not as easy as PhpED with debugging. PhpED still wins here, but NetBeans is a close runner-up.
- Configurability - I haven't hit anything yet I wanted to configure but couldn't in NetBeans. IDEs tie here, but kudos to NetBeans for having the simplest yet still powerful configuration UI.
- Version Control Integration - NetBeans has a pluggable version control system and comes bundled with several widely-used VCS modules, including Subversion, which is my poison of choice. SVN module uses native binaries and is fast. VCS UI provides nice options and gives you pertinent info. NetBeans definitely beats PhpED's cop-out approach to VCS, but loses slightly to Eclipse with its better file "decorations" and full-fledged SVN browser.
- Other Integration - NetBeans has database integration, but it's clumsy and difficult to use if you work with a lot of variable databases (as I do). I honestly don't know about NetBeans' abilities with things like SSH or [S]FTP as I haven't tried to find them. PhpED wins for DB integration, and Eclipse wins for other integrations. I may stop considering this since I use external tools for most of this stuff now (mostly command-line).
- Updates - NetBeans hasn't been updated since I've been using it, but it's Open Source and seems to be building in popularity (just my perception). PhpED wins in this category, as they update very regularly.
All-in-all, I've come to be comfortable using NetBeans as my day-to-day environment. However, I keep PhpED open on my windows box to handle debugging, since PhpED just rules in that category still. Honestly, if PhpED had a Linux version comparable to its Windows version (PhpED for Linux is out of date), then I might abandon NetBeans. But, for now, NetBeans has earned a place in my workflow.