[gnu.misc.discuss] Why does emacs do so much that is not editing?

msw@unix.cis.pittsburgh.edu (Matt S Wartell) (08/14/89)

I have just recently begun using GNU Emacs and am very impressed.
However, I am curious about a bit of philosophy that seems to be
behind the emacs way of thought.

In particular, emacs attempts to do everything.  In some ways, this is
nice; for example, the ability to reconfigure an editor to support
LaTeX is useful.  However, does an editor really need to know how to
read mail, post news, run an Eliza session or establish a telnet
connection?  This seems to be counter to the Unix philosophy of ``a
tool should do one job and do it well.''

Does GNU emacs do all of these `extra' tasks because it can, or is there
a compelling reason to do everything from within the editor?

Please, do not read this as a criticism of the support packages that
come with emacs, but rather as a query regarding the Buddha nature (:-) 
of emacs.
-- 
matt wartell, university of pittsburgh             msw@unix.cis.pittsburgh.edu

bob@tinman.cis.ohio-state.edu (Bob Sutterfield) (08/16/89)

In article <19115@unix.cis.pittsburgh.edu> msw@unix.cis.pittsburgh.edu (Matt S Wartell) writes:
   ...emacs attempts to do everything...  This seems to be counter to
   the Unix philosophy of ``a tool should do one job and do it well.''

Perhaps you're looking at it wrong - each elisp package is a tool, and
does its single job well.  Emacs is just the Lisp interpreter and user
interface veneer that provides a common way to get to them all.

art@buengc.BU.EDU (A. R. Thompson) (08/17/89)

In article <19115@unix.cis.pittsburgh.edu> msw@unix.cis.pittsburgh.edu (Matt S Wartell) writes:
>I have just recently begun using GNU Emacs and am very impressed.
>However, I am curious about a bit of philosophy that seems to be
>behind the emacs way of thought.
>
>In particular, emacs attempts to do everything.  In some ways, this is
>nice; for example, the ability to reconfigure an editor to support
>LaTeX is useful.  However, does an editor really need to know how to
>read mail, post news, run an Eliza session or establish a telnet
>connection?  This seems to be counter to the Unix philosophy of ``a
>tool should do one job and do it well.''
>
>Does GNU emacs do all of these `extra' tasks because it can, or is there
>a compelling reason to do everything from within the editor?
>
>Please, do not read this as a criticism of the support packages that
>come with emacs, but rather as a query regarding the Buddha nature (:-) 
>of emacs.

Because in reality emacs is a lisp system that happens to have a lot of
built in editing functions.

rodney@taac.ipl.rpi.edu (Rodney Peck II) (08/18/89)

MSW> I have just recently begun using GNU Emacs and am very impressed.
MSW> However, I am curious about a bit of philosophy that seems to be
MSW> behind the emacs way of thought.

MSW> In particular, emacs attempts to do everything.  In some ways, this is
MSW> nice; for example, the ability to reconfigure an editor to support
MSW> LaTeX is useful.  However, does an editor really need to know how to
MSW> read mail, post news, run an Eliza session or establish a telnet
MSW> connection?  This seems to be counter to the Unix philosophy of ``a
MSW> tool should do one job and do it well.''

In addition to the other things people have already said about emacs
being a lisp interpreter, you should also note that emacs wasn't built
around Unix originally.

That's why the Unix interface can be a bit clunky at times.

--
Rodney

jv@mh.nl (Johan Vromans) (08/18/89)

MSW> ..  This seems to be counter to the Unix philosophy of ``a
MSW> tool should do one job and do it well.''

Right. But all tools have a different idea about what is 'well'. So a
single tool with a consistent user interface may be against this
philosophy, but feels better.

	Johan
--
Johan Vromans				       jv@mh.nl via internet backbones
Multihouse Automatisering bv		       uucp: ..!{mcvax,hp4nl}!mh.nl!jv
Doesburgweg 7, 2803 PL Gouda, The Netherlands  phone/fax: +31 1820 62944/62500
------------------------ "Arms are made for hugging" -------------------------

cooper@vlab.enet.dec.com (g.d.cooper in the shadowlands) (08/23/89)

Think about it this way.

Do I really want to have to exit my editor to do something else?

			With an answer of no,

				shades
============================================================================
| But I that am not shaped for sport- | Geoffrey D. Cooper                 | 
| ive trick, nor formed to court an   | cooper@vlab.enet.dec.com	   |
| amorous looking glass...            | business (508) 467-3678            |
|                                     | home (617) 925-1099                |
============================================================================
Note: I'm a consultant.  My opinions are *MY* opinions.

fox@cs.cs.columbia.edu (David Fox) (08/23/89)

While the origional poster was quite open-minded, I am surprised
at how many people are upset by the notion of an editor doing
things previous editors have not done.  I would have thought that
in a field as new and rapidly changing as computer software people
would have an understanding that the labels they give to things,
such as "editor", "shell", "word-processor", "database manager" do
not refer to immutable concepts but are just temporary labels we
use to refer to software systems whose actual function is
continuously evolving.

David Fox
fox@cs.columbia.edu

(Am I supposed to mail this somewhere rather than post it?
 That information does not seem to be available to me.)

lum@armadillo.cis.ohio-state.edu (Lum Johnson) (08/29/89)

In article <BOB.89Aug15170146@tinman.cis.ohio-state.edu> Bob Sutterfield <bob@cis.ohio-state.edu> writes:
>In article <19115@unix.cis.pittsburgh.edu> msw@unix.cis.pittsburgh.edu (Matt S Wartell) writes:
>   ...emacs attempts to do everything...  This seems to be counter to
>   the Unix philosophy of ``a tool should do one job and do it well.''
>
>Perhaps you're looking at it wrong - each elisp package is a tool, and
>does its single job well.  Emacs is just the Lisp interpreter and user
>interface veneer that provides a common way to get to them all.

A sufficent explanation of the difference in system philosophy
between the UNIX operating system and the Emacs virtual operating
system is, I think, inherent in the difference in system history:

	UNIX grew up on a very small machine, the PDP-11

	EMACS grew up on a very large machine, the PDP-10

Admittedly, GNU Emacs is written in C and Lisp rather than in assembly
language and TECO as ITS/TWENEX Emacs is, but it still has the habits
and instincts of a program designed for a very large system.

The PDP-10 implements true virtual memory, with paging as well as
swapping, so the use of each page of physical memory is individually
scheduled for maximum throughput, and unused pages of a program's
image do not become resident in memory.  A running ITS/TWENEX Emacs
image typically uses only about 30 to 35 pages of physical memory -
more pages are mapped but not in core.  (A page is 512 36-bit words -
it will store 2560 7-bit bytes or 2048 9-bit bytes.)

The transitions from KI-paging (cf VAX/VMS pre-V4.0) to KL-paging (ca
1972, cf VAX/VMS circa V4.0), and from raw TECO to CTRL/R TECO (Emacs)
occurred roughly simultaneously, so Emacs unsurprisingly relies upon
free heavy-duty memory management.  ITS/TWENEX Emacs does not in fact
run on early PDP-10 processor models or under early PDP-10 operating
systems (PDP-6's or KA's, or TOPS-10), which lacked this (amoung other
things).  It is not enough for a machine to be simply "big".

Lum  (Your "system paleontologist")
-=-
-- 
Lum Johnson      lum@cis.ohio-state.edu      lum@osu-20.ircc.ohio-state.edu
"You got it kid -- the large print giveth and the small print taketh away."
-------

jkh@meepmeep.pcs.com (Jordan K. Hubbard) (08/29/89)

>A sufficent explanation of the difference in system philosophy
>between the UNIX operating system and the Emacs virtual operating
>system is, I think, inherent in the difference in system history:
>
>	UNIX grew up on a very small machine, the PDP-11
>
>	EMACS grew up on a very large machine, the PDP-10

Argh. This is taking a side effect of its design philosophy and
stating it AS the design philosophy. While it's certainly true
that a large part of UNIX's power and appeal lies in its ability
to string a lot of well isolated tools together, it's a dangerous
trap to assume that ALL tools should be similarly isolated to
correctly follow the Unix "philosophy" (small, elegant and ignorant).

While a good many tasks can be performed using this approach, many
actually require moving along opposite lines. Seamless integration,
rather that defined isolation, seems to be one of the new targets
that software developers are trying to hit. The fact that people
are putting down large chunks of change for packages like "Alis",
despite their, er, rather poor design and implementation is a case-in-point.

Calling EMACS an "Editor" is like calling Unix a "dispatcher". It's
an environment, and an exceptionally powerful and extensible one at
that. I can read my news, transfering any interesting articles to an
MH folder, or stripping the headers off of a shell archive in-situ and
unpacking it on the fly. If I decided to then compile it I could do
so, tracking and fixing any errors along the way. If it all proved to
be too much, I could grab the error messages and stuff them into an
informative mail message to the author, all without leaving emacs!

I won't even go into the value of having emacs while developing Lisp/C
code.

Emacs is an adjunct to Unix, not just another subordinate tool.

					Jordan Hubbard
--
			PCS Computer Systeme GmbH, Munich, West Germany
	UUCP:		pyramid!pcsbst!jkh jkh@meepmeep.pcs.com
	EUNET:		unido!pcsbst!jkh
	ARPA:		jkh@violet.berkeley.edu or hubbard@decwrl.dec.com