Re: No call for Ada (was Re: Announcing new scripting/prototyping language)

From: Alexander E. Kopilovich (aek_at_VB1162.spb.edu)
Date: 04/16/04


Date: Fri, 16 Apr 2004 06:47:41 +0400 (MSD)
To: comp.lang.ada@ada-france.org

Dmitry A. Kazakov wrote:

> The society has two major instruments for intervening. One is liability,
> shoe makes are liable, why software produces should not be?

Because the public did not want (so far) to triple (at best) software prices
by involving lawyers in the detailed specification of every software product.

There is well-established tradition for shoes, for centures, both for their
production and their use. So common sense is well-formed regarding shoes,
and enough independent experts are always (and easily) available - again,
both for production and for use of shoes.

But we still do not have enough tradition for software products - neither for
their production nor for their use. We have little common sense regarding
software, and certainly not enough independent and at the same time competent
experts.

And all above is only one side of the problem. Another side looks even worse:
significant part of software is a cutting edge in one or another dimension,
and therefore it naturally can't guarantee its performance in every particular
circumstances. So, general liability will severely impede progress, and this
for many applications overweights eventual losses. Note that it may be true
even for software that may directly endanger life of a human person.

For a change, you may think also why so many advertisments (not necessarily
related to sofware) aren't liable -;)

> Other is redistribution of wealth.

Hm, probably you mean internal/domestic redistribution, and not redistribution
between this country and others (although the latter is also often seen as
a major government's instrument or purpose, depending on circumstances).
In this case, regarding technical/scientific problems it is usually called
"concentration of resources", I think.

> I'd like to see our taxes spent rather on Ada
> than on windmills in the North Sea.

When you enter in some govenment or at least become a prominent consultant
for the government then your preferences about spending taxes will matter.
So you know the way.

> to convince the government could be easier than to convince millions
> of customers,

Sometimes it may be true, but in this case it may be true also for your
competitor. Why goverment should help Ada and not some other language -
should it depend upon links and bribes and hot political issues? Actually,
when you appeal to the government for such purposes, you just try to exploit
another market - a narrow one, for privileged parties only. You can't have
any strong reasons to believe that Ada will be a winner in this, rather opaque
market. Better not to try to shift the competition (for resources) there.

Maintainance or even major overhaul of already established language is not the
same thing as create an entirely new one with some unprecedented qualities.
As Ada's experience shows, if government decides to spend resources on a
programming language, it will be probably not just Better Ada, but entirely
new language, which may be far from Ada as much as Ada was far from Jovial.

Perhaps you'll be pleased with such a perspective, but I doubt that currenlty
there is a ground for that. Ada as a multi-purpose language had a serious
predecessor - PL/I, while now we do not see anything of that kind (unless we
agree to consider Java or C# as candidates).

> >> Ignorant, uneducated personnel will write rubbish being well paid
> >> for that. Highly qualified people in their spare time (after a day of
> >> sweeping streets, I suppose) will analyse their work for free. The rest
> >> is still a bit in clouds. Should they send their analysis to the
> >> managers? I am afraid that if that would distract managers from playing
> >> golf, they could get angry.
> >
> > Why send it those managers? Put it on website, send it to approriate
> > forum, and discuss with others interested in that topic. It is enough. It
> > will be mass-media who will translate the analysis to the managers of
> > appropriate managers, if there will be anything potentially interesting
> > and significant.
>
> So it is the mass media to find something significant. Oh they would, they
> already found green men, UFO.

I think that mass-media never connected UFOs with a particular brand, that is,
with well-known vendor of some products.

> I do not believe in magic.

You may not believe in magic, but you can't avoid some dose of it -:) - for
big and/or complex systems. Even if magic is not present in the final product
then some magic helped you during the development process -:) .

> I do in technology. A technology is not based on craftworks.

Every technology is based on craftworks - on one level or another.
I recall that Dijkstra once wrote something like that: "Even the most
theoretically-minded physists will admit that every digital computer is, in
some depth, an analog device" (sorry, I had read that in Russian translation,
so this my quote probably is somehow inexact).

> You cannot rely on them. You have to
> have a procedure which warranties you a definite level of quality on each
> stage of software development.

Very well, but those warranting procedures aren't God-sent, they must be
crafted... and sad to say, according to your own position, you cannot
carelessly rely upon them.

> Starting from writting the requirements (and
> BTW, choosing the programming language.) Presently this is not the case.
> And I do not see how mass media or even (unrealistic to get) open source
> could change that.

Surely nothing external can change that. But again, I'm talking not about
intervention into development process, but about post-release stage, where
development is completed, but investigations by external parties must be
possible.

> Again the matter of interest is not the source, but the way it was produced.

For investigation of a malfunction (or crash) of a released product the
sources is primary thing... the way it was produced may be of some interest,
but it is definitely secondary.

You dream to prevent all errors (without magic -:) , while I do not believe
that this dream may come true - at all levels at the same time.

> You have a system with dozens processors running dozens of tasks. Some of
> them are hard real-time. These tasks are communicating over a number of
> field buses using protocols of different nature (time-triggered, with
> arbitration etc). Some of these tasks receive data from external sources
> (GPS, navigation data etc.)

Well, so what? I'm still not too much impressed (much less then, for example,
when I was reading an article about National Ignition Facility). Yes, this
is a rather complicated system, but not breathtakingly complicated.

> All this is from dozens of different vendors,

What? You mean parts of the system? Why should I worry about those vendors
at all? I don't want to know about vendors and their habits! I'll take specs,
and that's all I want to know about the parts. If the specs appear incomplete
for the purpose then I'll ask (someone) for secondary specs (which may depend
on vendor) but not in advance.

> written in C.

My experience in reading "foreign" code tells me that it doesn't matter too
much (for "emergency" reading) which language is used. Once I saw absolutely
fantastic code in Pascal (and that certainly was not a joke or something of
that kind), which was harder to read than most convoluted C.

> Tell me, how you will analyze that.

Well, I don't know in advance... I never know that in advance - I must see
the code before I decide how I'll analyze it...

> As an example, I know a
> car vendor, which for years is unable to find a bug in its *one* engine
> controller, running *one* task, causing sporadic stop.

Poor vendor, he can't reach me -:) Did he try to create a simulator?

> I saw some code of
> another vendor. It far beyond any imagination!

Perhaps, not *any* imagination. I think you mean "expectations", well,
"bad expectations" rather than "imagination".

> > > I'm talking about post-release part of each car model lifecycle.
> >
> > Then it is much too late. Your observers would state: this is a mess. So
> > what?

They need not to evaluate the whole system, whether it is a mess or not.
Each of them may have a paricular, very local interest, and it may well
happen, that the cause if the trouble is indeed reasonably local.

> Everybody knows that Windows is a mess. One need no sources for that.
> How does it help?

Well, not everybody ends up saying "the Windows is a mess". A good and
well-known example of another approach you may see at www.sysinternals.com .

Alexander Kopilovich aek@vib.usr.pu.ru
Saint-Petersburg
Russia



Relevant Pages

  • Re: Ada is getting more popular!
    ... Vendor dependency: there are few vendors of Ada products. ... I must depend on array accesses in GNAT ... Complex language that requries plenty of typing. ...
    (comp.lang.ada)
  • Re: PL/I, COBOL, Advantages, Equivalence, et al
    ... There is no perfect programming language. ... Because the original design group tended to be more from the academic and theoretical world than from the practical world the original ADA implementations were so pathetic that even after DoD mandated its use by Aerospace contractors nearly all received variances to use assembly, C, Fortran and yes PL/I to get the job done. ... the compilers produced unacceptable code. ...
    (comp.lang.pl1)
  • Re: How come Ada isnt more popular?
    ... I think that Ada *and* Haskell will make an interesting ... I wonder why one wouldn't just use Monads in most cases? ... a systems programming language. ... important reason not to ignore functional programming is [... ...
    (comp.lang.ada)
  • Re: Newbie Needs Ada Advice
    ... the "right" thing, and it seems to me like Ada is, in theory, a great ... text-to-whatever-type conversion when you read stuff from the GUI back ... "right" language to me for most of what my objectives are. ... Ada as the "engine" for my program, and somehow use Java to create the ...
    (comp.lang.ada)
  • Re: Newbie Needs Ada Advice
    ... the "right" thing, and it seems to me like Ada is, in theory, a great ... text-to-whatever-type conversion when you read stuff from the GUI back ... "right" language to me for most of what my objectives are. ... Ada as the "engine" for my program, and somehow use Java to create the ...
    (comp.lang.ada)