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