[comp.windows.news] Reprise: If Emacs is a text editor, Unix is a C compiler

mg@unipress.UUCP (required by law) (04/04/88)

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

randy@NCIFCRF.GOV (04/04/88)

> (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).  

    Quick clarification: The GNU license does *not* forbid embedding
  gnu-emacs in a commercial product.  What it does say is that if you
  ship gnu-emacs with your operating system, you must either 1) Ship
  the source code, or 2) Make your customers aware that they can get
  the source code for a *small* (tape handling) fee.  (You also cannot
  restrict redistribution *of gnu-emacs itself*).  If you develop
  a program starting from the gnu-emacs code, it stays covered by the
  provisions I mentioned above, but other software shipped with
  gnu-emacs does not.

> Also, unlike FSF, we LIKE NeWS.

    Now *that* is a major plus for Unipress!

> ------
> Mike Gallaher
> Emacs Hacker Boss
> UniPress Software

					-- Randy Smith

    (I in no official way speak for Freesoft and the above simply
  represents my understanding of the situation.  If you are interested
  in doing this, talk to them and their lawyers.  If you need to sue
  somebody over what I've said, sue me, not them)

  Randy Smith    @	NCI Supercomputer Facility
  c/o PRI, Inc.		Phone: (301) 698-5660                  
  PO Box B, Bldng. 430  Uucp: ...!uunet!ncifcrf.gov!randy
  Frederick, MD 21701	Arpa: randy@ncifcrf.gov

bob@allosaur.cis.ohio-state.edu (Bob Sutterfield) (04/07/88)

In article <8803291504.AA08952@unipress.uucp> mg@unipress.UUCP (required by law) writes:
> [...a bunch of other glowing stuff nobody can really argue with :-)
> [...also some impressivly balanced comments about how his own
> [...product compares to GNU Emacs...]

>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.

All Gosling code has been excised in recent versions.

>...GnuEmacs doesn't directly cost much money if you know where to get
>it (I think $150 from the Free Software Foundation).

Repeat the mantra: "That $150 is a tape copying fee."  If you don't
want to pay FSF to spin tapes for you, you can get it via anonymous
FTP from prep.ai.mit.edu, or via anonymous UUCP from osu-cis.

>Also, unlike FSF, we LIKE NeWS.

This is a FSF attitude that I entirely disagree with.  Chris Miao
added support for NeWS 1.0 in Emacs 18.49, and Clayton Elwell fixed
some stuff up for NeWS 1.1 in Emacs 18.50.  I understand that Chris's
changes were offered back to FSF as a contribution to their efforts,
but were turned down because of NeWS' proprietary status.

RMS, why not accept the changes on the same basis that VMS and SunView
are included in the distribution: work that willing contributors
offered, in order to give the product a wider audience, in those mean,
nasty, proprietary non-standard environments?

Yes, I know that RMS doesn't read this newsgroup, but if we get
everybody singing the first four bars... he'll think it's a movement!

>Mike Gallaher, Emacs Hacker Boss, UniPress Software
-=-
 Bob Sutterfield, Department of Computer and Information Science
 The Ohio State University; 2036 Neil Ave. Columbus OH USA 43210-1277
 bob@cis.ohio-state.edu or ...!cbosgd!osu-cis!bob