Zend IDE Review

This week we’ll be reviewing Zend’s IDE + Debugger combination, which as the name suggests provide a complete development environment for PHP. While the IDE and Debugger are separate products, they really depend on each other so much, that we’ll treat them as one complete product in this review.

A couple of weeks ago, Zend finally released their long awaited product line, including much needed products, such as a stable, quality Cache as well as an encoder that allows you to encrypt and distribute your code. But are these products all that they’re hyped to be? Are they worth their price tags? Over the next couple of weeks I will be offering you my reviews of the different Zend products, the Zend Launchpad, the Zend IDE + Debugger, the Zend Cache and the Zend encoder.

This week I’ll be reviewing Zend’s IDE + Debugger combination, which as the name suggests provide a complete development environment for PHP. While the IDE and Debugger are separate products, they really depend on each other so much, that’ll treat them as one complete product in this review.

Installation

Zend IDE
The installation of Zend’s IDE is a bit tricky, mainly because the Zend IDE is a Java based product and therefore requires the JRE to be installed in order to work. On Windows systems this is no problem. Just download Sun’s JRE and follow the installation instructions, and you can be up and running in a matter of minutes (I had trouble with the IBM JRE, which is supposedly the best runtime environment to use). On Linux, installation is a bit trickier, especially if you use (like myself) a foreign keyboard. Sun’s Java Runtime Environment and the Zend IDE would not work with my keyboard. Therefore, I was forced to use the IBM JRE, which took me quite a while, and a whole bunch of hacks in order to get working.

As a side note, some people complained about the Zend IDE being written in Java, because Java is sooooo slow. While its true that this does make the Zend IDE harder to install, and it does run slower (just in the initialization phase however, it worked fine when it was up and running). I happen to agree with Zend in their decision to use Java, for two reasons. Firstly, Java is cross platform, that means everywhere the JRE is supported, the Zend IDE is supported. This is critical for large businesses who may want to have standard development tools, with developer’s who use many different operating systems. Secondly, betting on Java is not a bad idea, while it still is very memory intensive its getting better by the day, and it allows for easy extensibility should they ever open up the editor to plugins, etc.

Zend Debugger
Installing the Zend debugger was pretty standard. As the Zend debugger is like installing any other PHP extension. The documentation was ample (and I’ve installed more PHP extensions than I care to recall), so it worked as easy as 1..2..3 for me. One thing you might want to be aware of is that you have to make sure to edit your php.ini files according the instructions, I skipped over this and it threw me for a loop.

{mospagebreak title=Introduction} A couple of weeks ago, Zend finally released their long awaited product line, including much needed products, such as a stable, quality Cache as well as an encoder that allows you to encrypt and distribute your code. But are these products all that they’re hyped to be? Are they worth their price tags? Over the next couple of weeks I will be offering you my reviews of the different Zend products, the Zend Launchpad, the Zend IDE + Debugger, the Zend Cache and the Zend encoder.

This week I’ll be reviewing Zend’s IDE + Debugger combination, which as the name suggests provide a complete development environment for PHP. While the IDE and Debugger are separate products, they really depend on each other so much, that’ll treat them as one complete product in this review.

Installation

Zend IDE
The installation of Zend’s IDE is a bit tricky, mainly because the Zend IDE is a Java based product and therefore requires the JRE to be installed in order to work. On Windows systems this is no problem. Just download Sun’s JRE and follow the installation instructions, and you can be up and running in a matter of minutes (I had trouble with the IBM JRE, which is supposedly the best runtime environment to use). On Linux, installation is a bit trickier, especially if you use (like myself) a foreign keyboard. Sun’s Java Runtime Environment and the Zend IDE would not work with my keyboard. Therefore, I was forced to use the IBM JRE, which took me quite a while, and a whole bunch of hacks in order to get working.

As a side note, some people complained about the Zend IDE being written in Java, because Java is sooooo slow. While its true that this does make the Zend IDE harder to install, and it does run slower (just in the initialization phase however, it worked fine when it was up and running). I happen to agree with Zend in their decision to use Java, for two reasons. Firstly, Java is cross platform, that means everywhere the JRE is supported, the Zend IDE is supported. This is critical for large businesses who may want to have standard development tools, with developer’s who use many different operating systems. Secondly, betting on Java is not a bad idea, while it still is very memory intensive its getting better by the day, and it allows for easy extensibility should they ever open up the editor to plugins, etc.

Zend Debugger
Installing the Zend debugger was pretty standard. As the Zend debugger is like installing any other PHP extension. The documentation was ample (and I’ve installed more PHP extensions than I care to recall), so it worked as easy as 1..2..3 for me. One thing you might want to be aware of is that you have to make sure to edit your php.ini files according the instructions, I skipped over this and it threw me for a loop.

{mospagebreak title=Functionality} The What’s What
The Zend IDE and Debugger combination provide a basic IDE functionality set, nothing fancy, it has the basics, including syntax highlighting, html autocompletion, auto-indentation, and a few other frills found in most modern text editors. Without the debugger itself the IDE is really just a sub-standard text editor with PHP bindings.

However, don’t get me wrong, as I said earlier, there is more to the picture. Where the IDE does come through is in its integration with the Debugger. While the Zend IDE on its own is nothing more than a text editor, when you integrate it with the Zend Debugger, it becomes a valuable tool. Once integrated with the debugger the IDE then provides the ability to use debugging features such as setting watches and breakpoints in your PHP code, which is simply not possible with any other editor (yet).

Missing Features
While the Zend IDE does support a basic feature set, it still misses some features that are very important in order for it to move from a good IDE to an excellent IDE. To start off with I’d personally like to see both CVS and FTP integration built-in with the IDE. The PHP Manual should be integrated with the IDE (ie, built-in quickref, when you have problems with a function or function-usage just hit ), its also missing other nice features such as custom macros, function auto-completion/syntax definitions, gui component viewing, gui page designer, etc.

Ease of use
With some IDE’s learning to use the IDE is a process within itself (case-in-point: emacs). Luckily that isn’t the case with the Zend IDE. The interfaces to the Zend IDE are quite simple, and if you cant figure out something by looking at it (and fooling around a bit), then you can always look through the distributed documentation (however, because the ide is simple it doesn’t have nearly the power of a more complex ide such as emacs or KDevelop).

Other IDE’s?
The Zend IDE is not the only option, currently there are quite a few editors out there that are available for free or at a low cost, here I’ll give the skinny on how the Zend IDE compares with these other IDE’s.

PHPEd
The PHPEd, is a very nice (windows-only) IDE. It includes advanced debugging features, ftp integration, code completion, code templates and a built-in webserver for debugging. It still is a work in development however, and it did have a few unseemly crashes. Regardless, If you’re soley developing on a windows platform this is the product that I’d use.

UltraEdit
UltraEdit, http://www.ultraedit.com, is an advanced editor for the windows platform. Its pretty much the editor I’d use when developing with the windows platform. However, its not PHP specific (although with a little tweaking, it can be an excellent editor). It doesn’t have the Zend IDE’s ease of use or the integrated debugging features, but if you want a good editor for the windows platform, UltraEdit is it (the Zend IDE with Debugger is better for PHP coding, but for anything else, UltraEdit is excellent, its one of the only thing I miss about Windows).

Emacs
Where do I start? Emacs is the ultimate editor (at the risk of starting a holy war), with some tweaking and a little bit of work it can be an impressive PHP development environment. However, the power that emacs provides also has a downside, learning to use emacs and work with it at a level that makes things easy is probably harder than learning PHP itself. So, if your happy using emacs, I don’t suggest switching, but in general, emacs does not make a good PHP IDE, simply because the learning curve is so large.

Nedit
Nedit, http://www.nedit.org, is an excellent X-based text editor for the Linux environment. It provides much of the power a program such as (although emacs is definetly better, in the authors humble opinion) emacs provides with an easy to use frontend.

Conclusion
While the Zend IDE leaves much to be desired as far as its feature set is concerned, if you are looking for a cross-platform IDE, with debugging capabilities its currently the only way to go. Overall the IDE has much promise, and I hope that as time goes on, some of the features that I require get added so I can stop hacking my PHP scripts in emacs.

{mospagebreak title=Functionality} The What’s What
The Zend IDE and Debugger combination provide a basic IDE functionality set, nothing fancy, it has the basics, including syntax highlighting, html autocompletion, auto-indentation, and a few other frills found in most modern text editors. Without the debugger itself the IDE is really just a sub-standard text editor with PHP bindings.

However, don’t get me wrong, as I said earlier, there is more to the picture. Where the IDE does come through is in its integration with the Debugger. While the Zend IDE on its own is nothing more than a text editor, when you integrate it with the Zend Debugger, it becomes a valuable tool. Once integrated with the debugger the IDE then provides the ability to use debugging features such as setting watches and breakpoints in your PHP code, which is simply not possible with any other editor (yet).

Missing Features
While the Zend IDE does support a basic feature set, it still misses some features that are very important in order for it to move from a good IDE to an excellent IDE. To start off with I’d personally like to see both CVS and FTP integration built-in with the IDE. The PHP Manual should be integrated with the IDE (ie, built-in quickref, when you have problems with a function or function-usage just hit ), its also missing other nice features such as custom macros, function auto-completion/syntax definitions, gui component viewing, gui page designer, etc.

Ease of use
With some IDE’s learning to use the IDE is a process within itself (case-in-point: emacs). Luckily that isn’t the case with the Zend IDE. The interfaces to the Zend IDE are quite simple, and if you cant figure out something by looking at it (and fooling around a bit), then you can always look through the distributed documentation (however, because the ide is simple it doesn’t have nearly the power of a more complex ide such as emacs or KDevelop).

Other IDE’s?
The Zend IDE is not the only option, currently there are quite a few editors out there that are available for free or at a low cost, here I’ll give the skinny on how the Zend IDE compares with these other IDE’s.

PHPEd
The PHPEd, http://www.soysal.com/PHPEd/ is a very nice (windows-only) IDE. It includes advanced debugging features, ftp integration, code completion, code templates and a built-in webserver for debugging. It still is a work in development however, and it did have a few unseemly crashes. Regardless, If you’re soley developing on a windows platform this is the product that I’d use.

UltraEdit
UltraEdit, http://www.ultraedit.com, is an advanced editor for the windows platform. Its pretty much the editor I’d use when developing with the windows platform. However, its not PHP specific (although with a little tweaking, it can be an excellent editor). It doesn’t have the Zend IDE’s ease of use or the integrated debugging features, but if you want a good editor for the windows platform, UltraEdit is it (the Zend IDE with Debugger is better for PHP coding, but for anything else, UltraEdit is excellent, its one of the only thing I miss about Windows).

Emacs
Where do I start? Emacs is the ultimate editor (at the risk of starting a holy war), with some tweaking and a little bit of work it can be an impressive PHP development environment. However, the power that emacs provides also has a downside, learning to use emacs and work with it at a level that makes things easy is probably harder than learning PHP itself. So, if your happy using emacs, I don’t suggest switching, but in general, emacs does not make a good PHP IDE, simply because the learning curve is so large.

Nedit
Nedit, http://www.nedit.org, is an excellent X-based text editor for the Linux environment. It provides much of the power a program such as (although emacs is definetly better, in the authors humble opinion) emacs provides with an easy to use frontend.

Conclusion
While the Zend IDE leaves much to be desired as far as its feature set is concerned, if you are looking for a cross-platform IDE, with debugging capabilities its currently the only way to go. Overall the IDE has much promise, and I hope that as time goes on, some of the features that I require get added so I can stop hacking my PHP scripts in emacs.

[gp-comments width="770" linklove="off" ]

chat