Path: utzoo!mnetor!uunet!husc6!think!ames!pasteur!ucbvax!unipress.UUCP!mg From: mg@unipress.UUCP (required by law) Newsgroups: comp.windows.news Subject: Reprise: If Emacs is a text editor, Unix is a C compiler Message-ID: <8803291504.AA08952@unipress.uucp> Date: 4 Apr 88 14:25:43 GMT Sender: usenet@ucbvax.BERKELEY.EDU Organization: The Internet Lines: 86 I had sent this a couple of weeks ago but it apparently never made it... Yes, I'll put in a plug for Emacs, too. It's definitely the most powerful development tool for NeWS (or for most anything else). Although some people balk at having such a heavyweight behind something like a file browser (Emacs is *not* tiny), I think it's well worth it. All you need is one Emacs session running to handle many such things at once. Besides, the sort of people who run NeWS in the first place are the sort who would run Emacs as well. I literally consider a machine to be unusable if it doesn't have Emacs. (Emacs has a pig reputation in some circles, dating from the days of 40-user VAX/780s; if someone disparages Emacs, ask them when they last used it and where.) Emacs is a very nice environment for developing under NeWS. You can run a NeWS server listener in a window, which is akin to running psh in a psterm window, except that listeners are editable with command recall, etc. You can edit PostScript code in another editor window, and load it (or some part of it, such as the nearest 'def') into the NeWS server listener with two keystrokes. This allows very fast prototyping (as long as you don't confuse the server too much with bogus code). The editor has a mode designed for editing PostScript code, which is sensitive to comment/code contexts, so you can fill a paragraph within a comment, for example. There is a database of descriptions of the PostScript and NeWS operators, so you can see a description of something by mousing it. You can add descriptions of your own things very easily. In itself, Emacs is a programmable working environment which is very effective at gluing programs together. It provides a ready-made, user-customizable/extensible front-end and command dispatcher. It includes a set of subsystems, including a customizable on-line documentation reader and a file-system browser, that are useful in many applications. It is possible, for example, to build a sophisticated front end to a dumb program (i.e., one with a stone-age user interface, like raw dbx) very quickly. If there is any interest, we'll provide an ed(1) interface later on. You can write programs in (around?) Emacs, using it as a "user interface toolkit". It provides text editor windows and listener windows, which present an interactive program (such as a shell) in an editable window, so you can review the session, recall previous commands (a la Korn shell), cut and paste between other listener/editor windows, write listener sessions to files, stuff files to the programs, etc. Since it's Emacs, you can extend it with keyboard macros (somewhat like event journaling but much easier to handle; journals become commands that you can bind to keys) and extension language code. If you do things right, your program can be usable from a dumb terminal as well as under a window system without your having to rewrite a lot of UI code. There are a few programs around these days that call themselves Emacs. The comments above apply to the bigger ones (not so much to Jove or uEmacs). We (UniPress) sell a commercial version of Emacs originally written by James Gosling, who also wrote NeWS. GnuEmacs is a free (but not public domain) version also descended from Gosling's Emacs. The two have diverged considerably in the 3-4 years since then, but they have roughly equaled each other in capability (although you can easily start religious wars over that). The last time I looked ours had more native window-system support (e.g. using multiple window-system frames), a somewhat fancier text editor, and was smaller and a bit faster. I don't know what's happened to GnuEmacs since then -- anyone care to fill that in? (Pardon my natural bias, but I also find the UniPress code more readable and easier to work with.) However, GnuEmacs has a real Lisp as its extension language, with all that implies, because its post-Gosling developers were heavily under the influence of MIT. (The MLisp extension language in UniPress Emacs resembles Lisp but isn't.) GnuEmacs doesn't directly cost much money if you know where to get it (I think $150 from the Free Software Foundation). If either will do what you want, GnuEmacs is good if you want a free Emacs or if you want real Lisp; UniPress Emacs is good if you don't mind paying (it's $395 binary+MLisp source, $995 for that plus C-source), or if you want someone to be accountable for fixing any bugs you find, or if you want to embed it in a commercial product (the Gnu license forbids the latter). Also, unlike FSF, we LIKE NeWS. The Emacs we're shipping now (V2.15) has only rudimentary but adequate NeWS support; you can use the mouse to point at things and drag modelines and text around, but it uses only one NeWS window for its editor "windows". We are currently developing a version of Emacs that uses NeWS to advantage, using multiple NeWS frames (i.e., windows) and many other neat interface objects (if you're proficient with the keys you can use Emacs as a window manager, and seldom need to use the mouse for anything at all). It's in its first round of user testing now, but it won't be generally available until this summer (that's "software developer" summer; sorry I don't have a more exact date). We'll be at Usenix in June, where there's bound to be a NeWS BOF. ------ Mike Gallaher Emacs Hacker Boss UniPress Software