I’ve always been the type of programmer who’s used two editors: one for quick edits and another for larger-scale work. On Windows, my preference for quick edits has been SciTE, which I regard as a sort of “better than Notepad” editor that does just what I need-syntax highlighting, quick open and close times (that’s very important for us impatient programmer types), line numbers, and a good search and replace that includes regular expressions. For bigger work, I turn to full-blown integrated development environments-where I typically tap Visual Studio or Eclipse, depending on the project.
Then along comes SlickEdit 2009, which offers some of the best attributes of these two classes of editor. I’ve always been happy with my two-worlds approach to text editing, but SlickEdit’s mixture of capabilities just might have what it takes to entice me to tool unification.
While SlickEdit is an editor by name, the venerable tool (the release I tested is the product’s 14th) has long hovered a bit closer to the IDE end of the spectrum. For instance, where it’s common with slimmer editors to drop out of the application to debug or compile from the command line, SlickEdit features such broad language support and support for creating projects that developers of all stripes can do most of their coding and compiling right from within the tool. In fact, with Version 2009, SlickEdit has piled on enough new features, such as a complete debugger for Python, Perl and PHP code, that it can replace your IDE for all practical purposes.
I expect most programmers to come to love SlickEdit 2009 once they try it, but there is one significant downside to SlickEdit 2009: its cost. A single-developer license on Windows or Linux costs $299; on Solaris, it’s $399.
This kind of pricing is clearly intended for businesses and corporations that determine there’s a cost savings to using the product, and there’s certainly an argument to be made that productivity will increase with an editor like this. However, the availability of free options such as Eclipse and the express versions of Visual Studio might make it tough for programmers to convince their CFOs that the gain will be significant enough to justify the cost. That debate could be tougher still in shops that have already invested in costly Visual Studio enterprise licenses.
SlickEdit 2009 sports a set of new features that jumped out at me early in my testing, starting with a new symbol coloring capability that takes syntax highlighting a step further by coloring, for example, a private member variable differently from a member function.
Another cool SlickEdit 2009 feature called Smart Open helped me locate and open files more quickly by taking the first few file name characters I typed into the smart open dialog and pulling up a list of matching files from various directories within my workspace. Since large software projects often end up with dozens or even hundreds of directories, this could be a big timesaver.
I was also impressed by SlickEdit’s new Source Diff feature, which works like a traditional diff/merge utility with one important difference: This source diff program will ignore whitespace differences-a big help if comparing two files with few code differences but several layout and formatting differences. This is particularly common when dealing with files that have been run through an editor that “beautified” the code by replacing tabs with spaces, moving braces to or from a new line, and the like. I’ve seen cases in which diff utilities have practically choked displaying the changes between two files that had just one real code change between them. SlickEdit’s Source Diff, on the other hand, can see past superficial whitespace and formatting changes, and show you only the lines with actual code changes.
I tried out the Source Diff by taking an existing C# source file that had all the opening braces on their own lines, and then manually moving the braces to the end of the previous line-a superficial change that does not impact the code itself. Then I removed several comments. Finally, I made a “real” change where I modified the characters in a string constant. I toggled the Source Diff feature on, compared the files, and, sure enough, the program ignored the superficial brace changes and highlighted the lines where I removed the comments and changed the string constants.
Other new features include the ability to export and import some or all of your settings. This is important to any programmer who has ever had to move from one workstation to another. And the ability to export only some settings is useful if you want to share settings with somebody else without replacing all of the settings.
Although not new with the 2009 version, there are several features in SlickEdit that tempt me to give up my old standby editors. One feature lets you create macros for SlickEdit, as you would with any good IDE. SlickEdit has a powerful template feature where you can create a (or use an existing) template that can be used for creating new source files. These templates are categorized. For example, there’s a C++ template for a singleton pattern. If you create a new file based on this template, the file will start out with existing code for the beginnings of a singleton class.
Other not-so-new features include member list pop-ups, easy code navigation such as jumping to an identifiers definition, auto-completion (something I’ve come to rely quite heavily on, as it makes coding much faster) and an impressive regular expression evaluator.