[comp.sys.apple] Do You Need The Ultimate Text Editor?

mdavis@pro-sol.cts.COM (Morgan Davis) (11/06/87)

This message is intended for the following types of Info-Apple subscribers:

     o  Apple software developers
     o  UNIX users and programmers who own Apples
     o  Dyed-in-the-wool techno-geeks who just love this kind of stuff

If you're not one of these important members of this forum, press your cancel
key now and just move onto the next message.

=-=-=-=

I've been waiting a year to place this message here.  But first let me give a
short introduction on what I'm about to tell you...

About a year and half ago, a programmer named Brian Fox called my bulletin
board system and signed up for an account.  Brian is one of those
"high-performance" assembly language programmers who just loves a great
challenge.  He sure picked a dilly of a coding project, too.  That's what
this message is all about.

Now, before I dive in, let me say that this is not an advertisement.  I'm not
being remunerated in any way to post this here.  This really is just a public
announcement of a product that I believe all of you will be extremely
interested in.  Brian's software company is not a Pinpoint Publisher, so he
needs all the exposure he can get.  Being part of a very small software
company myself (Living Legends), I know how important this kind of "grass
roots" support can be for a new product.  Anyway, back to the story...

It seems that Brian thought he could write a version of EMACS for the Apple
computer!  His Apple version would be called AMACS, of course.  And like all
good stories, this one has a happy ending:  Brian has written AMACS, and has
done a remarkable job.

So, just what is AMACS?

Here's how the first paragraph in his user's manual describes it:

        AMACS is a powerful full screen text editor for users of
        the Apple // family of computer with 128k of RAM or more. 
        It is modeled after the editor in use at the MIT Artificial
        Intelligence Laboratory called EMACS.  Although EMACS is
        always typed in all caps, we don't believe that it is an
        acronym for anything in particular.  Some people think that
        it recursively stands for "EMACS Makes All Computing
        Simple".  We have decided that "AMACS Manages ASCII
        Characters Superbly" is too egotistical.  Suffice to say
        that AMACS is the Apple version of EMACS.

You've probably heard of EMACS.  In fact, if you do any serious programming
on a UNIX computer, you're probably using EMACS or something very close to
it, like Jove, GNU Emacs, or whatever.

Brian had asked me if I would be interested in checking out his editor.  I'm
always curious to see what other programmers are doing, so I expressed my
interest.  A few days later, I got a package in the mail containing a disk
and a manual.  It promptly went onto a shelf in the closet where it could
collect an adequate layer of gray, household dust.


One day when I had nothing to do, which occurs about as often as our national
budget is balanced, I decided to try out AMACS.  I had a few prodding
messages from Brian asking me how I was coming along with it anyway.  So, I
booted up the disk and turned to page one in his manual.  Now, understand
that I have had plenty of experience with VI, line editors, and commercial
word processors for the Apple, but never anything like EMACS, Jove, nor
AMACS.

Let's face it, this is not going to be your average testimonial, because the
AMACS learning curve was rough for me.  In fact, it wasn't a curve at all.  It
was more like hitting a ten-foot brick wall at high speed, and then having to
scale it.  Now, you're probably wondering why I'm telling you this negative
stuff.  Well, I'm being honest with you.  Learning AMACS was tough; it took me
about a week to master it.  But I'm using it right now, a year later, writing
you this note about how wonderful the program really is.

In a personal note, Brian explained to me this difficulty in learning the
program:

"People tend to have a hard time learning EMACS style editors because it
requires them to unlearn all of the bad things that they have already learned
about software.  The reason EMACS style editors make you more productive, is
that they tend to open up your mind to *all* aspects of a program, not just
the output, but the comments, the code organization, the algoritms, etc. 
This means that your programming becomes more concise algorithmically
speaking, and more verbose (or meaningful) textually.  People who use your
program will notice that it is more consistent in user-interface than others
that they have seen. This is a direct carry-over from using AMACS."

And of course, he's right.  My stumbling blocks were not due to AMACS, they
were because of all the weirdness I had learned to submit to in all the other
programs I had been using.  When you can take a fresh look at AMACS, you
realize just how logical it really is.  Anyway, I'm digressing... 

Users and lovers of EMACS don't need any hype -- they're already hooked on the
editor.  For these people, this missive is just an announcement that there is
an honest-to-goodness EMACS-style editor for the Apple, and a darn good one,
too.


The rest of this hype is for the skeptics...

After a year of comparing AMACS to Jove (Jonathan's Own Version of EMACS) on
a local UNIX system I have an account on, I'm extremely impressed with what
Brian Fox has done.  The accuracy and completeness is astounding.  What's
more, Brian has gone past EMACS and has implemented a lot of additional
enhancements.  Without a doubt, this editor is the epitome of a programmer's
source code and text editor.

It's quite prolific as a text editor, too.  It provides special "modes" that
allow you to edit text in a bunch of specialized formats.  For example, the
mode I'm using now is "Text Fill" -- which really means that AMACS acts like a
word processor, with word-wrap, paragraph filling, and all that sort of neat
stuff.  But AMACS also has modes for assembly language, C programming, Pascal
source editing, Lisp, and BASIC formats.  You can set the size of the tab key
to any number of columns, adjust the margins, and everything else you can do
with other editors.

I use AMACS to edit and create assembly source code for use with the Merlin
assembler (AMACS was assembled with Merlin, by the way).  But it's also
excellent for working with APW Assembler, C, TML Pascal and TML BASIC source
code, and regular text files.  It really doesn't care what the file contains,
so you can even read binary files into AMACS!

Because AMACS has fourteen different editing buffers, you can edit a C
program and a Pascal program at the *same* time: one file in one buffer, and
the other file in a second buffer.  AMACS allows you to easily cut and paste
between buffers, as well as view two buffers on the screen at once in a
"split screen" mode.  This kind of power is what every good programmer needs
in a text editor.


But wait, there's more!  Act now and you'll receive this handsome set of
stainless steel kitchen knives...er...ahem.

AMACS has over 136 unique editing functions that you can attach to any keys
on the keyboard.  This is because AMACS is totally flexible in the way it
handles keyboard commands.  You essentially have an "editor construction set"
with AMACS.  Each time AMACS runs, it processes an "init" file that contains
addtional or replacement command-key definitions that you've set up.  So AMACS
is always ready to work just the way you want it to.

Now, some of you sharper minds might be wondering how you can access 136
functions when there are only a few keys on the keyboard.  AMACS can
recognize the key itself (any letter, number, or symbol), the Control-key
version, the Open-Apple key version, and the Open-Apple-Control-key version. 
In addition, AMACS knows the difference between the Control-H key and the
Left-Arrow on the Apple IIGS keyboard (same with the rest of the arrow keys).
So, you add them up.  More than enough keys to represent all of AMACS'
functions.  Of course, editor commands that you don't assign to a particular
keystroke can still be accessed in AMACS' "Command window".

Perhaps the most powerful aspect of Brian's program is the ability to create
macro commands.  Macros, as we all know, are abbreviated forms of very
complex sequences.  They're great for churning out tedious tasks that would
otherwise take a zillion keystrokes with any regular text editor.  In AMACS,
you could press one key and have a dozen functions be performed instantly,
over and over again.  With macros, a bunch of low-level editing functions can
be used to create brand new commands.  The possibilities are endless.

I could go on and on about the gobs of built-in features in AMACS, such as
the "parenthesis blinker", a fundamental part of AMACS that causes matching
parens, curly brackets, or square brackets, to blink when you put the cursor
on one of them.  No more guessing on nested expressions!  Then there's
built-in printer handling that lets you control the output to any kind of
printer, including the LaserWriter.  Don't forget AMACS' dozens of disk-based
libraries: each one adds even more commands and features to AMACS -- you
choose only the ones you need, and you can write your own!  I'd get carried
away by listing the dozens of really nice features Brian has packed into
AMACS.

The help facilities built into AMACS are unparalleled.  You can get help on
EVERYTHING in the program.  There is more descriptive text (in a disk-based
file) that explains every command than you'll find in any program.  You can
find brief or verbose descriptions of a command, or what keys run a given
command, or what commands have the word "file" in them.  You can get a quick
command listing, or find out what function is run by a key, or get detailed
descriptions on everything that deals with a keyword (i.e., "tell me
everything about 'buffers' in AMACS").  This is all done from within the
program!

So AMACS must be a real memory hog, right?

Nope, not in the least.  The 128K Apple //e and //c version gives you a 48K
editing buffer, a testament to Brian's efficient coding abilities.  The Apple
IIGS version (work in progress) gives you many times more space for text,
depending upon the amount of RAM in your computer.

When you're done using AMACS, you can quit to the operating system, or you
can exit directly from AMACS to another application.  There's even a "Run
Compiler" command that will allow you to press a key and have your compiler
or assembler come up immediately.

=-=-=-=

Well, it's obvious that there are just too many good things to say about
AMACS. Why haven't you heard to seen anything about it yet?  Like I said,
Brian's company is a small, but responsive, organization that, like so many
others, has a great product but doesn't have the resources for mass
marketing.  The advantages to this are: excellent technical support,
reasonable update policies, and very affordable pricing.  Believe it or not,
you can send a $79 check made out to Creative Thinking, Included, Brian's
company, and get the very latest version of the program.

For the skeptics, Creative Thinking will let you buy a 100 page AMACS manual
and fully-functional version of AMACS for just $15.  The only thing is that
you won't be able to save text to disk until you give in and send the
remainder of the $79 price to Creative Thinking.  That's a fair deal if
you're just interested in seeing if AMACS is for you.


I didn't want this to sound like one of those half-hour product advertising
shows that you see on cable TV, but AMACS has really boosted my productivity
level beyond description.  The fever has been caught by a lot of other
high-powered programmers, too.

Here are some comments from Brian about a few interesting people who use
AMACS:

    Darach Foskett, Senior Programmer at UNICOM's Software Development
    Group has been using AMACS for over 1 1/2 years.  He has just
    finished writing //Write for Random House Publishing, a WYSIWYG
    MacWrite look-alike for the Apple.  His extensive use of AMACS has
    helped to make this product one of the most bullet-proof I have
    seen.

    The Bank Street Group, (Bank Street Writer) has a site license for
    AMACS, and have been using it for about 1 year.  Gordon Riggs, a
    head programmer, has been especially helpful in suggesting
    enhancements to the program.

    Morgan Davis, the author of this mess, tells me he uses AMACS all
    the time.  He never writes anything good though, so it's hard to
    tell.  If he would only write something like a BBS, or perhaps an
    ampersand utility that would allow me to control my modem from
    within BASIC programs...  As some of us know, Morgan is the author
    of ProLine, an extensively well thought out BBS system, as well as
    ModemWorks, the ampersand utility that allows direct control of
    your modem from within Applesoft BASIC.

    Steve Bannasch, of The Educational Research Center (TERC) uses
    AMACS.  Steve is a prolific hardware and software wizard who, along
    with his cohort Sean Nolan, has written several useful Apple
    utilities, including Rosetta, an Applesoft pseudo-compiler, with a
    complete built-in enhancements package.  The Applesoft Enhancements
    Package is an ampersand utility that gives you labeled subroutines,
    and pretty printing, among other things.  Steve has written a
    tags-processing file for MAKETAGS (all part of AMACS) for
    determining the presence of an AppleSoft Enhancements label.

    There are more, like Chuck Kelly, designer of the Exterminator
    card, an indispensable tool in the debugging process, John Carey
    from MIT, George Bracket, author of several storyboards for the
    Apple, Michael Lowe, fiction writer, the programmers at United
    Software Industries, developers of MouseTalk and ASCII Express,
    Jerry Hewett, author of DiskWorks and Last-Cat from Living Legends
    Software, and the list goes on and on...

    One thing I have noticed, the people who use AMACS tend to
    be winners, and they like AMACS because it helps them to win
    faster.  But that's why I wrote it.  I needed to create an
    editor that could DWIM.  (Do What I Mean...)

...and so he has.  The thing I've noticed is that Brian uses the word "win" a
lot.  This attitude obviously has something to do with the success of AMACS.

Occasionally, I've seen members of Info-Apple compare Apple word processors
to EMACS: "AppleWriter is the next best thing to EMACS (which I really
love)". Well, now's the time to forget playing with inane text editors move
up to the most powerful text editing system you can get at ANY price for
the Apple // series of computers.

For more information, write Creative Thinking, Inc. at:

        AMACS c/o CTI
        119 Hawthorne Street
        Chelsea, MA 02150


About the Author...

Brian Fox is the author of AMACS, an implementation of EMACS for the Apple //
series of computers.  He has written the 128K version of Terrapin Logo, a
complete command language specification for Corvus networks (Network
Manager's Toolkit), designed and implemented a specialized file system for
the Apple (netWORKS), and is currently hacking GNU with Richard Stallman at
MIT, (GNU's Not Unix), a version of Unix to be given away as free software to
the world.

He is a music lover, children lover, lover of women, and not into
long-winded, self-introspective, reflexive examinations of his id.


You can reach Brian Fox at the following network addresses:

UUCP: ...!crash!pnet01!pro-sol!amacs
INET: amacs@pro-sol.cts.com
ARPA: bfox@ai.ai.mit.edu.arpa
      bfox@wheaties.ai.mit.edu.arpa


Thanks for putting up with all the "hype" here.  I just got the latest
version of AMACS tonite and I was just too jazzed about all of it's new
features.  I hope other serious Apple programmers do not miss the opportunity
to check out this "winning" piece of code.

--Morgan Davis

UUCP: [ ihnp4 cbosgd hplabs!hp-sdd sdcsvax nosc ] !crash!pnet01!pro-sol!mdavis
ARPA: crash!pnet01!pro-sol!mdavis@nosc.mil
INET: mdavis@pro-sol.cts.com