How I Chose My Programming Editor
For many years I used a code editor that is now discontinued by its developers, and the introduction of HTML5 and CSS3 led me to look for an editor that supports the new tags and properties. In this article I’ll share the criteria and process I used to find an editor suitable for making quick fixes and a development environment for large-scale projects.
My initial candidate list contained over 30 popular Linux, Java, Windows and XUL software packages which had at least one stable release after January 1, 2010: Arachnophilia, Bluefish, Bluegriffon, CoffeeCup HTML Editor, Dreamweaver, Eclipse PDT, Emacs, Expression Web, Geany, gedit, HTML-Kit, jEdit, Kate, KDevelop, Komodo Edit, KWrite, Netbeans, Notepad++, Notepad2, OpenBEXI, PHPEdit, PHPEd Pro, PHPStorm, Programmer’s Notepad, PSPad, RadPHP, Scite, SeaMonkey, Vim, WebDev, WebMatrix, and Zend Studio. You can google each program for their specific details.
Round One – Auto-Completion and Syntax Highlighting
Component separation is the coloring of the different types of elements, like tags, functions and variables, on the editor’s screen, often referred to as syntax highlighting. Also helpful is the ability to locate a matching delimiter – parentheses, brackets, and braces – by selecting the opening one or vice-versa.
My first test was to check which of the editors in the original list offer these features out-of-the-box or, at least, with a simple to install module.
I immediately dropped three packages from further investigation: Emacs which required additional files that were difficult to install; OpenBEXI which looks like an interesting concept for web page development but isn’t really a scripting tool; and WebDev which didn’t seem to have a free trial version. I wish I could have tested a very good Mac IDE, Espresso. Their team sent me a lot of useful information and I’d encourage any Mac user to try it out.
For further evaluation, I selected the top 25%. That is, the following 8 ranked best with my criteria (listed alphabetically): Dreamweaver, Geany, Komodo Edit, Netbeans, Nusphere PHPEd, PHPStorm, Programmer’s Notepad, and WebMatrix. It’s interesting to note that four of those are free (as in free scotch) and four are paid software, and that four are Windows-only while the other four are cross-platform.
This selection does not imply that these packages are better than the others. It just means that they had more of the requested features than others. If, for instance, code refactoring were a priority for me, the results would have been quite different.
Round Two – Everything Else but the Kitchen Sink
The second battery of tests looked at the following list of features: code snippets/templates, code folding, bookmarks, automatic code-formatting, integrated debugging support, macro support, availability of refactoring tools, project management support, version control support, built-in FTP support, integrated command-line console, plug-in support, support for frameworks, editor customizations, whether the start-up time was acceptable, availability and completeness of documentation, and a few others. Again the focus was on out-of-the-box or click-to-install plug-ins, and it was a YES/NO test with each YES scoring one point. Here’s how it turned out:
- Dreamweaver – Scored 70%. Possibly the best known web development IDE, it’s a very powerful tool for the website designer though I find its interface a bit cluttered. It had some sort of code folding, but not what I’d expect.
- Geany – Scored 62%. It’s modular and highly expandable. It has a very light interface, but lacks proper FTP support.
- Komodo Edit – Scored 54%. A kind of open-source version of Komodo IDE, it was very clean and usable. I found it similar to Geany.
- Netbeans – Scored 75%. It was very impressive with lots of features but a clean interface. It takes about 13 seconds to start on my box (Dual Core 2GHz Intel, 2G RAM and Oneric Oncelot with Unity) which I gather is somewhat reasonable for such a complex application.
- Nusphere PHPEd – Scored 67%. A great tool, but with a very cluttered interface. Also, they seem not to like plug-ins very much. I read a forum post where someone asked how to create one and the answer was just “send us your ideas.” This was another NO.
- PhpStorm – Scored 75%, like NetBeans. In fact, it’s rather what NetBeans would probably look like if it were dedicated to PHP development. It seems to tax the processor a bit more, though.
- Programmer’s Notepad – Scored 46%. But then again, it’s supposed to be a simple, lean, well performing tool. It lives to its promise. It’s a pity that it’s Windows-only, though.
- WebMatrix – For sure, as a free website development tool, Web Matrix looks quite impressive. I did not rate it though as it seemed to be concept different from my idea of programmer’s IDE.
My Personal Choice
Although all the ones above are powerful programs for working with PHP code, I was the happiest with Geany and NetBeans. Geany is lighter with less features but is expandable with a growing list of community-maintained plug-ins. NetBeans is powerful but has a steeper learning curve and, though free and open source, is privately maintained. Possibly I’ll be using one or the other depending on the task at hand and after a bit of time settle on using just one.
Anyway, in about three years time I’m sure new IDEs will have come up and some of these here will have ceased development. It’ll be time for another review.
What I Learned Here
This article was painful to write. Checking every program in the list was a tiresome, sometimes infuriating, but nevertheless refreshing experience. It took a lot of research, downloading (including a 800MB wrong one!), and time for checking features. I revisited some packages I worked with years ago and discovered others I had never heard of. And it afforded me an interesting comparison between Linux’s repository system and Window’s installer concept as well as between the sizes and setup complexity that separates free from paid software. My desktop is cluttered with downloaded files and there’s a lot of deletions to do now that it’s all over. But I had the chance to do a planned search for an item I needed, something that I had never done before this way. I take from this experience that a search for a product or service should begin with checking simple but essential qualities in a large set and then looking for refinements in those that pass the first test. I also learned to leave my prejudices aside. I never guessed I’d end up putting NetBeans on my final list.
I never planned to tell anybody what’s the best IDE around. Really it’s a matter of what works best for you. But I hope to have helped some of you to devise a strategy for finding which currently is the one most suited to your needs.
Update Jan 17, 2012
I’d like to thank all readers kind enough to leave a comment here. It’s really rewarding to see that one’s writing is of interest and use to others.
I’d also like to stress that the goal of the article was much more to describe a research-and-decide method than to point out one best IDE, inasmuch as “best” in this case is a highly personal concept which reflects the user’s particular needs and tastes. Furthermore, the absence of any particular IDE from the study should NOT be construed as to mean a negative opinion of it. It simply means that I was not aware of its existence — mea culpa mea maxima culpa! — or that it did not seem to be in active development.
Anyway, readers interested in choosing his or her best IDE should by all means include the packages listed in the article PLUS those the most enthusiastic readers mentioned. With millions of developers all over the world, I’m happy to see that all IDEs and editors have a public of their own. Some religions believe that things have souls. I believe that software, in a way, has one too and it gets great comfort when its users display they care about it.
Happy and productive 2012 to all.