[comp.lang.ada] Hypertext Ada

munck@MBUNIX.MITRE.ORG (Bob Munck) (03/07/89)

  The discussion of Knuth's WEB system has pushed one of my "hot
buttons:"  the way we continue to burden ourselves with the requirements
of physical/non-computer-based media when those forms are long obsolete. 
For example, I'll bet that 90% of Ada programs would fit comfortably on
80-column IBM cards.  The legacy of cards and keypunches has been
preserved in the 80x25 screen.

  When I'm writing Ada code, I'm talking to two audiences: first the Ada
compiler and second programmers yet unborn who will maintain and upgrade
my code.  (Priorities should be reversed.)  The two audiences are very
different.  (The struggle to higher-level languages is driven by this,
in that it is an attempt to make the two audiences closer to each
other.)  I personally find it a real pain to be restricted to the forms
and media of the compiler when I'm trying to say something to the
people.  For example, quite often a picture or two would be very useful,
but after a few minutes of trying to line up "-----"s and "|"s on lines
starting with "--"s, I give up and write some less communicative text.

  At other times, I want to refer to something elsewhere in my text. 
We have the technology to allow me to do so with an icon or
special-character "button" that the reader can mouse-click on.  Instead,
I'm forced to type a long qualified name that the reader can use to
trace through my structure to the place referenced.  A pain for both of
us.  I certainly want to use italics, boldface, different fonts and font
sizes, and full proportional spacing in my documentation.

  It occurs to me that what I'm proposing here is a candidate for
consideration by the Ada 9X group.  I don't want to change the language,
but rather the data format that it is embedded within.  I want a
"multi-media hypertext" Ada with desktop-publishing capabilities like
"Mac Draw" pictures, scanner input, color, multiple fonts, orientations,
etc.  Also, and more ambitious, the idea that Ada code is _always_ read
on and with the help of an interactive tool that can travel around a
hypertext, maybe something like HyperCard.  The problem of separating
and keeping clear what the compiler deals with is not difficult, but
certainly can be a bit more sophisticated than leading "--"s.

  This means we have to raise our sights above the VT-100 as our
lowest-level programmer support, but not that much above.  A Mac or a PC
with EGA display should do fine, and cost less than 1% of the yearly cost
of its user.  The 9X people will have to struggle with "external form,"
graphics, windowing standards, and other bothersome subjects, but the
technology is all available; it's just a matter of making choices. 
While I'm against the 9X effort in general because of the political
dangers of changing the language, this wouldn't bother me because it
isn't really changing the language, but its storage medium.

  Comments?  Opinions?  Funding?
                                 -- Bob Munck, MITRE

chuck@WOOGLIN.SCC.COM (Charles Williams) (03/07/89)

In reply to Bob Munck's thoughts on Hypertext Ada, it appears to me that what
Mr. Munck wants is a *smart* Ada editor that allows you to find references of
anything in the compilation unit with or without full dot notation (with a few
other niceties that I'll address later.)

He is also right when he says that the technology is available today, but it
involves not only setting our sights above a vt-100, but also setting our
sights above a PC and even a VAX. What Mr. Munck really wants is a Rational!!!

Before everybody jumps on my back and starts screaming about the price of the
system, I contend that if you all opened your eyes and looked at the entire
life cycle costs for a large (on the order of 100K's of SLOC) project that
used a VAX (or something similar) versus a Rational, you would see that the
Rational has much lower life cycle costs and many more benifits.

As far as pictures and other graphic notation goes, what is really needed is
the ability to integrate graphic design tools such as IDE and Cadre with the
Ada environment that one is using. This integration should ultimately give the
user the ability to select a piece of an Ada compilation unit, execute a 
command (via mouse or key binding, etc.) and be able to view the graphic or
icon that corresponds to the selected fragment. What is needed for this is
also much more than a vt-100!! This requires some kind of bit-mapped workstation
(i.e. Mac's, Sun's, etc.).

As far as the Ada 9X effort goes, I don't think that media storage requests
have anything to do with the Ada language. If you want to see something like
Hypertext Ada, you should try and find a vendor who would develop it. The Ada
9X effort is to revise the Ada Language Reference Manual, and to my knowledge
the Ada LRM says nothing about how Ada source code has to be stored.

Chuck Williams
Contel Federal Systems

Disclaimer: I do not work for Rational, nor do I receive any compensation from
	    them but, I am Chairman of the Rational Users' Group!!

karl@grebyn.com (Karl Nyberg) (03/07/89)

I think we would do well to differentiate between the HARDWARE and the
SOFTWARE needed to support the kinds of development activites that Bob &
Chuck are "discussing".  It does no good to have fancy graphics hardware if
there is no useful graphics software, or if the back end processor is
incapable of meeting the requirements of supporting the development process
in "real time" (with apologies to all those of you who think of something
different when you say that).

It's also worth considering the overall cost/benefit tradeoffs, not just for
a single project, but for an entire organization.  I think that one of the
major benefits of the PC revolution was that it put the computing power in
the hands of the users.  Moving back to a multiuser environment (be it a
Rational or VAX, or multiuser 80X86 machine, or whatever) may be a step
backward.  It may be more cost and productivity effective to pursue an
alternative that spreads the computing power (even with the need for
distributed source configuration control, etc.).  Everybody speculates, but
part of the marketing is to keep you somewhat uninformed, so you buy out of
FEAR, UNCERTAINTY, and DOUBT...

And then, how many 100K SLOC projects have YOU worked on lately?

-- Karl --

eachus@mbunix.mitre.org (Robert Eachus) (03/08/89)

In article <24216.605219947@mbunix> munck@mitre.org writes:
(Among other good ideas:)

>I'm forced to type a long qualified name that the reader can use to
>trace through my structure to the place referenced.  A pain for both of
>us.  I certainly want to use italics, boldface, different fonts and font
>sizes, and full proportional spacing in my documentation.

     This is one I'll not only second, but fight for.  Let's extend
the Ada syntax to list the standard ANSI (or ISO) control sequences,
at a minimum those begining with ESC-[, as legal any place where an
extra separator is permitted.  Italics, bold, color, and font should
be ignored when matching identifiers just as capitalization is.

>It occurs to me that what I'm proposing here is a candidate for
>consideration by the Ada 9X group.  I don't want to change the
>language, but rather the data format that it is embedded within.  I
>want a "multi-media hypertext" Ada with desktop-publishing
>capabilities like "Mac Draw" pictures, scanner input, color, multiple
>fonts, orientations, etc.  Also, and more ambitious, the idea that
>Ada code is _always_ read on and with the help of an interactive tool
>that can travel around a hypertext, maybe something like HyperCard.
>The problem of separating and keeping clear what the compiler deals
>with is not difficult, but certainly can be a bit more sophisticated
>than leading "--"s.

     This is general is harder than the above, but still worth the
effort. What we need is a standard for storage and display of Ada
source text that allows embedded pointers, either within the source,
or to supporting documentation.  The original idea was that such tools
should be part of an APSE, and DIANA was to be used as a
representation.  The stuff that Dave and Chris are doing on EASE is a
start on this, but you are asking for not only EASE, but the ability
to embed hypertext in the DIANA.  Sounds ambitious, but if we are
asking for embedded formatting notations above, why not also ask for
embedded annotations?

> This means we have to raise our sights above the VT-100 as our
>lowest-level programmer support, but not that much above.  A Mac or a
>PC with EGA display should do fine, and cost less than 1% of the
>yearly cost of its user.  The 9X people will have to struggle with
>"external form," graphics, windowing standards, and other bothersome
>subjects, but the technology is all available; it's just a matter of
>making choices.  While I'm against the 9X effort in general because
>of the political dangers of changing the language, this wouldn't
>bother me because it isn't really changing the language, but its
>storage medium.

     An Amiga will do just fine, too.  But I think you take the wrong
approach in talking about the low cost of minimal tools.  If a company
is not willing to spend $10000 or more per software engineer on tools,
has an intolerable level of turnover.  The problem is at the companies
where most of the money still goes into the dinosaurs in the machine
room, not onto users desks.

> -- Bob Munck, MITRE

					Robert I. Eachus

with STANDARD_DISCLAIMER;
function MESSAGE (TEXT: in CLEVER_IDEAS) return BETTER_IDEAS is...

rec@dg.dg.com (Robert Cousins) (03/08/89)

In article <8903071423.AA24284@grebyn.com> karl@grebyn.com (Karl Nyberg) writes:
>I think we would do well to differentiate between the HARDWARE and the
>SOFTWARE needed to support the kinds of development activites that Bob &
>Chuck are "discussing".  [Deleted Stuff] 
>I think that one of the
>major benefits of the PC revolution was that it put the computing power in
>the hands of the users.  Moving back to a multiuser environment (be it a
>Rational or VAX, or multiuser 80X86 machine, or whatever) may be a step
>backward.  It may be more cost and productivity effective to pursue an
>alternative that spreads the computing power (even with the need for
>distributed source configuration control, etc.).   [Deleted Stuff]
>
>-- Karl --

I totally agree.  One of the major reasons why people have been slow to
adopt this approach has been the relatively high cost of machines with
sufficient power to drive a REAL development environment.  I managed the
DG AViiON workstation project and was thinking about this very issue 
from the start.  In my personal view, it makes little or no sense to have
a highly skilled (and therefore quite expensive) developer being limited
by the platform on which he/she develops.  It seems that the bare minimum
is 10 to 15 MIPS per user.  [Obviously more is nicer.]  

I invite comment on this.

Robert Cousins