From: Dmitry A. Kazakov on
On Mon, 24 May 2010 22:02:20 -0400, Stephen Leake wrote:

> "Dmitry A. Kazakov" <mailbox(a)dmitry-kazakov.de> writes:
>
>> On Mon, 24 May 2010 05:00:58 -0400, Stephen Leake wrote:
>>
>>> Duke Normandin <dukeofperl(a)ml1.net> writes:
>>>
>>>> On 2010-05-23, Jeffrey R. Carter <spam.jrcarter.not(a)spam.acm.org> wrote:
>>>>> Bruno Le Hyaric wrote:
>>>>>>
>>>>>> One question, why did Lockheed Martin choose C++ for avionics software
>>>>>> on the JSF aircraft project?
>>>>>
>>>>> Money.
>>>>>
>>>>> Most US Defense project contracts are set up so the contractor makes more money
>>>>> the more the project costs. A poor but "popular" language choice, lots of
>>>>> coders, and no SW engineers is one way to drive the cost up and make more money.
>>>>> Defense contractors have maximizing the profit down to a fine art.
>>>>
>>>> That's outright scary when you ponder all the implications. So much for
>>>> using the "right tool, for a particular task". Greed, greed, and more greed
>>>> is what is putting us at at risk in this embedded computer age.
>>>
>>> It's not the contractor's fault; it's the DOD's fault. If they wrote the
>>> contract so that the contractor made more money by using the right tools
>>> and writing good software, that's what would happen.
>>>
>>> It's the contractor's job to make as much money as possible; it's the
>>> client's job to set the terms of the contract.
>>
>> Nice theory, not working in practice. Imagine your baker trying making as
>> much money as possible and you setting terms on the bread's ingredients.
>
> Not a valid comparison; I don't have nearly as much buying power as the
> DOD.

Today DoD cannot afford design of a new technology, language, compiler. DoD
can only buy something already designed, e.g. C. It would be a little
exaggeration to compare DoD's influence on the language/technology market
with yours or mine. And it keeps on ceasing. The next flight system could
will be in C#.

>> unable to deliver a sound background for software engineering. Which
>> is more shamanism than engineering.
>
> If it's shamanism, then how are the computer science schools at fault?
> "Worship Microsoft" sounds like good shamanism. It used to be "worship
> IBM".

Worshiping belongs to church.

> The complaint was that the contractors are greedy. Under capitalism, the
> assumption is that _everyone_ is greedy, but the government sets the
> rules so the societies best interest is served by everyone's greed.

Absolutely

> It takes a long term view, and adequate social/political education on
> everyone's part. _that's_ why it doesn't work; thinking is hard, most
> people don't want to do it.

People are bad, they were created to kill, steal, become obese and program
in C. You cannot change that.

>> This in turn makes it impossible to impose *reasonable* regulations on
>> what software is and how it is to be engineered.
>
> We don't need regulations, we need success oriented contracting.

How do you measure "success"? In terms of market shares? Isn't C a success?

> Part of the problem is people don't know how to manage large systems;
> that's why the air traffic control system is not replaced yet.

The problem is that there is no market for large, mission critical systems.
You cannot afford trial and error strategy for a system controlling nuclear
reactor or air traffic. Similarly, there is no and cannot be a market for
computer languages, operating systems etc. Without regulations the result
is always microsoft. With regulations it will probably be even worse,
because there is no criteria to create such regulations.

>> (Unreasonable regulations are plenty, of course) Meaningful
>> regulations exist, for example, for bakers, so when you buy bread it
>> is bread.
>
> Depends; if I buy it at the local grocery store, it's more like plastic.
> If I buy it at the farmer's market, then it is bread. The only
> regulation involved is health; no bacteria or mold allowed.

This is what I meant. C is unhealthy. It should be not a question to
discuss, not for market evaluation, not for customers to decide.

But only a hard science has the authority to pass such judgements.

>> When you buy software it can be anything. Because nobody knows for
>> sure how to do it "right".
>
> It is much easier to measure results than to enforce process.

I doubt it. Usually testing systems are far more complex than the things
under test. Anyway you move the problem to the customer's shoulders. They
have already spoken. People choose C and Windows, because see above.

> But people don't want to spend the time to do that either.

See above (:-))

>> It is "our" word against the word of c-java-dot-net-UML camp. The
>> latter is far more vocal. So what do you expect DoD to do?
>
> Require results, not process.

No, require at least *liability*. Forbid "no warranty" commercial licenses.
Scrap "you don't own the software, you only lease it" ones. The things will
change then. This would be a purely regulatory activity.

> Banks get good software for their central money servers, because they
> insist that they actually work, and are secure, and spend the money to
> ensure that happens (and some of them are written in SPARK).

Come on, the cash machine in my bank runs Windows. Guess, how I leant that?
Right, I periodically observe how it crashes! (:-))

> NASA's space shuttle software doesn't fail, because they insist on not
> killing astronauts.

You mean the Mars rover running Java? (:-))

> Good software is possible, it's just hard work on everyone's part.

and there is life after death...

--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
From: Anonymous on
> BTW, do you know what language Ada is written in? I'd guess C and asm.

If you do some research you can find an incredible web site discussing the
Ada competition in some depth. And here on this very list we have some of
the people who participated in that competition who can surely answer your
question.

I can tell you this for certain: the IBM implementation was not written in
C, at least not on an IBM machine. IBM didn't have a viable C compiler
until much later. Furthermore, assembler is the language of choice on IBM
platforms. It may have been written elsewhere and cross-compiled though.
I'll be interested to see answers to your question, thanks for asking it!

From: Georg Bauhaus on
On 25.05.10 13:41, Anonymous wrote:
>> BTW, do you know what language Ada is written in? I'd guess C and asm.
>
> If you do some research you can find an incredible web site discussing the
> Ada competition in some depth. And here on this very list we have some of
> the people who participated in that competition who can surely answer your
> question.
>
> I can tell you this for certain: the IBM implementation was not written in
> C, at least not on an IBM machine. IBM didn't have a viable C compiler
> until much later. Furthermore, assembler is the language of choice on IBM
> platforms. It may have been written elsewhere and cross-compiled though.
> I'll be interested to see answers to your question, thanks for asking it!

GNAT is written in Ada, after being drafted in SETL;
a precursor of GNAT was Ada/Ed, an Ada interpreter.
This is what I remember from reading GNAT history.

Another Ada compiler, a variant of AdaMagic, will
output a C program.
From: George Orwell on
> GNAT is written in Ada, after being drafted in SETL;
> a precursor of GNAT was Ada/Ed, an Ada interpreter.
> This is what I remember from reading GNAT history.

Yes, everybody knows GNAT was written in GNAT. But GNAT is not Ada, it's
just one implementation, and it is not by any means the first.

Il mittente di questo messaggio|The sender address of this
non corrisponde ad un utente |message is not related to a real
reale ma all'indirizzo fittizio|person but to a fake address of an
di un sistema anonimizzatore |anonymous system
Per maggiori informazioni |For more info
https://www.mixmaster.it

From: Georg Bauhaus on
On 25.05.10 15:47, George Orwell wrote:
>> GNAT is written in Ada, after being drafted in SETL;
>> a precursor of GNAT was Ada/Ed, an Ada interpreter.
>> This is what I remember from reading GNAT history.
>
> Yes, everybody knows GNAT was written in GNAT. But GNAT is not Ada, it's
> just one implementation, and it is not by any means the first.

Yes. Ada/Ed, though, being an Ada 83 interpreter, being
written in SETL, not C, and being prototypical for GNAT,
indicates that C is not necessarily the single language for
writing high class compilers---as some have implied.
I'm sure you know that is the case for some other languages,
too.
GNAT is one compiler where everyone can convince themselves,
since the sources are open to the public.

Some more hints, all signifying nothing,
absent more reputable positive findings:

- DEC Ada living in an architecture that is decidedly
not Unix, and less C centric

- Rational, offering Ada/Apex long before they added C++

- Alsys Ada being compared to Occam on the T800 Transputer

- Mentionings of counts of pragma Assert (and other Ada terms)
in compiler source, not just in GNAT, but also in Janus/Ada,
and, IIRC IBM Ada (formerly Rational).

Would they all have been using C (K&R C, that is) on non-C
platforms nevertheless, for implementing their compilers?