IDEs
As a developer, I estimate that my IDE (particularly a web-browser integrated debugger) improves my development ten-fold. Over the past 5 years or so I’ve been using Zend Studio (ZDE) — however, I have been unsatisfied with the Eclipse-based effort that Zend turned to after Zend Studio 5.5. As such, I have continued using Zend Studio 5.5 but have been looking for alternatives as it will not be updated to support new features like Namespaces, Closures and Traits. So far, I have tried Zend Studio for Eclipse/PDT, PHPEclipse (briefly), Komodo IDE and Netbeans. None of them have come close to replacing ZDE except for Netbeans. Below is some requirements and a comparison table for these I have tried so far:
Requirements
- Cross-platform — I have a team that spans Linux (Gentoo/Ubuntu), Windows (XP/Vista), and of course: Mac OS X
- Full-fledged server-side debugger — it must be possible to debug GET and POST requests through both Firefox (2+) and IE (7+) as well as CLI, profiling is a bonus
- Extensive auto-complete support, using phpdoc comments to auto-complete on objects that are instantiated or returned from functions, static class methods, constants, etc. As well as the standard internal functions/classes/constants etc.
- Revision Control — Should support subversion at least
- Database integration — should be able to connect and query the databases I use
- Good Project Management — should save breakpoints, open files, cursor locations, and not junk up code-directories with meta-data. Multiple open projects is less necessary.
- Bug Tracker integration — specifically, Trac
- Allow custom font themes and keyboard shortcuts — I love me some inconsolata font
- Have an attractive, usable UI, that is responsive and customizable
- Should run on a modest machine and use minimal resources
- Is actively being developed
- Is responsive to user concerns/bugs
These requirements do not seem all that difficult, well, perhaps the cross-platform one is — I’d settle for 2 of 3 platforms, so long as one of them is OS X.
Comparison
| Feature | ZDE 5.5 | PDT | Komodo | Netbeans |
|---|---|---|---|---|
| Cross-platform | Yes1 | Yes1 | Yes2 | Yes1 |
| Debugger | Yes3 | Yes4 | Yes5 | Yes5 |
| Use local-code when debugging | Yes | Yes | Yes | No |
| Supports Firefox/IE? | Yes | Yes | Yes | Yes |
| Supports Watches? | Yes6 | Yes7 | Yes8 | Yes8 |
| Supports Stack Viewing? | Yes | Yes | Yes | Yes |
| Displays output even when buffered? | Yes | Yes9 | No | No |
| Profiler | Yes | Yes |
Yes10 | Yes10 |
| Supports GET? | Yes | Yes | Yes | Yes |
| Supports POST? | No | No | Yes | Yes |
| Supports CLI? | No | No | Yes | Yes |
| Auto-Complete | Yes | Yes | Yes | Yes |
| Uses phpdoc? | Yes | Yes | Yes | Yes |
| Allows in-line documenting? | Yes | Yes | No | No |
| Revision Control | Yes | Yes | Yes | Yes |
| Database Integration | Yes11 | Yes11 | No | Yes11 |
| Project Support | Yes | Yes | Yes | Yes |
| Project seperated from FileSystem? | No | Yes | Yes | Yes |
| Saves Breakpoints? | Yes | Yes | No | Yes |
| Saves Open Files? | Yes | Yes | Yes | Yes |
| Out-of-Project meta-data? | Yes | No | No | Yes12 |
| Multiple Open Projects? | No | Yes | Yes | Yes |
| Bug Tracker Integration | No | Yes13 | No | No |
| Customization | ||||
| Font Themes? | Yes14 | Yes | Yes | Yes |
| Keyboard Shortcuts? | Yes14 15 | Yes | Yes | Yes |
| User Interface | ||||
| Responsive? | No | No | Yes | Yes |
| Customizable? | Yes | Yes | Yes | Yes |
| Uses Few Resources | No | No | Yes | Yes |
| Is Actively Developed | No | Yes | Yes | Yes |
| Responsive to User Concerns/Bugs? | No | No16 | Yes | Yes17 |
| Open Development? | No | No18 | No19 | Yes |
1 Java based
2 XUL Based (like Firefox)
3 Proprietary Zend Debugger
4 Proprietary Zend Debugger and xdebug
5 xdebug
6 Watches can be created before and during a debug session
7 Watches can be created before and during a debug session when using the Zend Debugger, only before when using xdebug
8 Watches can only be created prior to the debug session
9 Only when using Zend Debugger
10 No UI for profiling with xdebug, it is simply available as you have it loaded, you must use kcachegrind/wincachegrind to read profiler output
11 Supported Databases vary, however MySQL at least is available
12 You must manually specify a different meta-data directory when creating the project
13 Via the Eclipse Mylyn addon, which has awesome ticket-sensitive contexts — each ticket treated like a project, saving open files etc and loading them when you switch tickets and is in fact the impetus behind this requirement
14 Buggy, customizations are lost whenever you edit any other settings
15 Buggy, some can’t be overridden properly — using Cmd+S for delete in the file tree is just STUPID and can’t be changed
16 Releases are very slow in coming, have consistently missed projected release dates, very little community interaction despite mailing lists.
17 Stable and development releases are quick in coming, a recent bug I reported was fixed in 2 days, with a nightly available to test that night.
18 Despite being open source, PDT is not openly developed
19 While not necessarily forthcoming with all alpha/beta releases, ActiveState do always have public betas and such.
Also: it's Friday? >.<
@dshafik [2 hours ago]
OK, who's preordered my iPad for me? :D
@dshafik [2 hours ago]
@janinaz I checked out your IMDB, very cool that you got into an episode of Dollhouse :)
@dshafik [15 hours ago]
@dshafik Hey0, ;)
@janinaz [15 hours ago]
@ejacqui You mean the PSPs retarded little brother?
@dshafik [15 hours ago]
