logo

 

     
 
Home
Site Map
Search
 
:: Bitwise Courses ::
 
Bitwise Dusty Archives
 
 
 

rss

 
 

ruby in steel

learn aikido in north devon

Learn Aikido in North Devon

 


Section :: software

- Format For Printing...

Komodo IDE 4.0

Multi-platform IDE for dynamic languages
Monday 12 March 2007.
 

Komodo IDE 4.0 $295
ActiveState http://www.activestate.com/
Runs on Mac OSX 10.3; Linux and Windows (XP/2000/Vista).
This review looks at the Windows version

Komodo IDE 4.0

Why would anyone buy a commercial IDE when working with languages such as Perl, Python, PHP, Tcl and Ruby when there are already plenty of free Open Source alternatives? There is, in my opinion, a one word answer to that question: quality.

Don’t get me wrong. I’m not dismissing Open Source IDEs. Some of them are good; one or two are extremely good. Even so, if I were looking for a multi-language environment, supporting two or more of the languages mentioned above, I have to say that Komodo would be my first choice.

The ‘official’ description: “Komodo IDE 4.0 is the first unified workspace for end-to-end development of dynamic web applications. A rich feature set for client-side Ajax languages such as CSS, HTML, JavaScript and XML, coupled with advanced support for dynamic languages such as Perl, PHP, Python, Ruby and Tcl, enables developers to quickly and easily create robust web apps.” http://www.activestate.com/products/komodo_ide/

Komodo is more than an editor. It also includes an integrated project manager and a debugger. In the previous version (3.5), it even provided a visual design tool, or ‘GUI Builder’, but this has been removed from the latest release. At first sight, that decision might seem odd. In truth, I have to say that the visual designer was the thing that least impressed me about Komodo 3.5. It really wasn’t anything like the tightly integrated form designers of Delphi, say, or Visual Basic. For anyone who misses it, however, you will be glad to know that it will be continued as an open source project called SpecTcl.

Before going any further, I must admit to a special interest. As one of the developers of Ruby In Steel, a commercial Ruby programming IDE For Visual Studio, I think I can claim to be better qualified than your average reviewer to give an informed opinion on an IDE for dynamic languages. What I can’t do, however, is claim to be impartial. In an attempt to minimize any bias I have deliberately omitted any critical comment on Komodo’s support of the Ruby language. You should not infer from that omission any opinion (either for or against) on Komodo’s Ruby features.

Editing and More…

While Komodo is more than ‘just’ an editor, its editing features are, nonetheless, its greatest strength. The editor has all the obligatory code colouring features and it provides code ‘folding’ for a range of language constructs such as classes, methods, blocks and loops. It has bracket matching and drag-and-drop copy-and-paste; you can add bookmarks and breakpoints in the editor margin and you can selectively toggle the display of line numbers, white space and indentation guides (dotted vertical lines which show ‘tab stops’).

It has reasonably effective code-completion (what Komodo calls ‘Code Intelligence’) which supplies drop-down lists of methods after variable names when programming Ruby, Perl or Python. While it is not foolproof, the code completion generally does a reasonable job and, for the three previously-mentioned languages, code completion is derived from an analysis of the code itself rather than relying on simple ‘alphabetical completion’ (arbitrary but not necessarily appropriate drop-down lists).

Code completion for PHP takes the less satisfactory form of looking up functions in a text file rather than analysing your code [Correction]. Other languages, ranging from Tcl to JavaScript, have varying degrees of Code Intelligence. You can also create code-completion snippets. Simple snippets are easy to create and can, with only a little more effort, be made to include autoexpanding elements such as dates and file paths. Snippets can also interact with the user by prompting for input. A macro feature lets you record keystrokes or write macros using the JavaScript or Python languages.

The licensing of Komodo is pretty generous. It allows a single developer to install the software on more than one system or platform. So if you have several PCs or if you work on multiple operating systems, one license will suffice as long as you are the sole user.

Browsing and Debugging

One nice tool is the Code Browser. This lets you view a tree-structure showing each identifier in its scope. So, for example, a class inside a module will be shown to be indented beneath a branch showing that module; a method in the class is indented beneath the class and so on.

The Code Browser

The integrated debugger offers the ability to watch variables including drill-down into data types such as arrays, and to step through code after you hit a breakpoint. While I have not tested the debugger extensively with all the supported languages (let alone on all supported operating systems!), I have to say that in general it seems to be quite sluggish. It’s fine for debugging short and simple bit of code but for serious debugging sessions, the speed would be a disincentive.

Other new features in this release include a DOM viewer for to navigate XML, XSLT and HTML in a tree view, Vi emulation for anyone who can’t live without the keystrokes used by the Vi editor and support for user-defined languages so that you can create colour coding for languages that aren’t natively supported by Komodo – though it’s worth noting that Komodo already supplies colour coding for a huge array of languages ranging from ADA to VB (though omitting, curiously enough, the increasingly fashionable D language).

One nice touch is the provision of tutorials (and sample projects) for Perl, Python, PHP and Ruby in the Help system. These only cover the basics, however. As a Python novice, I tried out the Python help in the hope that the tutorial and sample files would give me a speedy way of getting to grips with the Python language. In fact, the language-specific tutorials only covers details of using the features of Komodo (editing, debugging, project management); they don’t teach much about the language itself, though links are given to web-based resources.

Note: ActiveState has recently launched a free editor, Komodo Edit. This has similar editing capabilities to the commercial edition of Komodo but lacks an integrated debugger and various other utilities. Download Komodo Edit

In Conclusion

Overall Komodo does not absolutely shine at any single thing. It has a good editor and an adequate debugger plus a project manager and various productivity tools such as snippets and macros. But then again, so have many other IDEs. To be honest, if I were looking for a single-language IDE – one that supports just PHP or Perl or Python or Ruby – Komodo might not be my first choice; but if I were looking for an editor that supports two or more of those languages, then it probably would be.


See also:
- The Komodo 4.0 Feature List
- Review of Komodo 3.5

[Correction]

Komodo IDE 4.0 does have PHP ’Code Intelligence’ analysis for code completion - the help documentation incorrectly states that it does not (see Comments).

AddThis Social Bookmark Button

Forum

  • Codelobster PHP Edition
    20 January 2011, by Stas

    I use free PHP IDE Codelobster PHP Edition (http://www.codelobster.com) It work much better for me.

  • Komodo IDE 4.0
    12 March 2007, by Trent Mick

    Hello, Thank you for the review. I am the developer of the "Code Intelligence" system in Komodo. Regarding your comment:

    “Code completion for PHP takes the less satisfactory form of looking up functions in a text file rather than analysing your code.”

    This was true in Komodo 3.5, but as of Komodo 4.0 PHP (and JavaScript as well) join Perl, Python, and Ruby in having completion based on static analysis of your code.

    • Komodo IDE 4.0
      12 March 2007, by Huw Collingbourne

      Thanks for the update. I admit that I did not do extensive testing of PHP autocompletion. The Komodo Help system does, however, state:

      Note: Currently, only Perl, Python and Ruby use the Code Intelligence system for autocomplete and calltip support in Komodo.

      ...

      PHP autocomplete and calltips use the built-in function definitions contained in the file phpfunctips-.txt. This file is in the php subdirectory of the Komodo installation directory for your platform.

      I’ll take a closer look at PHP code completion and write an update shortly.

      best wishes

      Huw


Home