Komodo Breathes New Fire into IDE

By: Rob Reilly
Thursday, September 11, 2003 11:17:35 AM EST
URL: http://www.linuxplanet.com/linuxplanet/reports/5003/1/

Developers in Need

Computer users don't care much about how a program is coded or how much work it took to get it on their desktop. Software developers, on the other hand, are under constant pressure to deliver on schedule, cost, and quality. They grab any tool that makes producing software faster, cheaper, and better.

ActiveState had been doing Perl tools since day one and up until early 2000 didn't have an integrated development environment product. After numerous customer requests, the team decided that since the company was expanding from a "Perl for Windows" shop to a company that supported a variety of programming languages, it was a good time to take on the task. Thus, was born Komodo.

The newly formed Komodo group's mandate was to provide deep support for various programming languages including Perl, PHP, Python, Tcl, XSLT, as well as web standards like XML, HTML, JavaScript, and CSS. It seemed only natural to support programming on both the Windows and Linux platforms.

"People use Komodo in more ways than I'd ever imagined, from web development to building very complex applications to editing HTML and XML," said David Ascher, Senior Developer for the Komodo product. "Many of our customers use Komodo at work on Windows and then at home on Linux--they really like having the same tool available on multiple platforms," Ascher said.

This flexible approach must be working, since Yahoo! is a big user of Komodo for PHP development. The application development tool also recently grabbed the Best Development Tool award at the recent LinuxWorld Expo in San Francisco.

So what makes Komodo so appealing?

Enter the Dragon

Compared to editors like Emacs and vi, Komodo provides a more 'modern' GUI-based environment, which layers high-productivity tools on top of a powerful core editing environment. For example, Komodo will underline syntactically incorrect code, so that you can fix the errors before you try to run the program.

"Compared to other integrated development environments (IDEs) like Visual Studio or Eclipse, we distinguish ourselves by trying to keep the visual clutter and complexity of the user interface to a minimum," Ascher explained. "Many of our customers aren't professional programmers and they like that the user interface is easy to approach."

Many developers recognize the fact that using a certain tool usually demands a lifelong commitment to that tool. But there can be steep learning curve for those tools. Komodo has leveled the learning mountain by being extremely flexible.

A major feature of Komodo is that it can adapt to a programmer's style and to the management techniques of the project. For example, you don't even have to arrange your functions into projects if you don't want to. You can chose not to retain inter-file relationships. A developer could even use Komodo in its most basic form, as a straight editor, if they wanted. The system's flexibility makes learning a little easier and gives the developer any level of sophistication that is needed.

Configuration is all weel and good, but for development tools, automation is the name of the game.

One such automation feature is the ability to run scripts and external programs from inside of Komodo, which is great for web development.

For example, say you are working on a remote web server and needed to restart Apache often to check your changes. You could set up a button on Komodo and every time you wanted to restart Apache you could just click the button. Komodo would go out to the remote server and restart the daemon. Although this is a very simple example, the capability is there to design fairly sophisticated custom automation functions within Komodo.

Komodo also has features that are fairly unique, such as the Toolbox, that lets people extend Komodo by calling out to other programs.

"It's not an original idea (it's at the core the philosophy of Unix/Linux tools like grep and awk), but I'm quite proud of the way we've integrated that notion into an IDE environment. We spend a lot of time and effort making sure that features were well presented to the users--too many tools have great features which no one can figure out how to use", Ascher said.

Features are great, but what about pricing?

"There are three ways to buy Komodo", Ascher said. Standard pricing of Komodo Professional is $295. Students and people using Komodo for home or education can get a Personal Edition for $29.95, but that version doesn't include some of the more professional features like the GUI builder, integration with source code control systems or the Visual Package Manager.

The ultimate, Komodo Professional is included in the ASPN Perl and ASPN Tcl subscription bundles. These go for $495 the first year and $295 every year thereafter. The subscription includes several other tools, various online books and other features. Also, Komodo is licensed to a developer and is not tied to a language, computer, or platform.

Komodo encompasses a comprehensive set of features that make a developer's life easier. It's no surprise that the name would be coined by someone that does development for a living.

Behind the Scenes at ActiveState

Asked how Komodo got its name, Ascher replied, "It was a code name that I picked at the start of the project. ActiveState had a history of picking reptiles for code names. Since Komodo was built on Mozilla, I liked the fact that a real Komodo was both a reptile and a dragon. Much to my surprise, the product management team liked the name and it stuck."

There are a wide variety of developers behind the Komodo product. "Some of us are over-schooled, others are not," said Ascher, himself a Ph.D. in Cognitive Science. "Programming is something you really have to learn on the job, since what makes a good programmer is experience, not information," he continued.

All the Komodo developers have programmed in many languages on many platforms. Ascher believes that having a broad background makes taking on new technologies a lot easier.

"Several of us started working on Linux back in 1995 or so, although that was the early days for Linux, especially when it comes to high-quality user interface work," he said. Since the team builds cross-platform tools, they look for the similarities between platforms and not so much the differences.

Ascher said that they tend to curse the differences, in fact, since they make the job harder for no particularly good reason.

Ascher added some levity to the interview as he shared his thoughts on being a 'programmer's programmer.' "It's a great job. We build the tools that we'd want to use and our peers appreciate what we do. At the same time, our customers are a very demanding bunch, since half of them seem to think they could write the software better than us!"

Ascher is all business when it comes to the future of Komodo.

Right off the bat, Komodo 2.5 will be released very soon. It includes improved support for web development, lots of usability upgrades (including a significant performance boost) and a bunch of small but valuable features. Ascher and his team are currently defining the next major release in which he expects to see better support for 'programming in the large.' Some customers work with projects consisting of 100's or 1000's of files. A good example might be a client with a very large test infrastructure or web site. The programming in the large features will help developers handle these large, complex projects.

As computers become still more powerful, people will expect more support out of their development tools. Developers also don't want the additional 'support' to reflect negatively on their productivity. Ascher said that as more people learn scripting technologies, more and more programmers will expect to be able to customize (with code) how their tools work. Finally, Ascher speculated that the tools will become less isolated and probably integrating more with other parts of the developer's desktop, whether that's the browser, the revision control system, the bug tracking system, or the testing framework.

When asked about his thoughts on streamlining the software development process, Ascher replied, "I'm not a big believer in the magic power of methodologies--by that I mean that I don't think that any one methodology works in all contexts. In some contexts, Extreme Programming is probably the right thing to do. In others, it would be counterproductive.

"In some situations, test-first design is immensely useful. In others, it slows things down. On the other hand, I'm amazed by how quickly developers adopt a methodology when it's made easy. For example, having a good unit testing framework available makes testing much more likely to happen than otherwise. While that sounds silly, it's encouraging to me as a tool builder. It says that if the tools I build are good enough, then people will write software using better techniques and the quality of software in the world will improve."

Rob Reilly (aka: "Dr. Torque") is a Senior Technology Consultant, whose work includes Linux, business systems integration and R&D work for various clients. Rob's articles appear on LinuxToday.com and in PC Update Magazine. He frequently gives talks on his experience in the high technology, manufacturing and utilities industries. He is always 'on-the-lookout' for stories and projects that focus on Linux, business and new technology. Send him a note or visit his web site at http://home.earthlink.net/~robreilly.

Copyright Jupitermedia Corp. All Rights Reserved.