Al Christians wrote:
> "When Failure Is Not an Option, Ada IS the Answer!"
Tucker Taft wrote:
> When your software has to fly...
> When there is no room for error...
> When reality is more important than hype...
> When lives are on the line...
> Choose Ada:
> The Most Trusted Name in Software(tm).
> This highlights the point that software engineers/managers
> have the ability (and a duty) to make a choice
Hal Hart wrote:
> "When Failure Is Not an Option, Ada IS the Answer!"
Gary Kephart wrote:
> "In Ada We Trust"
Dave Wood wrote:
> "I wouldn't use another language if my life depended on it!"
Jeff Burns wrote:
> As a marketeer, I think that "Safety Critical" is
> Ada's strongest possible position in the market and
> this should be stated explicitly in the tag line.
> "Ada, the safety critical language"
I suppose that many of the regulars on this forum are
tuned in to what I might say about these suggestions.
If you've paid attention to my previous strident diatribes
on Ada marketing (Feb and Apr of this year), you're probably
expecting me to relate a few words about what should be
selected as the "Ada slogan" or in my (and Rosser Reeve's)
terminology, the "Ada USP".
Well, not being one to disappoint, I am here to say my peace.
However, rather than couch my ramblings this time in sermon
form, I will try the Socratic method and ask some non-rhetorical
questions. I hope to generate some dialogue this time instead
of spewing forth with a monologue like I have before.
First question: do we really believe that programmers will
be attracted to Ada on the basis of reliability? I know that
some will, but what evidence is there to persuade us that these
are more than a small minority of programmers? It appears
to me that, in America especially, programming is an ego-enhancing
activity, the vast majority of practitioners being males
interested in the creative and fun aspects of programming, with
a focus on new or exotic technology features. The satisfactions
that the average programmer seems to find in developing software
are not very closely related to the goals we often list as
"software engineering principles": reliability, maintenance, etc.
Does anyone else sense this? When I discuss "reliability"
in my Ada classes, I never get the feeling that my students
are crouching on the edge of their seats or perking up their
hearing. They do those things when I start talking about
tasking and real-time stuff. But reliability bores them, and
I suspect bores the "average programmer" as well. Of course,
it may be *wrong* for programmers to be disinterested in
reliability in favor of having fun -- but then again, when has
the human race, en masse, preferred listening to a sermon over
having a good time?
A good analogy seems to present itself from the automobile
market: the Volvo. The Volvo was sold for years in the US
as a "reliable" and "safe" car with a sophisticated aura
because it comes from Sweden. Intellectuals, worrywarts,
and upper-middle class status seekers bought it. No one
else did. Volvo's image was the subject of a joke in the
movie "Crazy People" -- Dudley Moore played an advertising
man who eliminates the less straightforward aspect of ads
in favor of blunt minimalism: "Volvo: They're boxy. But
they're good." Big laughs from the audience, who recognized
Volvo's essential message.
"Safety" and "Reliability" didn't sell Volvos. So, Volvo
recently has introduced "sleek" autos -- all the corners are
rounded now. They've got sex appeal. And the ads downplay or
don't mention reliability and safety. Sales are up.
Even Quaker Oats has dropped its older sales approach --
the stern grandfather figure Wilfred Brumley saying that
eating oatmeal is "the right thing to do". Not to pick
on Richard Riehle too specifically, because the spirit of
his suggestion is essentially the same as most of the others,
but he sounds like papa Brumley when he says:
> Ada, soybeans, broccoli: good for you. good for your system.
I'm sure he was joking at least a bit. But all of our (meaning
we Ada programmer's) home-grown marketing suggestions tend to
come across this way, at least to my ears: "Ada is the right
thing to do. Ada is your conscience -- be stern with yourself
and choose it. Ada is like peas and carrots -- you must eat
them because they are healthy, even if you don't like them;
so chose Ada for the same reasons." Tucker Taft's comment
above about "duty" has the same ring to it.
All of these appeals to the superego leave to the marketers of
other languages (C++ and Java especially) the vastly more
appealing solicitations that can be made to the id. Bjarne
Stroustrup *directly* invokes this half of human nature when he
says that "The purpose of the C++ language is to make programming
more enjoyable for the serious programmer". Can you beat that?
This is what programmers program for anyway -- enjoyment. I can't
help but think the spirit of this statement has quite a bit to do
with the widespread use of C++. In my view, "fun" figures
prominently in the promotion of the Java language as well.
Furthermore, it seems to me that our attempts to sell Ada on the
basis on reliability, safety, "critical" systems certification,
etc. have a touch of bad faith in them. By this I mean that I
distrust you people whenever you claim that "reliability" or
"safety" are the main reasons that you like to program in Ada.
It's a bit like hearing people say they subscribe to Playboy for
its fine journalism. You just want to say, "Come on, get real!"
My thesis is: programmers (like you) program for pleasure first;
other considerations come second. What aspect of Ada first
appealed to you, struck your fancy, aroused your interest? For
me it was tasking. For you perhaps it was private types,
generics, or other various features that lend themselves to the
creative impulse in programming. I doubt it was range checks.
Second question: what's wrong with selling Ada as the real-time
language of choice instead of the safety-critical language of
choice? Jeff Burns says:
> Ada may be better at real time, but C is the major player
> there and well established. It's an uphill battle to
> establish Ada as better than C for real time.
But this is not a good reason for not trying, and not a
reason that would exclude Ada from making *any* significant
inroads into real-time systems. We shouldn't think we need to
"own" a whole market segment -- if Ada got 10% of the real-
time market, Ada vendors would all be fabulously rich! I appreciate
Jeff's other warning about making our appeal too
> Ada positioning should be focussed likewise. We don't have
> the resources to take on C and C++, etc. on all fronts all
> the time. We can make more progress through a single strong
> over arching position....
but, like Tucker, I believe that "safety-critical" is too
narrowly focused because that market is too small:
> The problem is that safety critical systems is not (yet) a big
> enough "niche."
> You would at least have to generalize it to "business critical"
> or "mission critical" or simply "critical."
Unlike Tucker, I tend to believe that focusing on "critical"
systems has the wrong psychological results. The underlying
message of such an approach is "Ada is good for systems that
absolutely must work -- so don't consider it for less
'significant' tasks." Since I think I've said it better before,
I will violate a cardinal tenet of good taste by quoting myself;
here is part of a team-ada message I submitted in April:
> The flavor of both of these statements ("Ada should
> be used mainly for very large projects", and "Ada is
> mainly good for safety critical projects") is
> that Ada is something you only should use if you
> absolutely have to, if you've got no other choice,
> or when you're backed into a corner because of
> the size of your project or its safety requirements.
> Continuing to sell Ada along these lines will be its
> downfall for two reasons: 1) projects that fit in
> either of these two categories are not any kind of
> mainstream, not even the mainstream of the real-time
> systems niche; and 2) programmers are persuaded that
> Ada a necessary evil rather than an enjoyable and
> useful tool.
On the positive side, my argument for focusing the marketing
effort on real-time systems has two aspects: (1) real-time
systems are "cool" and Ada can become "cool" by association
with them, and (2) real-time systems are a large and growing
In February, I recommended a mantra for Ada along the lines
of "Ada is the most powerful language for real-time software."
(see my long post called "Ada USP" in the team-ada archives
for a complete discussion of why). Now I'm ready to recommend
a tag line that reduces it to button proportions:
Ada: Real-Time Power
For those who insist on including some element of the
traditional Ada creed in the tag line, a compromise
could include a hopefully unobtrusive word
Ada: Safe Real-Time Power
Well, I guess there was more monologue than I had planned,
and maybe more diatribe than is proper; hopefully no one is
offended and we can move together, amoeba-like, to the very
proper goal of discovering how to sell Ada effectively.