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.

Twitter

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]

@ejacqui You mean the PSPs retarded little brother?

@dshafik [15 hours ago]

Books & Things