[net.lang] Opinions on Mainsail

bhaskar (04/01/83)

We had Mainsail on evaluation from Xidak, Inc. last summer during which time I
used it extensively.  For various reasons, we decided not to acquire it, but
on the whole, I was very pleased with it, and would recommend it.  I will
summarize a few thoughts here in the interests of brevity -- if there are
specific opinions you would like to solicit, please send mail.  We used it on
a VAX 780 running 4.1bsd.

-   On the whole, Mainsail is a fairly well thought out language, and is
    sufficiently powerful to be called "general purpose".  Comparison with
    Pascal is ridiculous.  It is substantially more powerful than C.  It does
    not have the pointless complexity of Ada and PL/1.  The language is
    single-thread-of-control.  Unlike C, the macro capabilities are part of
    the language, and one can *almost* do classes with hierarchical
    inheritance (the functions NEEDBODY and NEEDANYBODIES have a glitch in
    their definitions, but Xidak may have fixed that by now).  I personally
    found writing in Mainsail to be relatively straightforward with no
    surprises (and I did not have to read the entire manual to get started).

-   If I really wanted to ensure software portability on a wide variety of
    machines, I would choose either Mainsail or Macrospitbol.  Not Pascal, C,
    FORTRASH, etc.

-   Above and beyond the language itself, Mainsail is also an interactive
    programming environment that is a pleasure to use.  In contrast to most
    environments / languages, Mainsail appears to be designed to write and
    *maintain* large software systems.  I have seen more powerful
    environments, such as on LISP machines, but this environment supports a
    general-purpose language on standard terminals virtually identically on a
    wide variety of machines.  Debugging is symbolic via the editor -- for
    example, as you single-step, the cursor moves from statement to statement
    in an editor buffer.  Also, dynamic linking is the only way to go!

-   The editor is reasonably powerful, but no emacs.  Unlike the standard
    model of a string buffer, its model is an infinite quarter plane.  I
    found this to be very natural.  I wish it were extensible a la emacs,
    though.  It is very well integrated with the rest of the Mainsail
    environment, however, and provides a human interface based on the screen
    / editor paradigm instead of the traditional hard-copy tty paradigm that
    we still tend to use today.  By the way, the editor is just another set of
    dynamically linked modules, that can be used by program.

-   The manuals are reasonably well written, but were out of date, which
    caused problems here (for example, there was no documentation on using the
    debugger through the editor).  Sections were also missing.

-   At the time we used it, the software was of Beta-test quality, but
    surprisingly clean for such a phase.  One irritation at the time was that
    while Mainsail provided an integrated programming environment, it was not
    well integrated with the rest of Unix (for example, there was no way to
    get a directory listing from inside the environment -- like a vi user, a
    Mainsail user would have to suspend the editor, run ls and return to
    Mainedit).

-   I would like to add that of all the software vendors that I personally
    have dealt with, Xidak provided the best support by an order of magnitude.

K.S. Bhaskar {microsoft,uw-beaver,lbl-csam}!fluke!bhaskar

gary (04/21/83)

Does Mainsail have LEAP? I have used SAIL on a DEC-10, and it included
LEAP, which is basically an associative database (you can arbitrarily
associate 3 items, includes a "foreach in <set> construct).
gary cottrell