Visual SlickEdit 5.0
Manufacturer: MicroEdge, Inc.
Price: $295 US
Reviewer: Larry Ayers
I can't think of many commercial software packages that have been continuously evolving since the early days of the personal computer industry. Visual SlickEdit, MicroEdge's award-winning programmer's editor-cum-development environment, was initially released in 1988 as a DOS and OS/2 character-mode editor. This was when IBM was marketing text-mode-only OS/2 as “a better DOS than DOS”.
Clark Maurer, currently CTO of MicroEdge and still active in SlickEdit development, was employed at IBM's Watson research lab. He was one of the developers of the legendary internal IBM editor E; this experience enabled him to quit IBM and begin development of the first SlickEdit releases.
Having installed an earlier version of SlickEdit from floppy disks a couple of years ago, I anticipated no problems installing version 5.0 from CD-ROM. A GUI installation interface makes the process even easier than before, but I ended up with an installed editor which wouldn't even start up. After an exchange of e-mail and phone calls with MicroEdge's responsive and helpful service personnel, I still couldn't get it to work. I e-mailed a core-dump file to MicroEdge; it seems there were some compatibility problems with the particular version of Debian I've been running, which admittedly is the “unstable” release. The support staff even went so far as to install Debian 2.0 on one of their test-bed machines, and reported that SlickEdit started up just fine. Since there didn't seem to be any immediate solution to this problem, I installed SuSE Linux on a spare partition and soon had a functional editor. I imagine this particular incompatibility hadn't come to light before due to the nature of SlickEdit's normal user base, which probably uses older and more proven versions of Linux.
Customization possibilities are extensive. Aside from the expected keymap and syntax-highlighting adaptations which can be made, menus and pop-up dialogs can be altered and even created from scratch. Much of the editor's functionality is written in a C-like language called Slick-C, but the language itself doesn't need to be learned, as SlickEdit comes with a Slick-C IDE (integrated development environment) called the Form Editor. With this editor (which resembles Visual C), existing dialog boxes can be modified and new ones created from scratch. These two screen shots illustrate the HTML font dialog box opened for editing.
Making the guts of a program accessible to users, which enables almost unlimited tailoring of a program to individual (or corporate) preferences, is a familiar concept to Emacs users, but rare in commercial products.
SlickEdit is feature rich. Leaving aside the basic abilities any good programmer's editor should have, this editor abounds with useful functions, including:
SlickEdit is unparalleled in its broad base of supported platforms. Along with Linux, versions are available for Solaris, HP-UX, Digital UNIX, Windows 95/98/NT, SGI-Irix and IBM OS/390. The look and feel is identical across all platforms.
An extensive array of programming languages are supported, while new languages can be added easily.
Context Tagging can be quite useful. Expression type, scope and inheritance analysis are performed as you type. Members and inherited members of objects are displayed in a dialog, while at any time, you can navigate with a keystroke to the definition of an identifier, including class members, functions and variables.
Sophisticated file differencing (called DiffZilla) is similar to the traditional Linux diff utilities, but is controlled via dialog boxes and is thus easier to learn and use. The Diff dialog can operate on multiple files in a directory tree, while other directories can be excluded from the operation.
The search and replace functions are analogous to those in Emacs, even to the extent of including the invaluable incremental search, which allows searches to be completed as a phrase or string is typed.
Up to fifteen clipboards are available. Their contents are accessible from a dialog box and are saved between sessions.
Window treatment is easily controlled from the menu bar, especially important in an editor with so many possible windows. Tiling, cascading and linking windows are among the possibilities. All windows are confined within the main SlickEdit window and can be positioned and resized just as any X window can be.
SmartPaste is another editing convenience. Paste a cut or copied block of code into a file, and it will be re-indented automatically to the appropriate level.
SlickEdit makes good use of the IDE-inspired concept of projects, assemblages of source files and compiler command lines along with the working directory. These can be loaded as a unit and shared with other programmers. Another useful concept is the workspace, a higher-level collection of projects. Dependencies can be defined within projects in a workspace, so that one project must be built before another. Projects can inhabit more than one workspace, and (as with projects) workspaces can be shared with colleagues. Visual SlickEdit can open workspaces and projects created with Visual C++ and Tornado.
When more than one programmer is opening and modifying files and projects, some form of version control is essential. SlickEdit has built-in support for commercial version-control systems such as ClearCase, SourceSafe, SCCS and several others. Adding support for a new version-control system can be done easily.
This release sports enhanced HTML-editing capabilities. When used with the extensive collaborative and distributed development features, SlickEdit has positioned itself as a viable platform for web content creation.
Spell checking is exceptionally versatile in this release. Checking can be limited to comments and strings in source files, while HTML spell checking automatically ignores tags. Multiple files can be checked with one command, even recursing down into subdirectories.
Although it may seem odd for an editor to double as an FTP client, this feature can, in effect, let a user edit files on a remote machine as if they are local. Rather than manually downloading, editing, then re-uploading files to a site, the built-in FTP client lets these remote files appear and be accessed as if they are in just another local directory.
Previous versions of SlickEdit allowed users to emulate Emacs, Brief and vi key bindings, enabling UNIX users to come up to speed quickly. Version 5 introduces Visual C++ emulation, providing a similar service to users in the Windows camp.