Visual SlickEdit: A Commercial Editor for Programmers
Manufacturer: MicroEdge, Inc.
Price: $195 US
Reviewer: Larry Ayers
There is no shortage of high-quality free editors for Linux. A commercial editor would have to be quite powerful and easy to use to attract prospective customers in the Linux community, where the tradition of using freely-available software is deeply rooted. Visual SlickEdit, developed and marketed by MicroEdge, fits these two criteria. This editor is cross-platform, with versions available for all three Windows variants, OS/2 and a variety of Unix platforms. Recently MicroEdge released version 3.0 of SlickEdit, which brings several new enhancements to an already powerful editor. The closest free equivalents to SlickEdit are GNU Emacs and XEmacs, so in this review I will use these two editors as benchmarks for comparison.
In contrast to the two Emacs variants, SlickEdit is strictly an X application, although it originated as a character-mode editor. The character-mode console version is still available but is marketed separately.
Visual SlickEdit comes on five floppy disks. The installation is initiated by directly unpacking (using tar) the first disk's contents into a temporary directory, setting execute permission on an installation binary, then running the binary. From this point questions concerning preferred paths are asked, and eventually the option of whether or not to install the uncompiled macro files is offered. These *.e files aren't necessary for normal editor operation but can be installed if a user wishes to modify them. Not installing them will save some disk space.
I consider the choice of installation directories to be a very desirable feature, as each user will most likely have a different partition or directory with enough space. A full installation occupies about 18MB. Network installations are possible with each user sharing a common executable but running the program with personal initialization files and home directories.
The 250-page printed manual supplied with the software is well written and complete, though the well-indexed on-line help system (see Figure 1) offers more than enough guidance while learning to effectively use the editor. About a third of the printed manual is a reference guide to the Slick-C language, which is invaluable for advanced users needing to create new macros and routines.
The MicroEdge developers have written a new macro programming language for this editor called Slick-C, which is derived from C++. The syntax is very close to that of C++, but the language has built-in features which are useful for building graphical user interfaces. Slick-C is analogous to Emacs LISP in that many of the routines and functions of the editor are implemented as compiled macros which are called as needed by the main executable.
The developers of Slick-C have attempted to address several shortcomings of C++, such as the lack of built-in types. Boolean, string and container types can be useful when developing editing functions, and Slick-C is designed to work with such types. As with any application-specific programming or macro language, the disadvantage is the necessity of learning yet another language if extensive customization is desired. Slick-C is close enough to C++ that the learning curve for C or C++ programmers shouldn not be too steep, but it's still there.
Just as the Emacs LISP *.el files are ASCII text compiled for efficiency into *.elc files, the Slick-C *.e files can be compiled into binary *.ex files. The advantage of a separate macro language is that new routines and functions can be written without the need of a new executable, and macro routines tend to be easier to write and debug than an entire editor with the new functions included.
Clipboard Inheritance is an interesting feature of the language, allowing new code to be added to existing controls without affecting the original. That is, parts of existing dialog boxes can be copied to the clipboard and pasted elsewhere; if new code is added to the original dialog box, it is inherited by its offspring.
A feature which programmers will find useful is called SmartPaste. This is an intelligent, syntax-aware version of the standard editing function. If a block of code is cut or copied and then pasted into another source file, the indentation of the pasted block will automatically match that of the surrounding code. I'm unaware of an equivalent Emacs function, but evidently there hasn't been a strong demand or (I surmise) someone would probably have written one by now.
SlickEdit uses its own versions of several Unix/Linux utilities such as diff, find and grep, among others. This feature would probably be more desirable for users with the Windows or OS/2 versions of the editor. The only advantage under Linux is that the interface is via dialog boxes, and the utilities are optimized for use with the editor. In version 3.0 the traditional Unix regular expression syntax is supported.
Support for a variety of version-control systems is included, and unlike the Emacs editors, various commercial version-control programs are supported, which is an advantage for programmers working in a commercial environment.
The command-line window can be used to enter shell commands as well as native editor commands. The command can be executed in a separate terminal window, such as an xterm, if the output needs to be monitored or if interaction is required. Some basic shell conveniences, such as aliasing and command history, are built into this interface.
Like the various Emacs editors (and few others) SlickEdit has an incremental search command, finding the next match of a search word, phrase or regular expression as it is typed. In most cases, the search finds the desired pattern before it has been completely typed in, speeding up the process.
Most modern Integrated Development Environments, such as Borland's, allow all of the files involved in a programming project to be accessed as a unit. SlickEdit includes this feature. A SlickEdit project includes the working directory, compile/make command lines and a list of pertinent files. Tagging (like Emacs' Etags program) is supported, enabling quick navigation through function definitions and other programming constructs.
The syntax-highlighting support is well done and easy to configure, once again with dialog boxes. Several color schemes are included with the default installation, and they provide good starting points for further modification.
SlickEdit has a number of nicely implemented formatting features, such as the ability to indent or un-indent selected lines with the tab key.
Although this editor has its own file-manager window, the list of most recently accessed files found in the File drop-down menu is very convenient. A few other editors, such as Nedit and FTE, save a similar history of files opened in previous sessions, and it's a time-saving feature if there are certain files which are repeatedly loaded.
Some of the other useful features are:
three-way file merging
built in spell-checker and dictionary (not quite as extensive as ispell)
spell-checking can be restricted to only the comments and strings in source files
normally invisible characters such as tabs, spaces and end-of-line characters can be made visible
multiple clipboards with dialog interface
preconfigured support for many languages
C++ and Java code beautifiers
syntax expansion for several languages
file size up to one gigabyte
API Apprentice (help for APIs)
search and replace in multiple files, buffers or directories
multiple-level code folding, allowing comments, functions, etc. to be hidden and revealed at will
easily redefinable Enter, Backspace, Delete, Home and Tab keys
a variety of windowing treatments: tiling (horizontally or vertically), cascading, or a basic MDI interface
|Designing Electronics with Linux||May 22, 2013|
|Dynamic DNS—an Object Lesson in Problem Solving||May 21, 2013|
|Using Salt Stack and Vagrant for Drupal Development||May 20, 2013|
|Making Linux and Android Get Along (It's Not as Hard as It Sounds)||May 16, 2013|
|Drupal Is a Framework: Why Everyone Needs to Understand This||May 15, 2013|
|Home, My Backup Data Center||May 13, 2013|
- New Products
- Linux Systems Administrator
- Senior Perl Developer
- Technical Support Rep
- UX Designer
- Designing Electronics with Linux
- Dynamic DNS—an Object Lesson in Problem Solving
- Making Linux and Android Get Along (It's Not as Hard as It Sounds)
- Using Salt Stack and Vagrant for Drupal Development
- Nice article, thanks for the
7 hours 18 min ago
- I once had a better way I
13 hours 4 min ago
- Not only you I too assumed
13 hours 22 min ago
- another very interesting
15 hours 15 min ago
- Reply to comment | Linux Journal
17 hours 8 min ago
- Reply to comment | Linux Journal
1 day 2 min ago
- Reply to comment | Linux Journal
1 day 18 min ago
- Favorite (and easily brute-forced) pw's
1 day 2 hours ago
- Have you tried Boxen? It's a
1 day 8 hours ago
- seo services in india
1 day 12 hours ago
Enter to Win an Adafruit Pi Cobbler Breakout Kit for Raspberry Pi
It's Raspberry Pi month at Linux Journal. Each week in May, Adafruit will be giving away a Pi-related prize to a lucky, randomly drawn LJ reader. Winners will be announced weekly.
Fill out the fields below to enter to win this week's prize-- a Pi Cobbler Breakout Kit for Raspberry Pi.
Congratulations to our winners so far:
- 5-8-13, Pi Starter Pack: Jack Davis
- 5-15-13, Pi Model B 512MB RAM: Patrick Dunn
- 5-21-13, Prototyping Pi Plate Kit: Philip Kirby
- Next winner announced on 5-27-13!
Free Webinar: Hadoop
How to Build an Optimal Hadoop Cluster to Store and Maintain Unlimited Amounts of Data Using Microservers
Realizing the promise of Apache® Hadoop® requires the effective deployment of compute, memory, storage and networking to achieve optimal results. With its flexibility and multitude of options, it is easy to over or under provision the server infrastructure, resulting in poor performance and high TCO. Join us for an in depth, technical discussion with industry experts from leading Hadoop and server companies who will provide insights into the key considerations for designing and deploying an optimal Hadoop cluster.
Some of key questions to be discussed are:
- What is the “typical” Hadoop cluster and what should be installed on the different machine types?
- Why should you consider the typical workload patterns when making your hardware decisions?
- Are all microservers created equal for Hadoop deployments?
- How do I plan for expansion if I require more compute, memory, storage or networking?