IDEs: A Better Alternative

An IDE — Integrated Development Environment — is a program that makes programming easier by providing core features and functionality that aids development.

Coding in Notepad (and Nano!) is not cool. If you were online in the 90s, you have probably seen the Made with Notepad banners. As anyone who has ever used an IDE can tell you, “What were they thinking?!” Notepad is the veritable bastard child of programming editors. Sure! It comes on every Windows computer, but so does MS DOS’ edit.exe, and you don’t see anyone using that, do you?

MS DOS Edit

Basic IDEs

Features found in virtually all IDEs include

  • Syntax Highlighting: Like the code in this book, IDEs highlight code syntax enabling a much more pleasant and efficient experience.
  • Syntax Error-checking: :IDEs will notify you when you make typos, saving you time troubleshooting later.
  • Debugging support: This is the primary distinction between true IDEs and software editors (like KomodoEdit). It is almost certainly the most important.
  • Code auto-completion: The IDE will scour the entire application’s code base and will provide auto-completion for things like functions, constants, variables, and class properties. Not only will you not make as many typos, but it’s a great way to figure out what properties and functions are accessible via an object.
  • Project management: With IDEs, you can easily keep related files in a project, making organizing your code easier.

Advanced IDEs

Advanced IDEs also tend to support

  • Integration with source code Version Control Software (VCS), such as svn, bzr, cvs, etc.,
  • Integrated unit tests and code coverage,
  • Easy access to remote files via SFTP, etc.,
  • Direct database querying/editing,
  • Profiling support :An often overlooked feature, profiling shows you exactly what is taking up processor time and memory, enabling you to optimize your application with precision otherwise unavailable.

PHP IDEs

There are a lot of software projects claiming to be “PHP IDEs”. This article will only cover the advanced ones.

Features Matrix

Features PHPed NetBeans Zend Studio Komodo PHPStorm
Developer NuSphere Oracle Zend (PHP’s co) ActiveState JetBrains
Platform(s) Windows Cross-platform Cross-platform Cross-platform Any
VCS Integration Any [1] Plugins * Plugins * CVS, SVN only [2] Any
Unit Test Integration None Complete [3] Complete [4] Partial Complete
Remote Files Very good [5] Very Good [6] Bad [7] None Very good
Direct DB Client Very Good [8] Decent [9] Decent [10] Very Good [11] Very Good
Profiling Support Very Good Not Really Very Good None Not Really
Speed Very Fast Functional Very Slow Slow Fastest
Price $299  Free $439  $295 $99

* Plugins may or may not exist for a particular RCS. NetBeans, for instance, doesn’t have a [[Bazaar]] plugin.

As you can probably tell, there still is no one-size-fits-all option at the moment, even though NetBeans shows much promise (it was started in July 2009 and is the youngest of the group).

My preference, by far, is JetBrains PHPStorm.

Notes

  1. PHPed uses the OS’ file context menu, so any RCS with shell support will work with it.
  2. http://docs.activestate.com/komodo/4.4/scc.html
  3. http://netbeans.org/kb/docs/php/phpunit.html
  4. http://www.typo3-media.com/blog/zend-studio-unit-tests.html
  5. http://www.nusphere.com/products/php_sftp.htm
  6. http://blogs.sun.com/netbeansphp/entry/sftp_support_added
  7. http://files.zend.com/help/Zend-Studio/ftp_and_sftp_support.htm
  8. http://www.nusphere.com/products/php_database_tools.htm
  9. http://netbeans.org/kb/docs/ide/mysql.html
  10. http://www.zend.com/en/products/studio/features#dataconnect
  11. http://community.activestate.com/komodo-60-features#database_explorer