TEAM-ADA Archives

Team Ada: Ada Programming Language Advocacy


Options: Use Forum View

Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Stanley Allen <[log in to unmask]>
Reply To:
Stanley Allen <[log in to unmask]>
Tue, 14 Apr 1998 22:08:42 -0500
text/plain (478 lines)
Richard Riehle wrote:
> Reference: Embedded Systems Programming, April 1998, Vol 11, No 4
>            Miller-Freeman, Inc.
> One of the friendlier forums for Ada has been the magazine
> referenced in the subject caption.  I was pleased to see the
> full color adverstisement from Aonix for ObjectAda.

Yes, it's a nice-looking ad.  It's always wonderful to
see an Ada ad prominently posted in the popular programming
press, where actual programmers go to look at products and
get information.  The mere presence of unapologetic Ada
ads in widely-distributed magazines goes a long way to
countering the "Ada is dead" myth.

(This myth is such a serious concern to me that I often
go to unusual and perhaps perverse lengths to debunk it.
Recently I exchanged a series of e-mails with the editors
of Byte magazine trying to persuade them that the April
issue's reference to "Ada, a 1970's language" was an
authentic error, and not an valid alternate interpretation
of history.)

One Ada ad from one vendor in one magazine is a good
start, but that magazine is filled with ads back to
front.  When it comes to advertising, it's understood that
there is a "threshold" of attention penetration which
must be broken before your message gets across, in
our case that Ada is alive and worth considering (in
Aonix's case, that ObjectAda should be considered).
Mucho "signal" is necessary to break through the "noise".
So, more ads by more vendors are ultimately necessary.

But since we have this one ad, so well-placed, so timely
and nice-looking, I'll appreciate it for what it is.  And
it gives me such pleasure to see it there, I almost feel
bad criticizing it.  Almost.  We value information signals
for their content, so we must examine the content of this
particular one.  But I'm in a good mood, so I'll start
with the merits instead of the demerits.

The first positive I see is the name of the product.
ObjectAda Real Time!  That's a great name!  Whoever
thought up that name must surely be given an award
of some kind.  The name of this product neatly sums
up the significant aspects of the Ada USP, which
was introduced in this forum in February.  I'll
repeat it here for reference purposes: "Ada is the
most powerful language for the development of real-
time object-oriented software".  The first part of
the name, ObjectAda, is a triumph of marketing
ingenuity.  What better way to combat the myth of Ada's
lack of "OO-ness" than to combine the two concepts into
a single name?  This provides the mental "immediacy
effect" which yokes the concepts in that half-
subconcious process of thinking we use when referring
to anything by its name.  The importance of linking
Ada and Object-Orientedness can not be overstated.
As I noted in my Feb. post, "OO" isn't even a
buzzword anymore; OO is the status quo.  If Ada is
not perceived as an OO language, it's already out
of the running.  The name "ObjectAda" conveys in a
single word the news that OO applies to this product.
Aonix was smart to adopt this name.  We have a
technology, Ada, which is OO, and once everyone in
the world understands this, the better off we will
all be.  The point of all this is perception.  Any-
thing that's not OO is old hat these days.  Such are
the vicissitudes of programming culture history.

I'm not done with the name yet.  The second part,
Real-Time, is also very significant.  Real-time,
embedded systems are the next big thing.  If the
entry of Microsoft (Windows CE) into this arena does
not convince you that real-time software is a huge
new market and will be exploding into unlimited
horizons in the near future, then you are living in
some mental alternate shadow-world; perhaps you
are made of anti-matter, perhaps there are two
moons in your sky.  Microsoft is the Sun King in
the real one.  The phrases "real-time" and "embedded"
will be to the late 1990's and early 2000's what
"object-oriented" was to the mid-1980's to early
1990's; namely, the blood scent in a marketing feeding
frenzy, the touchstone for a new generation of
programmers, and the mantra of a multi-billion
dollar industry of new technologies (though little
new science).  Glad to see that Aonix wants to get
their slice of the pie.  (Where are the rest of the
Ada vendors?  Don't they want some of this market?)

Basically, today we are seeing the mass-market use
of yet another Ada-pioneered programming capability.
Object-oriented was once the province of Ada,
remember?  Yes, I know about SIMULA, please no
trivial replies to this.  What I'm talking about
is popularization -- from 1985 until about 1989, almost
all of the front-running object-oriented methodology
groundwork was laid by Ada thinkers and practitioners.
Booch, Firesmith, and Berard are still working in the
field.  Similarly for real-time -- the work done in the
late 1980's to mid 1990's on rate monotonic scheduling
theory was heavily focused on Ada projects and
compilers.  And the presence of Ada in the marketplace
had at least something to do with the slow but steady
improvements in commercial operating systems threads

Will we see real-time technology now transition away
from Ada the same way that OO methodologies migrated to
other languages?  Or could things be different this time?
Only if those who stand to profit from the revolution
choose to go out there and get it.

(We may have a good lead-time on this one.  From the
looks of Java and other technologies that have recently
been baptized as "real-time", it will be quite a while
before the world understands, appreciates, and
incorporates a feature like protected records, or
comprehends the full suite of issues involved in
including threads/tasks as a language feature rather
than an OS or library feature.)

Other good things about the Aonix ad: the references
to Wind River Systems, Lynx, and PharLap (all solid gold);
the mention of Java (though much of the embedded
programming community is still wary of Java stuff);
and the invitation to see Aonix at the Spring
Embedded Systems Conference (I hope Aonix was not the
only Ada representation there.  Rational?  DDC-I?  ACT?
OC Systems?  SIGAda?).

So, cheers to Aonix for trying to sell their product; I
wish them well and lots of green profits.  And cheers
to us too, for the fact that the embedded programming
world has been reminded of Ada.  Every little bit helps.
If vendors keep up with the ads, every last vestige of
the "Ada is dead" myth will dissolve and dissipate.

Now we turn our attention to those aspects of the ad
which could be ... ah ... improved.

First, get a good look at the ad itself, if you can
get hold of a copy of it.  To whom is the ad addressed?
This is actually kind of ambiguous.

Notice the guy in the lower left corner of the ad
(somewhat comically looking out of place, like
he belongs in an ad for Software Through Pictures).
He's obviously a typical dedicated engineer
programmer-drone.  A Dilbert type.  Relaxed Friday
clothes, round glasses.  We can fill in the missing
details; we don't see a terminal and keyboard in the
background, but we can easily imagine them; also, his
tastes we can guess span the range from Voyager
to Deep Space Nine, Beatles to Led Zeppelin.  A typical
straight ahead computer developer.  This is all to the
good.  We can identify with this guy, he's one of us,
a hard-working, productive member of a programming
team, makes his contributions, thinks ahead.  (And
to round out the picture, he's also "seasoned" to
an extent -- it's obvious that his diet does not
consist of colas and pizza.  Plus he's married; did
you notice the ring?)  Fine.  He is us.  You.  Me.

But is this who the ad is addressed to?  I don't think
so, or at least it is not so clear-cut.  Take a look
at the copy (no, not a duplicate of the ad, silly,
the text!); what sort of issues does it address?
Reliability.  Safety critical.  Playing it safe.

These are issues for systems engineers, not Joe
Coder.  But that can't be right; systems engineers
generally aren't readers of ESP.  So, who is this
for?  Managers and decision makers.  This stuff puts
our friend Mr. Coder to sleep, unless he's a multiple
role player in the organization.  Like I've said here
before in previous memos about marketing and Ada, it's
a mistake to sell Ada to programmers on the grounds that
"it's good for reliability".  They don't care.  They
want features and power.  Meeting DO-178B is not on
their short list of desirability.  Managers and
systems engineers wring their hands about safety and
reliability; programmers in general do not.

*Of course* there are exceptions.  But reliability is
generally just not something that makes programmers drool.
You have to know to whom it is that you are marketing,
and meet them where they dream.

So this aspect of the ad -- target focus -- is a bit
flubbed, unfortunately.  It's too bad, because the
target audience for an ad is so critical to its
success; but I won't harp on this too much.  Let's
not call it a flaw, let's just say it's a shortcoming.
Also, I understand that there is always a limited
budget for ads, and companies often must make ads do
double duty; so we hit the managers and the programmers
in a single ad.  At least there are a few things in this
ad to get Mr. Coder somewhat excited.  Some that meet
Dr. Pavlov's criterion: "deeply-embedded", "multi-
processor", "high-performance".

Now onto the most serious problem.

The major, standout flaw of the ad is also related
to the reliability issue: the ad is totally devoted
to reliability and safety critical systems!  This is
a different criticism than the one above about missing
the target audience.  Now we are talking about market
share, positioning.  What sort of use do we want Mr.
Coder and his manager to make of our product?  We are
telling them in this ad that ObjectAda is good for
safety critical systems.

That's too bad.  In terms of the size of the markets,
"Safety critical systems" represent approximately the
same percentage of the "real-time and embedded systems"
pie chart that "real-time and embedded systems"
represent in the general computer systems pie chart.
It's a niche within a niche.  Now, we all know that
Ada is destined to be a niche language.  The large
market of computer software including word processors,
games, web browsers, HTML generators, etc., is
probably generally closed, fairly or not, to Ada
technology.  Within the "real-time and embedded
systems" markets, however, it's not a good idea to
limit ourselves to "safety critical" only.  And this
ad from Aonix will have an unfortunate market-
limiting effect.

It almost broke my heart to read that ObjectAda is an
excellent choice for "air and rail transportation
systems, energy plants, and medical devices".  Harrumph.
The list of providers of air and rail systems software
and nuclear power plant control software would probably
fit in the 4K of RAM in my 1980 Radio Shack Model I
Level I computer.  There would probably be room in
the 4K ROM for the list of developers of medical
device software also.  C'mon, what share of the
world's developers are doing this kind of stuff?
And the ad's big picture of the astronaut in space.
Too bad: most readers of ESP magazine will never get
their keyboards attached to the 100 or so computers
in the world used to develop the software used in
manned space flight.

The problem is that people believe what you tell
them.  They already do.  We've told them so: "Ada is
best for reliable software!" and "If it must be right,
it must be Ada!"  We've convinced them.  I've seen a
number of notices in the past few months in which
developers of safety critical systems ask about the
availability of Ada technology.  Folks have heard our
message.  Now, when it comes to the rest of the
real-time embedded market, they generally will say
that "Ada is not something we would find useful: we
don't do safety critical stuff".

They are already saying this.  The bigger market is
escaping!  Once people have become convinced, as they
are now becoming convinced, that Ada's niche is
as small as we are claiming for it, it will never
get the broader application it deserves.  If we wake
up too late and discover that our niche is too small,
the time will have passed when we can convince people
to use Ada in some other manner.  It will be like
Bob Denver trying to start a serious film acting
career.  Ada should not become the Gilligan of
programming languages!

(BTW, it's funny to me that Ada vendors and other
Ada proponents generally limit Ada to "safety critical"
systems and argue that "you need to get the software
right because *lives* are at stake, so use Ada", when
the people that could really make you rich are the
ones who are not worried about human life: the world's
financial institutions.  To the bigwigs in world finance,
you should sell Ada as the technology that they absolutely
must have because "if you don't get the software right,
hundreds of millions of dollars could be lost!".  That
will get their attention.  Loss of human life is not a
big enough motivator; protect the money!  I know that
there are some financial institution using Ada for this
very reason.  Some of them are using Eiffel for this reason,
too, and Eiffel has a better chance of success in that market
because 1) Bertrand Meyer talks business/finance lingo and
2) he makes so much damned noise about his language.  But
now I am talking about persuading managers, so I'll stop.)

Ada can and should be used for many classes of real-
time and embedded systems.  I'm using it for training.
Others are using it for telecommunications.  It's general
purpose, real-time, object-oriented, good for a lot.
It's important that this kind of Ada message gets out now,
since the world of embedded systems is in such a flux.
Unlike the PC software market now, there is room for
change in the real-time market.  The market is in flux
because of two things: Microsoft's entry in the market
with Windows CE, and the uncertainty about the use of
Java in real-time systems.  Once Microsoft moves in,
everything will change; expect the worst in terms of
language choices.  Their current main product is a
version of Visual C++.

Don't imagine that Microsoft's Windows CE product will
be laughed off the market.  "Windows Everywhere!" was
the Redmond campus cheer a number of years back.  It's
becoming a reality now.  Windows NT has started to
replace Unix in many workgroup environments.  Serious
discussions of the use of Windows NT for real-time
systems have been going on now for two years.  Windows
has almost wiped out DOS, once considered invincible.
Microsoft has the marketing muscle to promote their
new product, CE, and enough cash to make it anything
they want it to be technically.

I despair when I think that probably no Ada vendor is
teaming up with Microsoft now for Ada compilers for
Windows CE.  All the RTOS vendors are scrambling either
to get aligned with Microsoft or to form joint ventures
with others to take MS on.  Maybe it's a long shot to
think that MS would consider embracing an Ada vendor,
though Rational might be able to pull it off, since they
are the big frog in the Ada pond and they already have a
relationship with Microsoft.  Bill Gates would have to
see some kind of market there to attract his interest;
this could be arranged.  Also, his pulse might quicken
to think of Windows CE controlling airplane avionics and
spacecraft.  "Windows Everywhere!"

So, to sum up this point, Ada could become the victim of
its own rhetoric.  We have to find new rhetoric pretty
quick to claim more real-time systems for Ada.  Ada
would be wonderful for so many kinds of real-time
systems; tell the world that, provide good products,
and you'll find buyers.

(To be fair to Aonix, I should add that this narrow
focus on safety critical systems for Ada is endemic
to our little flock.  Almost every Ada conference
seems to have the word "Reliable" in its title.
Given Ada's background, this is not surprising, but
that still does not make it palatable.  I presume
that by emphasizing the reliability aspects of Ada,
vendors and other Ada promoters are intent on
"keeping it sold" to those markets.  Good idea for
keeping the current markets; bad for expanding into
new ones.)

Richard Riehle also wrote:
> on page 27, former ESPM Editor, Tyler Sperry, has some thoughtful
> observations about Ada. Tyler is one of the good guys.  He has
> never been a language bigot and has always tried to maintain a
> practical perspective with regard to Ada.

Probably Richard knows Mr. Sperry much better than anyone
else here, so I will assume that he (Richard) has heard
Mr. Sperry in other contexts, and can frame the remarks
made on page 27 with other things that Mr. Sperry has said
about Ada.  I have respect for Mr. Riehle and his efforts
to promote Ada in larger contexts, and am inclined to give
him the benefit of the doubt on his interpretation of Mr.
Sperry's remarks.  However, just from looking at this
article, I must say that Mr. Sperry's remarks are not
indicative of any real grasp of Ada, and are more harmful
than they are helpful.

Mr. Sperry seems to take up a refrain heard elsewhere when
he assures the ESP reader that he has faulted Ada in the
past for being a "fascist" language.  On what foundation
does Mr. Sperry have and express this opinion?  I'm not sure
which aspect of Ada he is referring to, but if my guess is
correct, he is probably making reference to Ada's type system,
and thinking of the issue of "strong typing" (memo to Ada
teamers: please strike the phrases "strong typing" and
"strict typing" from your vocabulary, substituting some
variation of the phrases "powerful type system" or "flexible
type system".  Thank you.)  (It's interesting to note that
this same phrase, "fascist programming language" was used
to accuse some early C++ language design experiments when
Bjarne Stroustrup had not yet released C++ outside AT&T.
In his book, "The Design and Evolution of C++", he reports
that when he tried to introduce better type checking in C++,
early users attacked the changes with this phrase.  Bjarne
rescinded those features.)  If this is the criticism that
Mr. Sperry has of the Ada type system, I would like to know
to what extent he has actually programmed in Ada.  Sure,
folks from a C or FORTRAN background are often bitten by
the need to do trivial type conversions they are not used
to, and often stub their toes on some enforcements not made
in the languages they were trained in.  But this sort of
thing passes with some experience.  Someone who works on
a real Ada project for more than a month or so generally
will get past these introductory problems and learn to work
within, rather than against, the language.  Ada will then
be more pleasant.  (Note that I am not saying this to
try to convince *you*; this is not an ammo speech.  I am
trying to get to the bottom of Mr. Sperry's comment.)
So, if Mr. Sperry's opinion comes from actual experience,
in my opinion that experience must not be very extensive.

But is it possible that this criticism is not really based
on experience, and has some other source?  Perhaps.  I tend
to think that his opinion, as expressed in this editorial,
is probably not fully his own.  Read the paragraph; it seems
to me that he is making an attempt to "reflect" the
reader's opinion, to identify with the reader and not
alienate him/her.  Mr. Sperry presumes that the reader
has a poor opinion of the language, and lets the reader
know that "I'm one of you.  I, too, find Ada an unpleasant,
restrictive nuisance.  Don't think that by mentioning Ada in
a quasi-postive context that I have gone off the deep end and
that I enjoy and have actually started *promoting* Ada; if
I did that, I know that you would stop reading this and stop
taking me seriously".  So, the mention of "fascism" is no
more than a writer's device.  Thus we have come to the
origin of Mr. Sperry's motivation for making the statement.

But can we go further?  If Mr. Sperry is simply repeating
what he expects others to hear, then there must be a reason
why the others expect to hear it.  And why do programmers in
general have this opinion of Ada?  Why does the programming
public turn up its nose at the mention of Ada?  For what
reason does the programming population think that using
Ada is tantamount to cutting off one's hands, wearing a
straight jacket, being unable to escape from a restrictive
enclosed space?

The answer is: because we have told them so!  *We* are
the ones who have harped so hard on the rock-solid
reliability of the language, who have made truly stupid
statements like "Ada forces you to do things the right way",
and "Ada is so strict that the compiler makes you take this
or that approach".  These statements are a) certifiable bat
guano and b) the worst possible way to attract developers.

They're untrue statements!  For each programming problem,
there are always a number of possible Ada solutions; also,
the type system can easily be subverted, etc.  Anytime
I hear someone make a statement like this, I know right away
that they are either a brainwashed non-Ada user or an Ada-
using dunce.  If anything, Ada is so flexible it's almost
out of control.  Please, if you've ever said anything dumb
like this, stop doing so and wash your mouth out.

From a sales point of view, nothing could be worse than
telling a programmer that "language (or operating system,
or technology, etc.) XYZ *forces* you to do this or that".
The last thing anyone wants is to be forced to do
anything; programmers even more so, given the general
libertarian bent they have.  How do you like being told
that you are forced to do something?  It's no wonder that
the rest of the programming community looks upon Ada
developers with amused pity: see the poor Ada programmer,
chained to an outdated, mandated technology like a slave
to a millstone, the Ada language "forcing" him to do
hard labor, a small hitlerian mustache on her upper
lip as she raises a whip and shrieks with a Teutonic
accent: "Arbeit Macht Frei!" (*crack!*)

Hell no, they say.  Not me.  You won't trap *me* in that
DoD concentration camp.  I'm free as a bird; gimme that
C++ compiler.

And it's our own fault.  Why haven't they heard about the
tremendous flexibility of the Ada language?  Why haven't
they been told how much fun it is to use?  We're too busy
talking up it's rigid reliability.  Enough of that kick.

"The purpose of the C++ language is to make programming
more enjoyable for the serious programmer". -- B.S.

Stanley Allen
mailto:[log in to unmask]