Todays Integrated Development Environments have, over several generations, matured into robust tools with broad, tightly coupled, feature sets. Visual Studio, arguably the most popular of these, has bloated into a super-sized development application that provides environments for multiple languages and presents to its users a labyrinth of pop-up menus, pull-down lists and tabbed configuration panels. However, even with all of its program options and settings at your fingertips, the thirst for slicker interfaces and more powerful keyboard shortcuts is never sated.
Enter SlickEdit 2007, a sleek, feature-rich development tool which, while labeled a “text-editor,” embodies many of the features that define an IDE. Indeed, the text editor is in many ways the central component of a developers tool kit, with the compiler, linker and debugger serving as the backend framework upon which the developers code is built. By calling upon these other separately installed development tools, SlickEdit essentially replaces your IDEs user interface and adds to it a more comprehensive integration package with an array of powerful editing features that are otherwise lacking in your standalone applications.
With a per-user price tag that ranges between $284 (for a single-user, single-platform installation) and $799 (for a concurrent user, multiplatform installation) it is fair to ask if the value that SlickEdit 2007 adds is really worth the price. Since SlickEdit does not provide a compiler, linker, or generalized debugging capability of its own (the software does ship with a debugger for GNU C++, Java, and CLR), the cost of the program is above and beyond what you will have already paid for your backend applications.
Furthermore, installing SlickEdit on top of say, Visual Studio 2005, creates a user experience that is only marginally enhanced. Much of SlickEdits aesthetic characteristics, as well as many of its features, are virtually indistinguishable from the Microsoft IDE. If cost is an issue, SlickEdit 2007 probably does not add enough extra horsepower to justify the price, especially if you are already comfortable with your current environment.
With that said, SlickEdit is certainly true to its name. Its setup and configuration sequence is a snap. Upon launching the application for the first time, the user is prompted to select from a list of many supported compilers. After pointing the editor to the appropriate backend appliance, then selecting your favorite text editor emulation mode, the tool opens into a two-column layout with three docked windows, reminiscent of many other popular IDEs (e.g., Visual Studio, CodeWarrior). SlickEdit interprets most project file formats and can import a pre-existing workspace without any issues or complaints. After installation, it takes literally two minutes to configure the program, open an existing project and begin developing.
Overall, SlickEdit 2007 is a very attractive tool, with powerful features that make your text editing and coding tasks more efficient. It integrates well into your existing framework such that it can suffice as a virtual replacement for your IDEs user interface. With only a few minor wrinkles that are easily managed, SlickEdit 2007 is an easy way to improve your environments editor, without introducing any additional complexity. Previous versions have already gained popular acceptance, and if you are willing to shell out a couple hundred extra bucks, SlickEdit 2007 is a nice enhancement to your existing toolkit.
Whats more, SlickEdit 2007, which began shipping in March, boasts impressively broad platform support. In addition to the Windows version that I tested, SlickEdit 2007 runs on Linux, Mac OS X, Solaris SPARC, Solaris x86, AIX, HP-UX and IRIX platforms.
For software developers who find they are working in an environment that does not support their native editor, SlickEdit is an attractive solution. Its broad list of text editor emulation modes provides plenty of options when working on new or restrictive platforms. Consider, for example, an open-source developer, bred on VI or Emacs, working within a Visual Studio context. That developer can choose to open his/her project files in Visual Studio and work within the strictures of the Microsoft text-editing paradigm. Or with SlickEdit, they can keep the editor that they are accustomed to, and maintain their focus on writing code, using familiar tools and editor shortcuts.
In addition to various emulation modes (Visual C++ 6, GNU Emacs, VI), SlickEdit has its own powerful library of built-in features and macros that includes auto syntax completion, source/comment block hiding, smart line selection, and class/object browsing. These features are where SlickEdit really demonstrates its chops. Simple hot key combinations allow you to jump to object definitions and references anywhere in the project; a feature similar in concept to Visual Studios source browser but much slicker and easier to use. After typing a control statement like “if,” “for,” or “while,” auto syntax completion fills in the parentheses and curly braces according to the style rule of ones choosing. It then highlights the control block, and easily lets you move lines of code into and out of the block using up and down arrow presses. Entire blocks of code can also be hidden from view, to facilitate the readability of a source file, keeping your attention focused on exactly what you are working on. These coding shortcuts are extremely seductive, and when you switch back to your baseline IDE, their absence is palpable, quickly festering into an impatient annoyance with your tired old tool.
SlickEdit provides for additional integration by including a version control interface and built in file merge tool. In the case of Visual Studio, third-party file merge tools like WinMerge must be deployed separately to augment the development environment. The diff utility provided within SlickEdit, on the other hand, serves as a total replacement for WinMerge, with an almost identical side-by-side directory and file comparison interface. The main tool bar has individual controls, with associated keyboard shortcuts, for merging single lines of text, code blocks or entire files. The convenience of having this functionality built into the editor means less mouse clicks and less time spent launching separate applications.
The version control interface, on the other hand, leaves a lot to be desired. Like the compilation and linking capabilities, the version control interface must be associated with a locally installed version control client. The set-up for this feature is relatively straightforward, provided you have your server information handy, but the reward for your configuration efforts is a slim, clumsy interface that fails to meet expectations. In the case of CVS, several other applications exist that provide better management of your local checkouts, and more intuitive methods to commit and compare file versions against what is checked-in to the repository. SmartCvs and TortoiseCvs are some such examples of CVS clients superior to what SlickEdit provides. Unlike its diff utility, SlickEdit still has some catching up to do with regard to its version control front end.
SlickEdit 2007 provides a built in debugger for GCC and Java projects, but for everything else it spawns an external debugger to provide this functionality. This external spawning of the debugger is a bit ridiculous, since it must open your IDE, load the project and run the compiled executable. In practice, it makes sense to simply have both SlickEdit and your IDE open at the same time. When the time comes to step through your code, it is much simpler to toggle to your IDE manually, set up your break points and run the debugger. The external spawning is just an additional, and confusing, extra step that wastes more time than it is trying to save.