[comp.lang.ada] The Future of Ada

endrizzi@sctc.com (Michael Endrizzi ) (08/15/90)

I walked into my current job an Ada addict. The people I work with
are all pretty much C/Unix hacks, so I thought I had the world
at my beckon. I watched and laughed in horror as they passed
untyped pointers, randomly recompiled modules because they
"knew" which ones were out of date, used pointer arithmetic
because C bit-fields did not align properly, etc, etc.

Reality hit.

I won't mention the name of the vendor in this column, but we
purchased a moderately priced Unix Ada environment.  Word had
it that this package was "OK" but not great.  No such luck.
I am living in a nightmare of internal compiler errors and 
inconsistent data base errors.

This is why the survival of Ada is at stake:

	1)Control
	2)Cost
	3)Complexity

1)Control: Programmers and our associated egos like to be in control 
of our destinys. On paper, Ada is a powerful tool that automates
many of the manual checks (recompilation, type checking) that
other languages lack. By using this tool, we give up control.
Big egos don't like to give up control. And when that tool
doesn't work right, it's like being in a speeding car with
not steering wheel driving in the mountains.

C/Unix on the other hand is a hackers tool. If this don't
work right...well we all know how easy it is to flip a
few bits here and there to make it work.

2)Cost: Quality Ada environments are expensive and resource hogs.
You can't just sit at home and hack into the night on your
Mac/PC. You must have your $100,000 Rational with 200 Gigs
of storage parked in your basement to get a true Ada high.
I know on our system, I must balance elegance with "will
the damn thing even compile, fit on our disks, crowd out
other users, etc".

C/Unix on the other hand is basically free. GCC is probably
one of the highest quality C products and it is free. Unix
comes standard on some systems.  Compile times, storage
requirements are reasonable in a multi-user environment.

3)Complexity: On paper Ada is addictive, elegant,  true
solution to multi-person life-cycle software engineering.
In reality, I know of only 2 products that are usable:

	1) Rational
	2) DEC

(there might be others, but these are the ones most
talked about and I am familiar with).  Ada merges several
technologies --multi-user database, parallel processing,
software engineering, compilers, user interfaces, etc.
The only way to support the integration of these technologies
is to have a platform that allows them to talk to one another.
The platform must either be customized (Rational) or of
high quality (DEC/VMS).  Unix was/is/will always be a disaster
This then goes back to the cost issue.  

Also, very few vendors are able to master these technologies.
Either they  are too small to afford it or the egos are so
damn huge in the individual fields that they can't bring the
team together to build a quality product.


I am done rambling. I learned my lesson. Ada taught me many
great concepts and but also the realities of life.

		au revoir Ada, :-(   (sniffle,sniffle)

			Dreez


=================================================================
=================================================================
               Michael J. Endrizzi
	Secure Computing Technology Corp.
	   1210 W. County Road E #100
	      Arden Hills, Mn. 55112
	        endrizzi@sctc.com
	          (612) 482-7425
	
*Disclaimer: The opinions expressed above are not of my employer
             but of the American people.
=================================================================
=================================================================

jcallen@Encore.COM (Jerry Callen) (08/16/90)

In article <1990Aug15.151935.8848@sctc.com> endrizzi@sctc.com (Michael Endrizzi ) writes:
>This is why the survival of Ada is at stake:
>
>	1)Control
>	2)Cost
>	3)Complexity
>
>1)Control: Programmers and our associated egos like to be in control 
>of our destinys. On paper, Ada is a powerful tool that automates
>many of the manual checks (recompilation, type checking) that
>other languages lack. By using this tool, we give up control.
>Big egos don't like to give up control. And when that tool
>doesn't work right, it's like being in a speeding car with
>not steering wheel driving in the mountains.

I don't really view type checking as a loss of control; rather, as you
pointed out, it automates an otherwise tedious part of my job. The
ability to override the checking is there when you really need it, via
unchecked_conversion, pragma interface, and (if you're lucky enough
to be using a system supports it) machine code insertions. My ego has
survived, and no one has ever accused me of having a small ego! :-)

It _is_ really annoying when the tools let you down. In my experience,
though, this happens pretty rarely, and I'd rather put up with the few
failures than live without the conveniences.

>C/Unix on the other hand is a hackers tool. If this don't
>work right...well we all know how easy it is to flip a
>few bits here and there to make it work.

Actually, Ada/Unix can be a hacker's tool, too. At least, that's how _I_
often treat it. Judicious use of the overrides I mentioned above allow
me to dig as deep a hole for myself as I wish. :-)

>2)Cost: Quality Ada environments are expensive and resource hogs.

Sigh. Some myths never die. I'm currently using Ada on an Opus PM8000
(Moto 88K board in a stock AT clone). Ada compilations zip right along;
I can recompile about 100 medium-sized units (averaging a few hundred lines
each) in about 10 minutes. I share this machine with several other users also
doing Ada compilations. You'ld have to put a gun to my head to get me to move
onto a VAX/VMS system and off this little PC (hey, this is _unix_, not VMS!).

>C/Unix on the other hand is basically free. GCC is probably
>one of the highest quality C products and it is free.

No argument here. Gada, anyone?

>Unix comes standard on some systems.  Compile times, storage
>requirements are reasonable in a multi-user environment.

See above.

>3)Complexity: On paper Ada is addictive, elegant,  true
>solution to multi-person life-cycle software engineering.
>In reality, I know of only 2 products that are usable:
>
>	1) Rational
>	2) DEC
>
>(there might be others, but these are the ones most
>talked about and I am familiar with). 

I have biases I'd rather not reveal, but I think this list could be
expanded. I'm reasonably happy with the system I'm using right now.
(Actually, I don't much like some of the internals, but...)
I have been happy with another system that actually has a more complex
(but, surprisingly, much more usable) library system.

>The platform must either be customized (Rational) or of
>high quality (DEC/VMS).  Unix was/is/will always be a disaster

Hey! You knockin' Unix, buster? Themz fightin' words! :-)

Nearly ALL of my Ada experience (aside from some unpleasantness involving
large bluish machines...) has been on Unix. I love it.

>Also, very few vendors are able to master these technologies.
>Either they  are too small to afford it or the egos are so
>damn huge in the individual fields that they can't bring the
>team together to build a quality product.

Lots of truth to these words. Anyone who tries to tell you that an Ada
compiler isn't more complex than a C compiler may also try to sell you
a bridge.

But some vendors _are_ doing it, or at least coming close. The technology
is maturing. I think there was a tendency on the part of early Ada implementors
to produce over-engineered systems that were, in fact, fragile resource hogs.
But the shake-out is happening; the surviving vendors keep refining their
products, and the compilers get better and better. Unfortunately, the bad
first impressions linger, and not everyone burned by a bad compiler is willing
to put up the bucks for a newer, better compiler.

>I am done rambling. I learned my lesson. Ada taught me many
>great concepts and but also the realities of life.
>
>		au revoir Ada, :-(   (sniffle,sniffle)

Aw, shucks, don't give up on the old gal yet! :-) 

-- Jerry Callen
   jcallen@encore.com

eberard@bse.com (Edward V. Berard) (08/16/90)

In article <1990Aug15.151935.8848@sctc.com>, endrizzi@sctc.com (Michael Endrizzi ) writes:
> 
> This is why the survival of Ada is at stake:
> 
> 	1)Control
> 	2)Cost
> 	3)Complexity
> 
> 1)Control: Programmers and our associated egos like to be in control 
> of our destinys. On paper, Ada is a powerful tool that automates
> many of the manual checks (recompilation, type checking) that
> other languages lack. By using this tool, we give up control.

This is an interesting observation. While I will admit that there
may be some things which are easier to accomplish in C (and, of
course, many things which are easier to accomplish in Ada), Ada
provides you with all the control that C offers you -- and, very
probably, much more. Just as an inexperienced C programmer might
believe that some things are impossible -- or incredibly difficult
-- in C, so would an inexperienced Ada programmmer think that
some things were "impossible" in Ada.

> And when that tool
> doesn't work right, it's like being in a speeding car with
> not steering wheel driving in the mountains.

I very much agree.
 
> C/Unix on the other hand is a hackers tool. If this don't
> work right...well we all know how easy it is to flip a
> few bits here and there to make it work.

As someone who uses both C and Ada, and knows quite a few
"C hackers," I think you are indulging in fantasy. I have
seen plenty of C programs which destroyed not only themselves,
but also their surrounding environment because the programmer
"flipped a few bits here and there." Incompetence is
programming language independent.
 
> 2)Cost: Quality Ada environments are expensive and resource hogs.
> You can't just sit at home and hack into the night on your
> Mac/PC. You must have your $100,000 Rational with 200 Gigs
> of storage parked in your basement to get a true Ada high.
> I know on our system, I must balance elegance with "will
> the damn thing even compile, fit on our disks, crowd out
> other users, etc".

Years ago I wrote an article about the problems with
validated Ada compilers. The average quality at the time (5 years
ago) was not all that great, but there were still some superstars.
Today, with over 50 vendors particpating, the quality has
improved noticeably.

	I _am_ at home at night programming (not "hacking") on my
	Mac with Ada, and using 2 different validated Ada compilers
	for the Mac OS. I am currently attempting to write code
	which deliberately breaks the Ada compilers I am using,
	and I am having nowhere near the problems you are having.
	(I might add that I am also _not_ using the same compiler
	vendor you are using.)

> C/Unix on the other hand is basically free. GCC is probably
> one of the highest quality C products and it is free. Unix
> comes standard on some systems.  Compile times, storage
> requirements are reasonable in a multi-user environment.

Please don't get sucked into the classic apples and oranges
comparison of C and Ada systems:

	1. If the most ardent Ada hater will grant that Ada
	   provides far more capabilities than does C. (In
	   fact, they often use this as an argument against
	   Ada.)

	2. C compiler vendors do not have to (re)validate their
	   compilers. Validation does cost.

	3. The marketplace for C compilers is greater than the
	   marketplace for Ada compilers. The size of the market
	   does indeed influence the cost of the product. (You,
	   of course, know that C is almost 10 years older than
	   Ada.)

 
> 3)Complexity: On paper Ada is addictive, elegant,  true
> solution to multi-person life-cycle software engineering.
> In reality, I know of only 2 products that are usable:
> 
> 	1) Rational
> 	2) DEC

As I said before, your experience is limited. I happen to
like both of the systems above, but others are at least
acceptable.

When I was teaching C, I used to have to assure some students
that all C compilers were not incredibly buggy, and that not
all C compilers generated huge object files. I explained to
them that there were many C compiler vendors, and that quality
varied widely. Even with a programming language which has
been around for nearly 2 decades, new vendors constantly
repeat the mistakes of the past.

> Unix was/is/will always be a disaster
> This then goes back to the cost issue.  

No comment.
 
				-- Ed


----------------------------------------------------------------------------
Edward V. Berard                                | Phone: (301) 353-9652
Berard Software Engineering, Inc.               | FAX:   (301) 353-9272
18620 Mateney Road                              | E-Mail: eberard@bse.com
Germantown, Maryland 20874                      | 
----------------------------------------------------------------------------

endrizzi@sctc.com (Michael Endrizzi ) (08/16/90)

eberard@bse.com (Edward V. Berard) writes:

>course, many things which are easier to accomplish in Ada), Ada
>provides you with all the control that C offers you -- and, very
>probably, much more. Just as an inexperienced C programmer might

I disagree for a different reason. In C, the user is responsible
for system build. In Ada, the library and assoc tools are
responsible for system build. If the library is corrupt, if the
tools don't work, you have lost control to the Ada environment.
This is not true with C.

Also, you are provided with a package that is shut tight
with limited private types and is a central module used by
the whole system. You need to have visibility to some 
data object in that package. Proper software engineering
would require you to create a new routine. Reality says,
"If you cause a recompilation of the whole system, you will
piss off 20 programmers who are trying to work on a stable
system".  C let's you hack it in. You gain control. 

I'm NOT advocating this approach. I see it happen all the
time and I get the willys.  I'm just saying it is an
advantage (puke ugh gag).

>"C hackers," I think you are indulging in fantasy. I have
>seen plenty of C programs which destroyed not only themselves,

You misread my statement. I agree with you completely.

>Please don't get sucked into the classic apples and oranges
>comparison of C and Ada systems:

I don't think that I am. I am trying to convince my company
to switch from a glorified assembler "C" to a real software
engineering tool. I have to compare the advantages/disadvantages
of the two.  Right now I don't have any advantages to show them.


For those of you who don't know Ed, if you ever meet him ask
him for a reference for some literary material. He will quote
you book, paragraph, page, section, author, year, etc.  Never
would play poker with that man.


			Dreez

=================================================================
=================================================================
               Michael J. Endrizzi
	Secure Computing Technology Corp.
	   1210 W. County Road E #100
	      Arden Hills, Mn. 55112
	        endrizzi@sctc.com
	          (612) 482-7425
	
*Disclaimer: The opinions expressed above are not of my employer
             but of the American people.
=================================================================
=================================================================

vestal@SRC.Honeywell.COM (Steve Vestal) (08/18/90)

>In article <12490@encore.Encore.COM> jcallen@Encore.COM (Jerry Callen) writes:
>   [ massive quantities of stuff deleted ]
>   No argument here. Gada, anyone?

I heard a Gnu Ada rumor awhile ago.  Does anyone have any reliable information
about this?

Steve Vestal
Mail: Honeywell S&RC MN65-2100, 3660 Technology Drive, Minneapolis MN 55418 
Phone: (612) 782-7049                    Internet: vestal@src.honeywell.com