Product Review:
PerlBuilder 2.0


David Mertz, Ph.D.
Gnosis Software, Inc.
October 2000

At A Glance

Creator: Slava Pestov <sp@gjt.org> Price/License: GNU General Public License Home Page:http://jedit.sourceforge.net/ Requirements: Java 1.1 or above, with Swing 1.1

Background

As is well known, developers--and my WR readers specifically-- feel strongly about their text editors. I frequently receive recommendations to review reader's favorites. I was sent just such encouragement to try jEdit, which picqued my interest. jEdit is a text editor written in Java; so my first thought was to the rather negative overall experience I have had with Java applications. Far more often than not--at least in my experience--Java applications fall far short of Sun's promise of "write once, run anywhere." In fact, I rarely manage to get Java applications to meaningfully run at all, since I rarely have the precise same OS, JVM, libraries (and maybe karma) as the authors of the Java applications--which crash- and-burn variously otherwise.

Against my background of suspicion, I found that jEdit runs without any problems, it runs fast-enough, and it has a very nice range of features and a good interface. In fact, jEdit has a lot of quite cutting-edge and sophisticated features, many beyond other editors I have reviewed. jEdit just might be the best text editor I have found yet if cross-platform support is a consideration.

What Is Jedit?

jEdit is a GUI text editor written in Java and using the Swing graphics library (standard in Java2). It is nice looking, powerful, extensible, and friendly. It even has pretty decent online help. A lot of the most powerful features of jEdit are aimed at Java programmers (which I am not), but the general base capabilities are rich enough that you don't need to worry about such extras. Of course, if you are a Java programmer, you positively must try jEdit.

Some users are probably worried that a Java-based editor will be too slow. The truth is, Java applications are not as fast as native-compiled ones. But on a reasonably modern machine, jEdit keeps up with any text editing you might do. I wouldn't recommend Java-anything on an old 486 or slow Pentium, but my K6-II 333Mhz is easily more than adequate.

What It's Got

jEdit does more than I can describe in a short review. There is a lot that is "native" to jEdit, but even more is contained in "plugins." Plugins are bits of extra functionality contained in auto-loaded Jar files. jEdit makes locating, installing, and removing plugins almost completely effortless; once loaded a plugin can modify the basic behavior of the editor in a seamless way, or it can simply add an external function to the "Plugins" menu. Since I accepted jEdit's installation option to search the internet for plugins, and install them automatically, I actually do not entirely know which capabilities are default and which are extensions. The wonderful thing is, I don't need to know.

Plugins do things like insert code templates, beautify your code to style guides, browse class hierarchies, convert a syntax-highlighted document to HTML, email a buffer, pick HTML colors, highlight code errors, display context-sensitive JavaDoc documentation, comment code, perform various text transforms, and many other things. A lot of these capabilities are specific to Java-language code, but a lot are generic too.

The "native" jEdit consists of a tabbed document window, some buttons, a menu bar, and a "jEdit command-line." In 2.6 (beta at time of writing) advanced dialogs are generally dockable. The toolbar and menus are somewhat changed between the stable (2.5) and beta version (2.6), but in either the menus are clearly and intuitively arranged (2.6 is better).

Even without plugins, jEdit has syntax-highlighting for an amazing number of languages, numerous powerful search/replace options (including regex), bookmarks (called "markers"), nicely configurable edit areas, a basic keystroke-macro system, good text selection (including column) and modification options (e.g. indenting, capitalization, and the like), multiple-clipboard items (and something similar called "registers").

Even beyond the "basics" above, jEdit has two unusual, but very useful helpers. You can "expand abbreviations" (optionally as you type), and you can "complete word" with a hotkey. This latter gives you something much like the code-completion in an IDE like VB's. From what I can tell, jEdit compiles a list of all the words beginning with an initial few letters in your text, and pops up a list of them on a hotkey press. It saves typing and improves spelling.

What It Ain't Got

The main thing missing from jEdit is surprising, and quite disappointing for me. jEdit has absolutely no concept of word-wrapping and paragraph formatting. For typing paragraph text, you are sent back to typewriter days of watching margins and pressing hard returns. I bet paragraph capabilities could all be handled with a good plugin, but none seems to exist right now. Strange.

The only other quibbles I could raise are minor. Falling shy of my holy grail of editors, I miss folding capabilities (see my WR FTE review for an example). And even though the help system is well written, it has no search capability, and only a so-so index. Basically, the help system is some HTML pages that are rendered using a HTML Javabean (of so it looks). This is not terrible, but it could stand improvement.

About The Author

There is hardly anything David Mertz feels more strongly about than text-editors. It stands to reason after a tally of the hours and minutes of his days. You can find out copious biographical details by rooting around athttp://gnosis.cx/publish/.