[comp.lang.ada] An Educational Site License for an Ada Compiler on PCs

pattis@june.cs.washington.edu (Richard Pattis) (02/08/89)

	   Educational Site Licenses for Ada Compilers on PCs


  The following posting chronicles some of my experiences in obtaining an
educational site license for an Ada compiler running on IBM PCs & compatibles.
If anyone is interested in discussing these issues further with me, please
drop me a note or call me MWF 3:00-4:30 (Pacific time) at (206) 545-1218. I am
especially interested in hearing from others (I've already got a small list)
who are teaching or plan to teach Ada in their introductory courses.


Computing with Ada at UW:

  We currently teach Ada in our two-quarter introductory programming courses
on a very large University-owned VAX/VMS system, using DEC-Ada.  The classes
enroll about 150 and 80 students respectively per quarter (including Summer,
during which the numbers are about half of these).  I expect Ada to percolate
up to the more advanced courses, including data structures, compilers (the
instructor teaching this course currently uses Fisher/LeBlanc's book, which
uses Ada as the language of study and the language of discourse) and graphics.
We have purchased Verdix Ada, for use in the data structures course, on one of
the department's instructional VAX/Ultrix computers.


The Microcomputer Connection:

  For the last few quarters I have been surveying my students, asking them if
they own PCs: I ask for their brand, processor, RAM memory size, hard disk
size, and whether they own a modem. From these numbers I determined that many
students (especially those going on to the second quarter) owned IBM PC-ATs or
compatibles with 640K and hard disks.  To transfer some of the load off our
VAX, and encourage students to explore Ada on their own, I set out to find a
reasonable Ada compiler, at a modest price, that ran on this power of machine.
I figured that the price should be about $50/package, which is the price that
my students had been purchasing Logitech's excellent Modula-2 system for, when
this language was taught in these courses.  Most students thought this price
fine (and $100 too much); they had been buying about 75 Modula-2 compilers
per year.


PC Ada Compilers:

  After a small amount of research, it seemed that the only three IBM PC Ada
compilers in reasonable shape were Alsys, Meridian, and R&R.  I did not pursue
the Alsys compiler because my students don't have enough memory (or the money
to buy it).  I also didn't pursue various other compilers: (1) the Aetech
system, because I was told that it was based on R&R's compiler; also, I found
out about this product well into the process. (2) NYU's Ada compiler, because
I had some problems compiling large programs with it. (3) Artek's compiler (I
had an early version of it) which had problems similar to the NYU compiler.
Recently, Lattice Inc. bought the rights to this product - there is a brief
notice about this purchase in the Nov/Dec 1988 issue of Journal of Pascal, Ada
and Modula-2). "Recent" reviews of various combinations of these compilers
appeared in Computer Language (December 1986/January 1987), Byte (July 1987)
Computer (September 1988), Computer Language (December 1988).  So, the choices
were narrowed down to Meridian's AdaVantage and R&R's Janus Ada.


Making Contact:

  Initially, I contacted Thomas Pierpoint at Meridian (he has recently moved
to another Ada-related job) and James Stewart at R&R. I explained in general
what I was trying to do and asked for evaluation copies of their products.
Both readily complied (and continued to provide timely feedback on questions I
had). I received a beta version of Meridian's AdaVantage 2.2 (including the
compiler/debugger/optimizer/libraries/developer interface) and R&R's Janus
2.02 Ed Pak (including the compiler/linker with trim option/libraries).

  I also asked each company to supply me with a list of contacts, both in
academia and industry, who were familiar with their product. Each company
quickly sent me a list of about half a dozen names.
	

Testing the Compilers/Calling the Contacts:

  I am a novice in the Ada world. I decided to switch my classes from Modula-2
to Ada after 14 quarters of teaching Modula-2 in both classes; I felt that Ada
was technically a better language to teach beginners. I don't want to get into
a language war here; but I do want to state that although I have had extensive
experience teaching FORTRAN, Pascal, and Modula-2 (and writing 1-10 thousand
line programs in these language), I had never written an Ada program.  I was
evaluating Ada compilers on the VAX at the same time.

  I asked a TA to translate two 500 line programs (that I often assign during
my courses) into Ada.  He spent little time taking advantage of Ada's special
features; he just transliterated the Modula-2 code into Ada.  These were the
two programs that I would use to run simple benchmarks. Note that one of these
programs used some simple generic package instantiations, but I did not test
such "advanced" features in detail, in any systematic way, at that time.

  Both compilers correctly compiled and executed these programs.  There were
various differences in compile times, code sizes, and speed (depending on all
sorts of options) which are much too detailed to go into here - this posting
is more about site licenses than testing/benchmarking compilers. Essentially I
rated both compilers acceptable for use by my students.  The wall clock times
for compiling and linking on my 8Mz PC-AT clone were comparable to the compile
times on our VAX when it is lightly loaded. Based on these statistics, I would
find teaching in a lab equipped with this power machine (big RAM disks would
be a help) preferable to teaching on our large VAX (when it gets over 50-60
users, compilations become quite tedious).

  I also called all the names supplied by each vendor (and reached all but
one or two).  Each reference had very nice things to say about the compiler
they used.  I was interested to hear from someone who was using both compilers
and could give me a direct comparison, but it seemed like everyone opted to
use one compiler or the other; no one could supply this kind of information.


Prices and Licenses:

  Of course, prices were a big problem.  The Meridian package that I received
retails near $1K (they have changed their price structure recently, so take
that with a kilograin of salt).  The R&R package that I received cost $395 (as
of their July 1988 price list).  Each company also has a maintenance agreement
for some percentage of the purchase price (it varies from 20%-35% depending on
the exact package purchased).  These numbers were astronomically high for my
students.

  Both companies offer site licenses, but these licenses are geared towards
students using the compilers on machines in a lab at the school, owned by the
school.  We do not have such a facility, and I was interested only in a site
license where I could actually distribute copies of the software to students
for their use at home.

  I guess that this was a novel request, but the representatives of both
companies were interested and promised to get back to me.  Ultimately they
"bid" very similarly.  Both license agreements allowed me to distribute the
software to any students enrolled in the university.  The particulars were
(omitting the fine print of the licenses): Meridian $10K down, $2.5 yearly
maintenance, we were free to copy and distribute the manuals.  R&R: $10K down,
$3.5 yearly update, students could buy a manual for $37.50 each from R&R.
Both companies offered free maintenance for 1 year.  Note that if we continued
to use the software for a few years, we'd eventually pay more in maintenance
charges than for the original downpayment; this should be some incentive to
drop the downpayments even lower (remember that Mattel made the big money on
Barbie's clothes, not Barbie).

  I decided to avoid starting a bidding war between these companies.  I
felt that these numbers were fair, and that everyone had been dealing in good
faith.  I also felt sure that by selling the compiler cheaply to my students
(but still generating some income from it), I could accumulate enough income
yearly to pay the maintenance fee.  Now my only problem was where to get the
$10K downpayment, and to decide which compiler to license.


A Sugar Daddy Flies to the Rescue:

  The University of Washington is in Seattle. So is Boeing. I contacted one of
my ex-students, who has worked his way up the ladder at Boeing Commercial, and
he arranged a meeting between me and his boss. His boss was interested both in
strengthening ties between Boeing and our department, and in seeing Ada (and
software engineering in general) taught in the undergraduate curriculum.  He
very quickly (to my great surprise) agreed to donate $10K to our department so
that we could acquire one of the site licenses that I described above.  I
promised to distribute a small note with each compiler, explaining that the
original funds came from Boeing.

  So, after one visit my purse was full.  Since then, I found out that our
school has a small slush fund for purchasing site licenses for PC software
(we have TeX, SPSS, and a half dozen others). I probably could have gotten up
to a few thousand dollars from this fund.  I'm sure there were other companies
that I could have called on, and it certainly would have taken more time, but
I believe that I could have raised this money eventually, from smaller, more
diverse sources.  Schools near aerospace industries probably have a big head
start.


Deciding on a Company:

  The decision was tough, but I was able to rationalize one.  I decided on
Meridian's site license for a few reasons. As you will see, my decision was
not one based on technical merit; if I had to make a decision on this
criteria, I would have had to test the products more thoroughly.

  (1) The yearly maintenance fee was smaller; also, by letting us copy and
distribute the manual ourselves (we can do it for $15), I could sell the
package at my target price of $50 and generate $35 per copy towards paying the
maintenance fee: I needed only 72 sales per year to reach this number. If you
plug in R&R's license values, along with a $50 sale price, I would have needed
280 sales per year to meet the maintenance fee.  I expect to sell about 100
to 150 copies per.

  (2) I liked the fact that Meridian's package included a debugger.  R&R's
package can be used with a commercially available debugger, but again price
was the deciding factor here. After purchasing a $50 compiler, I doubt many
students would go spend a few hundred dollars more for a debugger.

  (3) Meridian also sells a Mac version of their compiler.  Our numbers show
that the majority of my students own IBM PCs and compatible.  But there is
still a sizable minority owning Macs (in the engineering school, I am told,
that the Macs are in the majority).  If this ever became an issue, I wanted a
simple and quick way to cover both systems.


Current Status:

  I received the compiler at the end of December 1988.  The check from Boeing
arrived recently.  During this Winter quarter, we sold and distributed 43 Ada
compilers to students in my classes; the University-wide announcement of this
site license will be made next week.  We reproduce all the documentation for
$15 and sell the package for $50 (my original target price; this is within the
reach of almost all my students - I have made one or two hardship exceptions -
and by not being free, deters software collectors). Thus, in one quarter we've
already accumulated $1.5K, which is over half the entire fee needed to pay for
next year's maintenance fee.  At this rate I expect to accumulate over $3.5K
per year, and I plan to use the extra money to license other Ada products,
such as the Mac version of the compiler and a language sensitive editor.

  Most of the students using the compiler are in my second programming course.
They have used the software to develop a program that prospects for geothermal
power supplies using data from infrared satellite pictures (a glorified 2-d
array search problem) and a program that produces cross reference listings of
Ada programs (using a lexical scanner package, a table package, a queue
package, a timer package, an O(N Log N) sort subprogram, and a few other
software components that I have supplied).  Their next assignment is to
reimplement the table package using a fancier data structure and integrate
it back into their cross reference program (I hope a trivial task).  They are
reporting few problems (most traced to the fact that they are still computer
novices, and get bitten by operating system problems).


Anyone Still Reading this Posting?

  Well that's my story up to now.  This got to be quite a large posting, and
I didn't have much time to polish up my writing, but I thought it would be
informative to those faculty interested in acquiring a site license to teach
Ada. Also, I wanted to repay a debt to all the people who sent me notes and
talked to me about the various Ada compilers available.  All in all it was a
most pleasant experience.  Again if anyone is interested in discussing these
issues further with me, please drop me a note or call MWF 3:00-4:30 (Pacific
time) at (206) 545-1218.

Rich Pattis