IDEs for Drupal and more

For the company I am employed at, we are maturing in our development skills and in the complexity of the website projects we embark on. Since coming on with the company in January, we have all been using HomeSite as our development tool. But since it has lots of shortcomings as just a really good text editor, I decided to test out a few other IDEs to recommend my company switch to. I compared Eclipse with the PDT (PHP Development Tools) plug-ins and ActiveState's Komodo (while passing on Zend Studio, since we do develop in PHP, we are branching out into other languages as well. The following is the comparison and recommendation that I sent to our COO for consideration. Any comments or further options are welcome so I can update my full recommendation.

WebDev Productivity Tools IDE Research and Recommendation

Introduction and Summary

As the projects my company embarks on become more feature rich and complex, so should our tools, both for bid management and for technical development. Even though productivity tools will never be the silver bullet for great product development speed gains (since no such silver bullets exist, Steven McConnell, Rapid Development), not investing in current and emerging tools and training will lead to a strategic decline in skills and development speed compared to the rest of our market competitors.

Since my company is maturing in our development skills and needs, we should move away from just a really good text editor (which Macromedia Homesite is one of the best) to a full featured Integrated Development Environment (IDE).

For this recommendation, I thoroughly used two new tools, Activestate’s Komodo IDE, a commercial product retailing at $295, and the open source Eclipse IDE (with the PHP Development Environment (PDT) plug-ins), and compared it against are current tool, Macromedia’s HomeSite.

After two months of use, comparing the common elements and all the points of differentiation, my recommendation is to move to the Komodo IDE platform. It is a fast tool, with a mature release, a reliable roadmap and all the needed tools (library references, code completion functionality, JavaScript suite, Ruby on Rails support and others unexplored) to support us as we grow.

Though I don’t know HomeSite in all aspects, I had been working with it for 9 months before using the other two products, so I the most experience with it. For the Eclipse testing, I downloaded, configured the 3.1 stable release of Eclipse and PDT, and tried it out for the month of October and the first two weeks of November (6 weeks in total). Lastly I downloaded a 21 day trial version of Komodo. I used each tool exclusively as I was testing them so as not to be distracted for learning the tool.

I also considered Zend Studio, a commercial product for around $300. I did not chose to conduct a demonstration for this application because it only supports, which is not as useful as the others since they can help with PHP, JavaScript, Ruby, XML, XLS and others languages. Also, I didn’t want to compare a PHP only solution to IDEs with multiple language support, since we may want to branch out from PHP only business solutions. 

Evaluations 

High Level Impressions

HomeSite does what it does well, being a good text editor. In all of the common elements it usually performs better than the other two products. Generally quick, and easy to navigate, this tool really is one of the best editing tools out there. There are also advanced editing features it lacks like function auto-filling and code folding. More importantly it lacks the features that support more complex programs like multiple programming language support, syntax checking and integrated debugging. Lastly, HomeSite is a dead project with no future outlook.

Eclipse had a ‘wow’ factor when installed and compared to HomeSite. Syntax checking, integrated code references, library function assists, code folding and tons of language support. It also has integrated debugging that speeds development, though I didn’t take the overhead to set it up. Being an open source also obviously has the no-cost and community support advantages. But after a couple weeks, the shine wore off. Performance was the main thing. Between its constant search of updates (finally turned that feature complete off) and it long save times when it had to re-build the project, its long rumored lack of speed on PCs (works better on Macs I am told) started to wear on me.

Komodo didn’t have the same ‘wow’ effect, since by the time I tried it out I had gotten used to all the ‘extras’ that Eclipse offered. It also had the syntax checking, integrated code references, library function assists, code folding and multiple language support. Admittedly, Eclipse at points looks a lot better, like for the code folding process, file browsing and the general curves of the program. But Komodo did it more consistently. I never really had to wait for anything to happen. Also, it has much better function and variable completion tools, and code look routines that scan your project thus expanding its library of functions.

Common Elements

First, a listing of the common elements that all the tools share. Each tool accomplishes these tasks in different way, some better than others, but the differences are minor and melt into the background once the tool has been used for a week or two. Therefore no comparison on which product does this better will be offered for these common elements.

HomeSite, Eclipse and Komodo accomplish all of the following tasks:

File Browsing – view all files on a Windows machine or Windows mounted file system in an integrated pane.
Text coloring/highlighting – use different color schemes to enhance readability (Eclipse and Komodo highlight parenthesis’s and braces as well).
HTML Tag completion – closes most recent tag when encounter the beginning of a close tag, or automatically inserts the closing tag when the open tag is written.
Auto-indenting – Readability measure to keep nested items at the same indent depth
Map-able shortcuts – Create new or override system shortcuts
Advanced Search/Replace(s) – Search or Replace through multiple files across the file system at once. 

Detailed Comparison

For a more technical comparison, I will compare each tool against the following set of criteria:

Overall Speed – a subjective measure of how often I felt I needed to wait for the tool.
Programming language support/reference – How many languages and how good is the support?
Debugging support – Does the tool offer integrated debugging?
Syntax Checking – Does the tool offer syntax checking?
Function and Variable Auto-completion – How fast and extensive is the auto-completion?
Source Code Control integration – Does the tool offer SCC integration?
Roadmap/Community support – Does the tool have a bright future?

Included is a numeric ranking from 1 to 10 (highest) for each tool. The tool that was the best at each category will be ranked a 10, with the others ranked in comparison.

Criteria

HomeSite

Eclipse

Komodo

Overall Speed

Generally fast everywhere.

Rank: 10

Files saves and project build could bring the system to a
crawl.

Rank: 5

Only slow when initially loading a new file system.

Rank: 9

Language Support

None.

Rank: 1

Supports: PHP, JavaScript, Ruby, Python, Perl, XML/XLS,
and many more. Most languages covered. Best inline support for language
reference.

Rank: 10

Supports: PHP, JavaScript, Ruby, Python, Perl, XML/XLS,
and many more. Had the best syntax checker and more thorough language support
in covered languages.

Rank: 10

Debugging

None.

Rank: 1

Supports two different debuggers (Xdebug and Zend
Debugger), but harder to initially configure.

Rank: 8

Only supports Xdebug, but was faster to setup.

Rank: 10

Auto-completion

None.

Rank: 1

Only auto-completes standard library functions. Special
setup needed to complete new functions.

Rank: 7

Auto-completes library functions, custom functions when
point at direct, as well as variables.

Rank: 10

SCC Integration

The file browser passes through the Windows SVN client.

Rank: 10

Couldn’t get SVN integration to work, but did have it own
internal system.

Rank: 6

Windows and Komodo SVN systems sometimes interfered. Long
sequence to get installed.

Rank: 8

Roadmap/Future

None. An abandoned project.

Rank: 1

Good. Zend Studio will offer a commercial plugin for PHP
next year. Numerous other community projects for other languages constantly
in the works, moving at differing speeds.

Rank: 10

Good. A mature commercial product. Branching an open
source solution to gather some community development, but also keeping
numerous commercial products.

Rank: 10

Though Eclipse and Komodo are close on many fronts, the performance issue really hurt Eclipse and the extensive auto-completion really helped Komodo. The time savings from fewer keystroke via the auto-completions and not having to open up a PHP reference for library function usage, will pay for Komodo in a couple months. Add on to that the debugging features and JavaScript development tools and I can see no reason not to move on from HomeSite.

Komodo was faster? I find

Komodo was faster? I find that surprising. I've tried the demo version of Komodo IDE (circa June or so), and on my admittedly not recent Linux computer it was sluggish in doing just about everything. Like, every keystroke felt slow.

I'm using Eclipse PDT now at home. Earlier versions of Eclipse were simply too slow for me to even bother keeping on my system. The current version is OK, but still not stellar, and I've also run into the "build on save" problem with PHP projects (what is there to build?). That's especially a problem when I have, say, the entirety of the Drupal Contrib repository checked out. :-) I still haven't successfully gotten debugging to work.

It may be effectively single-language, but Zend Studio 5.5 is still the best PHP IDE I've used by a huge margin. I use it at work, and it's a delight. It's also the fastest of the "big IDEs" on my home desktop, despite being written in Java like Eclipse. It's the only one I've gotten the debugger working in. Its code completion is practically perfect (whereas Eclipse and Komodo were both barely usable when I tried them), etc.

Is there a new version of Komodo out since June? I suppose it may be worth trying again, but I'd really prefer to stick to open source for my personal development needs. That's why for now I still suffer through Eclipse. :-)

Surprised you did not

Surprised you did not mention the full Drupal API support built into Komodo. That was a major selling point for me.

Suprised you haven't build

Suprised you haven't build your own tools for dev Drupal.
What are you designers?!

Excellent and methodic

Excellent and methodic test!

A couple of points on Eclipse (my working desktop now has Eclipse PDT 3.3.0 on Ubuntu Gutsky 7.10 with Java 1.5 sdk and 2 MB memory, and have followed the instructions at http://drupal.org/node/75242 on configuring Eclipse PDT for Drupal development):

* I have used it for over 5 years, and I must say that it keeps getting much better and that the newer versions always grow in features and performance.
* I have used it extensively for Java (j2ee), Ruby on Rails (radrails: great project!!!) and in the last year or so PHP also.
* For the last two or three years or so, I can say that SVN has always been flawlessly integrated with the plugin subclipse.tigris.org, now up to snuff with CVS, which always worked. I am using it right now.
* The IDE doing performs autocomplete and function lookup on all drupal stuff (since it recognizes module, engine, inc, etc as php code as per the drupal handbook page cited above).
* I think Zend debugger is now supported, but haven't actually configured it.

I understand about the problem of having to present the most efficient solution for the job at your company, and Komodo (I did try the paltry 30-day trial, liked it, but the 30 days didn't give me the chance to make it compete with Eclipse, especially knowing I had very productively used the former on other languages and platforms) may be the right solution for you situation here. However, just wanted to share my own experience. I think you have inspired me to do a more detailed and thorough writeup.

saludos,

Victor Kane
http://awebfactory.com.ar

Just like Victor Kane, I've

Just like Victor Kane, I've been using eclipse for Java an C development for the last 4 years. I've even written a few eclipse plugins (like Clearcase integration), so my opinions might be biased :)
I will not try to push you into using eclipse, because if the speed is not good for you, it becomes the major annoyance in the end, but i just want to share some extra info on eclipse.

1. It is possible for eclipsePDT to auto-complete on ALL drupal functions. I think the trick is to add *.module, *.inc, *.install to the PHP Content Type.
I.e. Go to Windows > Preferences >> General > Content Types > Text > PHP Content Type
Than, add the above *.module and *.install to list op PHP content Types.

2. I agree with Victor on the almost perfect integration of CVS and SVN in eclipse. In some companies, non-developers were even using a plain-vanilla eclipse with on subversion and CVS plugins installed as there Version Control Tool (iso just using TortoiseCVS/SVN on windows pc's),
Could you provide some more info on why version control integration was not as smooth as for HomeSite?

3. I DO agree that setting up the debugger is a real pain in the $%$#. I've been able to set it up to break on a simple testscript, but i never came as far as attaching it to my localhost running PHP, and just break when i load a drupal page in my browser.
This is how i have been doing debugging on my struts/jsf/j2ee applications the last years.

4. For Ruby On Rails... try out Aptana Studio. Itś also a great product.

5. I've tried Komodo IDE, but i just don get it going. Maybe i should investigate more time in it to get it working because a lot of drupal-core people have selected Komodo over Eclipse. I just have to be enlighted I guess :0

"Surprised you did not

"Surprised you did not mention the full Drupal API support built into Komodo. That was a major selling point for me."

Well I mentioned in passing by saying it looks through your own code (if you set it upon the correct directories) and expands it library of auto-completions. But this was a plus compared to Eclipse which only had the standard library completions.

Larry, there is a newer 4.1 release, which I was using on a PC with 2Gigs of RAM. Also, if you can get your company to buy it for you, you can place it also on your home machine since the license is a multiple machine, one developer license.

Victor/Roel, thank you for the comments. I figured that I didn't take the time to research Eclipse to it fullest. Maybe I didn't have it optimized for my system, but the performance issue was really killing me on my PC. I will amend my comments to note that Eclipse is able to perform auto-completes on all functions.

Thanks for the thorough

Thanks for the thorough write-up, it's nice to see people giving Komodo a serious review in terms of Drupal development specifically, it's been a personal mission of mine to improve support over the years due to my love of Drupal and my position on the Komodo team.

One feature currently available in Komodo 4.2.1 that I love as a Drupal hacker is the JavaScript autocompletion and the inclusion of a jQuery catalog for autocompletion. For all you Drupal hackers getting more and more into jQuery coding, I suspect proper support for the jQuery api is a killer feature.

cheers, Jeff ( Komodo Community Support Guy )

Hi, Thx for the post, I

Hi,

Thx for the post,

I was looking myself for such a comparison. I however disagree on how difficult it is to work with Eclipse / SVN, because actually it's pretty easy. Assuming you have a phpClipse All-in-one base, you just have to look for the module http://subclipse.tigris.org/update_1.2.x and it works just fine (I get all my projects running like this). => so I guess the real svn rank is much closer to 8 (not to say 10).

I didn't see any comment on how flex integration is going on though, and as a matter of fact, I could'nt get my phpClipse workin with the flex builder plugin, seems phpClipse is still not in a 3.2 eclipse base, so this should be a good point in the roadmap if it's foreseen.

thx again for the post,

Lorenzo, I was using the all

Lorenzo, I was using the all in one, PDT/Eclipse download. When I tried to get the update/addon for subclispse it kept telling me that I didn't have a correctly plugin/library of some sort. I fiddled for over two hours which included a full clean re-download/setup of eclipse to no avail. I am sure that it does work somehow. Since SVN can be accessed from other ways, it wasn't a deal breaker for me. Just annoying that I wasted a couple hours.

Jeffg, the one reason that I didn't try out PHPEdit and Zend Studio was that Komodo and Eclipse support some many other languages other than PHP, with JavaScript and JQuery high on my list to move from casual knowledge to mastery. So I am glad to hear of this new support.

For anyone interested in

For anyone interested in Komodo but put off by one thing or another, ActiveState has launched OpenKomodo
http://www.openkomodo.com/

I hadn't previously used Komodo save for a trial or two in the past... but now I'm trying out OpenKomodo. The Drupal-sense code hints is a nice touch. I did find it to be clumsy adding new directories and files to my project tho (but that could be a user problem).

Please, add to review

Please, add to review Codelobster PHP Edition
It is my favourite free PHP IDE.