comp.lang.ada
 help / color / mirror / Atom feed
* F-22 ADA Programming
@ 2014-10-26 18:31 nathandsash
  2014-10-26 19:02 ` Martyn Pike
                   ` (2 more replies)
  0 siblings, 3 replies; 97+ messages in thread
From: nathandsash @ 2014-10-26 18:31 UTC (permalink / raw)


I read a few articles on ADA programming and came across a very interesting fact: that the F-22 was/is programmed in ADA. So this raises a few questions for me:

1) What version of ADA is the F-22 programmed in?
2) What exactly were the parts of the F-22 were programmed in ADA? Were all the avionic components programmed in ADA or are there some programmed in another language like C, C++, VHDL, Verilog, etc.


^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-26 18:31 F-22 ADA Programming nathandsash
@ 2014-10-26 19:02 ` Martyn Pike
  2014-10-26 21:20 ` David Botton
  2014-10-27  4:53 ` Jerry Petrey
  2 siblings, 0 replies; 97+ messages in thread
From: Martyn Pike @ 2014-10-26 19:02 UTC (permalink / raw)


On 26/10/2014 18:31, nathandsash@gmail.com wrote:
> I read a few articles on ADA programming and came across a very interesting fact: that the F-22 was/is programmed in ADA. So this raises a few questions for me:
>
> 1) What version of ADA is the F-22 programmed in?
> 2) What exactly were the parts of the F-22 were programmed in ADA? Were all the avionic components programmed in ADA or are there some programmed in another language like C, C++, VHDL, Verilog, etc.
>
>

Not sure about the F22 but another good example is the Eurofighter 
Typhoon which I believe is 100% Ada.

Martyn


^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-26 18:31 F-22 ADA Programming nathandsash
  2014-10-26 19:02 ` Martyn Pike
@ 2014-10-26 21:20 ` David Botton
  2014-10-26 23:24   ` Jeffrey Carter
  2014-10-27  4:53 ` Jerry Petrey
  2 siblings, 1 reply; 97+ messages in thread
From: David Botton @ 2014-10-26 21:20 UTC (permalink / raw)


see: http://archive.adaic.com/docs/reports/ajpo/transition-support/html/3.htm

"The JSF-MMC Ada 95 project is using the existing F-16 Modular Mission Computer (MMC) Operational Flight Program (OFP) and F-22 Mission Software, both written in Ada 83"

Having worked on some of the code there are other parts as well in Ada.

Unfortunately Ada tends to be used as a scapegoat for managers sometimes for reasons things get held up etc, but here is one point valid point (also here is more info about how much of the F-22 is in Ada):

http://www.freerepublic.com/focus/f-news/1110502/posts

"ADA didn't work out as expected, but some 80 percent of the F-22 code is still written in ADA. Getting good ADA programmers was always a problem, as ADA never caught on outside the Department of Defense. As a result of the limited pool of programmers would could work on the F-22 software, quality and imagination (in the design of the software) suffered."

========

If Ada was in the Applications space there would be a far larger base of developers. It wouldn't produce more direct customers for the big fish compiler companies since most applications would be working on the small deals, but there would be far more jobs and far more developers willing to develop their skills in Ada or consider Ada an option of careers.

I think all know my opinion as to why there has been no traction in the Application space and why it was a bad decision to not support it. However, better now than never and time to start considering what can be done to get Ada popular for Applications and General Purpose use for now even if there are no direct financial returns at the moment.

David Botton

^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-26 21:20 ` David Botton
@ 2014-10-26 23:24   ` Jeffrey Carter
  2014-10-26 23:55     ` David Botton
                       ` (3 more replies)
  0 siblings, 4 replies; 97+ messages in thread
From: Jeffrey Carter @ 2014-10-26 23:24 UTC (permalink / raw)


On 10/26/2014 02:20 PM, David Botton wrote:
> 
> Unfortunately Ada tends to be used as a scapegoat for managers sometimes for
> reasons things get held up etc, but here is one point valid point (also here
> is more info about how much of the F-22 is in Ada):
> 
> http://www.freerepublic.com/focus/f-news/1110502/posts
> 
> "ADA didn't work out as expected, but some 80 percent of the F-22 code is
> still written in ADA. Getting good ADA programmers was always a problem, as
> ADA never caught on outside the Department of Defense. As a result of the
> limited pool of programmers would could work on the F-22 software, quality
> and imagination (in the design of the software) suffered."

"Lack of Ada developers" is also a false complaint. Here on c.l.a we all know
that there are Ada developers looking for Ada work and unable to find it. We
also know that teaching Ada to a good developer is a cost-saving exercise. The
real complaint is that they couldn't get people with Ada experience as cheaply
as people with experience in other languages. Generally they want to hire lots
of poor developers, since that maximizes profit on cost-plus contracts, and Ada
people tend not to fall into that category.

-- 
Jeff Carter
"Why, the Mayflower was full of Fireflies, and a few
horseflies, too. The Fireflies were on the upper deck,
and the horseflies were on the Fireflies."
Duck Soup
95


^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-26 23:24   ` Jeffrey Carter
@ 2014-10-26 23:55     ` David Botton
  2014-11-14 22:54       ` rriehle
  2014-10-27  0:13     ` Robert A Duff
                       ` (2 subsequent siblings)
  3 siblings, 1 reply; 97+ messages in thread
From: David Botton @ 2014-10-26 23:55 UTC (permalink / raw)


> "Lack of Ada developers" is also a false complaint. 

There are overall very few developers when you are looking for "local" developers. I am not sure there is another Ada developer in all of South Florida I could hire if I needed :)

> Generally they want to hire lots of poor developers, since that maximizes profit on cost-plus contracts, and Ada  people tend not to fall into that category.

There is truth to this, but once they hired the handful of people we know they'd still have tons of seats to fill.

Also, not every project requires someone with the skill sets many of us have, projects of a large enough size may not justify that many senior level people.

David Botton

^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-26 23:24   ` Jeffrey Carter
  2014-10-26 23:55     ` David Botton
@ 2014-10-27  0:13     ` Robert A Duff
  2014-10-27  0:31       ` David Botton
  2014-10-27  6:28       ` Pascal Obry
  2014-10-27 15:04     ` Adam Beneschan
  2014-10-27 17:01     ` Pascal Obry
  3 siblings, 2 replies; 97+ messages in thread
From: Robert A Duff @ 2014-10-27  0:13 UTC (permalink / raw)


Jeffrey Carter <spam.jrcarter.not@spam.not.acm.org> writes:

> "Lack of Ada developers" is also a false complaint. Here on c.l.a we all know
> that there are Ada developers looking for Ada work and unable to find it. We
> also know that teaching Ada to a good developer is a cost-saving
> exercise.

Well said.  If I'm in charge of a project to be done in ANY language,
I'd rather hire competent programmers and teach them that language,
rather than hire programmers who know (only) that language.

Ada isn't the easiest language to learn, but it's not THAT hard.

- Bob


^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-27  0:13     ` Robert A Duff
@ 2014-10-27  0:31       ` David Botton
  2014-10-27 10:17         ` Georg Bauhaus
  2014-10-27 15:06         ` Adam Beneschan
  2014-10-27  6:28       ` Pascal Obry
  1 sibling, 2 replies; 97+ messages in thread
From: David Botton @ 2014-10-27  0:31 UTC (permalink / raw)


> Well said.  If I'm in charge of a project to be done in ANY language,
> I'd rather hire competent programmers and teach them that language,
> rather than hire programmers who know (only) that language.

Agreed because we "understand" it is the skills to engineer not the language that makes the difference. That is not what a pointy haired manager understands.

> Ada isn't the easiest language to learn, but it's not THAT hard.

It is true on projects that are large scale like the F-22 is a bit ridiculous that they can't do a 2 week language boot camp for new recruits, but there is validity when dealing with small startups and projects that can't afford to train developers.

David Botton

^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-26 18:31 F-22 ADA Programming nathandsash
  2014-10-26 19:02 ` Martyn Pike
  2014-10-26 21:20 ` David Botton
@ 2014-10-27  4:53 ` Jerry Petrey
  2014-10-29  1:49   ` F-35 (was:F-22 ADA Programming) Robert Love
  2 siblings, 1 reply; 97+ messages in thread
From: Jerry Petrey @ 2014-10-27  4:53 UTC (permalink / raw)


On 10/26/2014 11:31 AM, nathandsash@gmail.com wrote:
> I read a few articles on ADA programming and came across a very interesting fact: that the F-22 was/is programmed in ADA. So this raises a few questions for me:
>
> 1) What version of ADA is the F-22 programmed in?
> 2) What exactly were the parts of the F-22 were programmed in ADA? Were all the avionic components programmed in ADA or are there some programmed in another language like C, C++, VHDL, Verilog, etc.
>
>

I was working for Lockheed during the time the F22 software was being 
developed.  I worked on other aircraft using Ada (the C130J and the 
C27J) and we all used Ada - it was Ada83 and we sometimes shared some 
code with the F22 people.  Ada was very successful on all those 
aircraft.  By the way, the Boeing 777 was also done mostly in Ada as was 
the Rosetta spacecraft which has just recently achieved a comet 
rendezvous after a 10 year journey.

Jerry

^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-27  0:13     ` Robert A Duff
  2014-10-27  0:31       ` David Botton
@ 2014-10-27  6:28       ` Pascal Obry
  1 sibling, 0 replies; 97+ messages in thread
From: Pascal Obry @ 2014-10-27  6:28 UTC (permalink / raw)


Le dimanche 26 octobre 2014 à 20:13 -0400, Robert A Duff a écrit : 
> Well said.  If I'm in charge of a project to be done in ANY language,
> I'd rather hire competent programmers and teach them that language,
> rather than hire programmers who know (only) that language.

That's what I've done for my current project. The programmer did not
know Ada at all but was willing to try with an open mind and seemed good
programmer to me. He got the contract and he is doing well.

> Ada isn't the easiest language to learn, but it's not THAT hard.

100% Agreed.

-- 
  Pascal Obry /  Magny Les Hameaux (78)

  The best way to travel is by means of imagination

  http://v2p.fr.eu.org
  http://www.obry.net

  gpg --keyserver keys.gnupg.net --recv-key F949BD3B


^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-27  0:31       ` David Botton
@ 2014-10-27 10:17         ` Georg Bauhaus
  2014-10-27 10:47           ` J-P. Rosen
  2014-10-27 15:06         ` Adam Beneschan
  1 sibling, 1 reply; 97+ messages in thread
From: Georg Bauhaus @ 2014-10-27 10:17 UTC (permalink / raw)


On 27.10.14 01:31, David Botton wrote:
>> Well said.  If I'm in charge of a project to be done in ANY language,
>> I'd rather hire competent programmers and teach them that language,
>> rather than hire programmers who know (only) that language.
>
> Agreed because we "understand" it is the skills to engineer not the language that makes the difference. That is not what a pointy haired manager understands.
>
>> Ada isn't the easiest language to learn, but it's not THAT hard.
>
> It is true on projects that are large scale like the F-22 is a bit ridiculous that they can't do a 2 week language boot camp for new recruits, but there is validity when dealing with small startups and projects that can't afford to train developers.

Oddly enough, the choice of languages, frameworks, and costs,
is in the hands of pointy haired managers. Every single manager
decides to choose what all others choose, If they don't choose Ada,
he doesn't. And if everyone follows suit, no one looses.
No risk, no loss, comparable results, perfect world, good decision.

Except if a different choice looks like gold waiting to be taken
into the first hands that grab it. This will start a new management loop
if all others can follow. Ada once looked like gold because of the
"mandate". Are there still one or two nuggets lying around blinking?
Embedded Ada and easy, web sockets with Ada and easy, maybe?



^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-27 10:17         ` Georg Bauhaus
@ 2014-10-27 10:47           ` J-P. Rosen
  0 siblings, 0 replies; 97+ messages in thread
From: J-P. Rosen @ 2014-10-27 10:47 UTC (permalink / raw)


Le 27/10/2014 11:17, Georg Bauhaus a écrit :
> Oddly enough, the choice of languages, frameworks, and costs,
> is in the hands of pointy haired managers. Every single manager
> decides to choose what all others choose, If they don't choose Ada,
> he doesn't. And if everyone follows suit, no one looses.
> No risk, no loss, comparable results, perfect world, good decision.
Yes. As the saying goes:

"Noone has ever been fired for buying IBM"

-- 
J-P. Rosen
Adalog
2 rue du Docteur Lombard, 92441 Issy-les-Moulineaux CEDEX
Tel: +33 1 45 29 21 52, Fax: +33 1 45 29 25 00
http://www.adalog.fr

^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-26 23:24   ` Jeffrey Carter
  2014-10-26 23:55     ` David Botton
  2014-10-27  0:13     ` Robert A Duff
@ 2014-10-27 15:04     ` Adam Beneschan
  2014-10-27 15:17       ` Björn Lundin
                         ` (3 more replies)
  2014-10-27 17:01     ` Pascal Obry
  3 siblings, 4 replies; 97+ messages in thread
From: Adam Beneschan @ 2014-10-27 15:04 UTC (permalink / raw)


On Sunday, October 26, 2014 4:24:15 PM UTC-7, Jeffrey Carter wrote:

> > 
> > Unfortunately Ada tends to be used as a scapegoat for managers sometimes for
> > reasons things get held up etc, but here is one point valid point (also here
> > is more info about how much of the F-22 is in Ada):
> > 
> > http://www.freerepublic.com/focus/f-news/1110502/posts
> > 
> > "ADA didn't work out as expected, but some 80 percent of the F-22 code is
> > still written in ADA. Getting good ADA programmers was always a problem, as
> > ADA never caught on outside the Department of Defense. As a result of the
> > limited pool of programmers would could work on the F-22 software, quality
> > and imagination (in the design of the software) suffered."
> 
> "Lack of Ada developers" is also a false complaint. Here on c.l.a we all know
> that there are Ada developers looking for Ada work and unable to find it.

Right, but the existence of Ada developers looking for Ada work in the 2010's was not much help to managers looking for Ada developers in the 1980's, which is the time frame I think the quote was referring to. 

But maybe after David is done working on GNOGA, he'll be able to build a time machine using Ada, and then we can fix the problem.

Anyway, I think Bob is right that it shouldn't make a difference--a competent programmer should be able to switch to a new language (or OS or platform or toolset) fairly easily.

                               -- Adam


^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-27  0:31       ` David Botton
  2014-10-27 10:17         ` Georg Bauhaus
@ 2014-10-27 15:06         ` Adam Beneschan
  2014-10-27 22:32           ` Randy Brukardt
  1 sibling, 1 reply; 97+ messages in thread
From: Adam Beneschan @ 2014-10-27 15:06 UTC (permalink / raw)


On Sunday, October 26, 2014 5:31:59 PM UTC-7, David Botton wrote:
> > Well said.  If I'm in charge of a project to be done in ANY language,
> > I'd rather hire competent programmers and teach them that language,
> > rather than hire programmers who know (only) that language.
> 
> Agreed because we "understand" it is the skills to engineer not the language that makes the difference. That is not what a pointy haired manager understands.

This is one of my favorites: http://www.dawood.in/if-carpenters-were-hired-like-programmers/

                              -- Adam


^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-27 15:04     ` Adam Beneschan
@ 2014-10-27 15:17       ` Björn Lundin
  2014-10-27 15:41       ` Maciej Sobczak
                         ` (2 subsequent siblings)
  3 siblings, 0 replies; 97+ messages in thread
From: Björn Lundin @ 2014-10-27 15:17 UTC (permalink / raw)


On 2014-10-27 16:04, Adam Beneschan wrote:
> 
> Anyway, I think Bob is right that it shouldn't make a difference--a competent programmer should be able to switch to a new language (or OS or platform or toolset) fairly easily.

And this shows it well

<http://www.rapitasystems.com/blog/difficult-to-recruit-programmers-for-Ada-projects-myth-or-reality-part-1>

-- 
--
Björn


^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-27 15:04     ` Adam Beneschan
  2014-10-27 15:17       ` Björn Lundin
@ 2014-10-27 15:41       ` Maciej Sobczak
  2014-10-27 16:01         ` Robert A Duff
                           ` (2 more replies)
  2014-10-27 16:34       ` David Botton
  2014-10-28 11:34       ` tonyg
  3 siblings, 3 replies; 97+ messages in thread
From: Maciej Sobczak @ 2014-10-27 15:41 UTC (permalink / raw)



> Anyway, I think Bob is right that it shouldn't make a difference--a competent programmer should be able to switch to a new language (or OS or platform or toolset) fairly easily.

Except that very few will want to.

The problem is - once you are competent you are recognized as a senior or expert and this recognition has a value - both in terms of peer relations and on the job market. Why would such a person "switch" to some other language? To become a novice again? To write in his CV that instead of having (let's say) 8 years of Java experience, he has only 1 year in Ada? And what is the value of such CV if nobody is looking for Ada programmers anyway? Isn't it better to have N+1 years of Java experience instead?

I have seen the "switching" argument many times (and based on merit alone, I fully agree with it), but it misses a very important factor: that of career continuity. Switching might be easy in terms of intellectual investment, but at the same time pointless from the ROI point of view, because the job market values continuous experience - that is, an expert with N years of experience is valued more than a guy who is a beginner in N technologies and apparently cannot decide on his career path.

There is a reason why Scala gets popular - it allows a relatively continuous migration from Java, and many Java programmers see this as a *safe* career opportunity. Unfortunately this is what Ada does not offer.

-- 
Maciej Sobczak * http://www.msobczak.com * http://www.inspirel.com

^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-27 15:41       ` Maciej Sobczak
@ 2014-10-27 16:01         ` Robert A Duff
  2014-10-27 20:16         ` Adam Beneschan
  2014-10-28  8:45         ` Natasha Kerensikova
  2 siblings, 0 replies; 97+ messages in thread
From: Robert A Duff @ 2014-10-27 16:01 UTC (permalink / raw)


Maciej Sobczak <see.my.homepage@gmail.com> writes:

> The problem is - once you are competent you are recognized as a senior
> or expert and this recognition has a value - both in terms of peer
> relations and on the job market. Why would such a person "switch" to
> some other language? To become a novice again? To write in his CV that
> instead of having (let's say) 8 years of Java experience, he has only
> 1 year in Ada? And what is the value of such CV if nobody is looking
> for Ada programmers anyway? Isn't it better to have N+1 years of Java
> experience instead?

I would hire someone with 7 years of Java experience plus 1 year of Ada
experience (or 1 Java, 7 Ada), over someone with 8 years Java
experience, even if the project will be done in Java.  In general,
I prefer to hire people who know a variety of languages.

- Bob

^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-27 15:04     ` Adam Beneschan
  2014-10-27 15:17       ` Björn Lundin
  2014-10-27 15:41       ` Maciej Sobczak
@ 2014-10-27 16:34       ` David Botton
  2014-10-27 16:51         ` brbarkstrom
  2014-10-27 20:06         ` Adam Beneschan
  2014-10-28 11:34       ` tonyg
  3 siblings, 2 replies; 97+ messages in thread
From: David Botton @ 2014-10-27 16:34 UTC (permalink / raw)


> But maybe after David is done working on GNOGA, he'll be able to build a time machine using Ada, and then we can fix the problem.

Won't have time, too many people will be using Ada and asking for more features for their cool new projects for me to take time to work on has been situations.

David Botton

^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-27 16:34       ` David Botton
@ 2014-10-27 16:51         ` brbarkstrom
  2014-10-27 18:03           ` G.B.
  2014-10-27 20:06         ` Adam Beneschan
  1 sibling, 1 reply; 97+ messages in thread
From: brbarkstrom @ 2014-10-27 16:51 UTC (permalink / raw)


On Monday, October 27, 2014 12:34:28 PM UTC-4, David Botton wrote:
> > But maybe after David is done working on GNOGA, he'll be able to build a time machine using Ada, and then we can fix the problem.
> 
> Won't have time, too many people will be using Ada and asking for more features for their cool new projects for me to take time to work on has been situations.
> 
> David Botton

While the discussion has some interest, I haven't seen anything more than
opinion.  In marketing terms, we need empirical studies of the sources of
"market friction" that impedes adoption of Ada.  The economics of Ada 
programmers and of career switching certainly seem like sensible rationales.
However, maybe there's a perception that all Ada is good for is building
weapons systems or heart monitors.  What new business opportunities do we
have to offer.  Personally, I'll suggest long-term information preservation
of scientific data for citizen science.  Can we interest science prone
individuals (a distinctive market segment that includes about 2% of the
population) in building ultra-low maintenance archives that could thrive
because the amount of maintenance is measured in a small number of person-hours
per month, rather than daily updates that require a system administrator?
Could we interest people in building bare bones systems that could collect
data in an untended state?  Would this kind of project be of interest to
community college computer science teachers - particularly since that might
increase the pool of CS people trained in Ada?  What other markets might
we think of that offer opportunities outside of the historical core of Ada?

Bruce B.


^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-26 23:24   ` Jeffrey Carter
                       ` (2 preceding siblings ...)
  2014-10-27 15:04     ` Adam Beneschan
@ 2014-10-27 17:01     ` Pascal Obry
  3 siblings, 0 replies; 97+ messages in thread
From: Pascal Obry @ 2014-10-27 17:01 UTC (permalink / raw)


Le dimanche 26 octobre 2014 à 16:24 -0700, Jeffrey Carter a écrit : 
> "Lack of Ada developers" 

Right, this to me fall down as "Lack of good developers". It is so hard
to find good software engineers that understand what a design is, know
about software quality, code review, tests... Most of the easy to hire
people for other languages are mostly poor coders. And frankly I do not
know lot of projects that need only coders!

-- 
  Pascal Obry /  Magny Les Hameaux (78)

  The best way to travel is by means of imagination

  http://v2p.fr.eu.org
  http://www.obry.net

  gpg --keyserver keys.gnupg.net --recv-key F949BD3B


^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-27 16:51         ` brbarkstrom
@ 2014-10-27 18:03           ` G.B.
  2014-10-27 22:06             ` Simon Wright
  0 siblings, 1 reply; 97+ messages in thread
From: G.B. @ 2014-10-27 18:03 UTC (permalink / raw)


On 27.10.14 17:51, brbarkstrom@gmail.com wrote:
> we need empirical studies of the sources of
> "market friction" that impedes adoption of Ada

Among the empirically substantiated claims are:

- herd instinct,

- risk avoidance, and

- price.

If there are entities with an interest in empirical studies
of adoption/rejection of Ada, who will be funding the studies?
Vendors, most likely, so science is perceived to be replaced
with bias. Who else? The NSA, maybe, given Tokeneer, but its
reputation has suffered a bit, lately. Also, will studies
be published if they affect the interest of employees
at all levels who are not using Ada?

Anecdotal evidence (helicopters, TTBOMK) claims that an
effective use of Spark/Ada in comparison to C++ has led
to a preference for the less successful C++ because of internal
reporting difficulties: Two teams competed for 1 year.
While Spark/Ada meant no bugs and 100% achievement (C++
meant some bugs and ~80% achievement), late use of simulators,
and progress in theory first, this situation of no visible
progress had led to close-to-heart-attack conditions
in project management. ("Can you show me something?")

^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-27 16:34       ` David Botton
  2014-10-27 16:51         ` brbarkstrom
@ 2014-10-27 20:06         ` Adam Beneschan
  2014-10-27 20:21           ` David Botton
  1 sibling, 1 reply; 97+ messages in thread
From: Adam Beneschan @ 2014-10-27 20:06 UTC (permalink / raw)


On Monday, October 27, 2014 9:34:28 AM UTC-7, David Botton wrote:
> > But maybe after David is done working on GNOGA, he'll be able to build a time machine using Ada, and then we can fix the problem.
> 
> Won't have time, too many people will be using Ada and asking for more features for their cool new projects for me to take time to work on has been situations.
> 

Build the time machine first.  Then, when people start asking for more GNOGA features, you'll be able to deliver the new features before they even ask for them.

                                 -- Adam


^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-27 15:41       ` Maciej Sobczak
  2014-10-27 16:01         ` Robert A Duff
@ 2014-10-27 20:16         ` Adam Beneschan
  2014-10-28  8:45         ` Natasha Kerensikova
  2 siblings, 0 replies; 97+ messages in thread
From: Adam Beneschan @ 2014-10-27 20:16 UTC (permalink / raw)


On Monday, October 27, 2014 8:41:39 AM UTC-7, Maciej Sobczak wrote:

> I have seen the "switching" argument many times (and based on merit alone, I fully agree with it), but it misses a very important factor: that of career continuity. Switching might be easy in terms of intellectual investment, but at the same time pointless from the ROI point of view, because the job market values continuous experience - that is, an expert with N years of experience is valued more than a guy who is a beginner in N technologies and apparently cannot decide on his career path.
> 

Of course, if this were a saner world, working in a number of different languages wouldn't be seen as "indecisiveness about a career path" any more than it would for a contractor who switches from DeWalt to Ryobi tools, for example.  But we do have to deal with the real world and the kind of managers David referred to.

                             -- Adam


^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-27 20:06         ` Adam Beneschan
@ 2014-10-27 20:21           ` David Botton
  0 siblings, 0 replies; 97+ messages in thread
From: David Botton @ 2014-10-27 20:21 UTC (permalink / raw)


> Build the time machine first.  Then, when people start asking for more GNOGA features, you'll be able to deliver the new features before they even ask for them.

Is possible I'm already acting on hints left to myself from the future and don't realize it yet. I guess if the future has a return of unencumbered versions of GNAT available in nice packaging for all platforms, cool software written in Ada, a good solid job market for those wanting to develop in Ada and startups considering it, I did leave myself notes.

David Botton


^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-27 18:03           ` G.B.
@ 2014-10-27 22:06             ` Simon Wright
  2014-10-28  9:40               ` Georg Bauhaus
  0 siblings, 1 reply; 97+ messages in thread
From: Simon Wright @ 2014-10-27 22:06 UTC (permalink / raw)


"G.B." <bauhaus@futureapps.invalid> writes:

> Anecdotal evidence (helicopters, TTBOMK) claims that an
> effective use of Spark/Ada in comparison to C++ has led
> to a preference for the less successful C++ because of internal
> reporting difficulties: Two teams competed for 1 year.
> While Spark/Ada meant no bugs and 100% achievement (C++
> meant some bugs and ~80% achievement), late use of simulators,
> and progress in theory first, this situation of no visible
> progress had led to close-to-heart-attack conditions
> in project management. ("Can you show me something?")

If that was indeed a competition, I'm surprised that it lasted as long as
a year. I'd have cut the SPARK/Ada project long before that.

On the other hand, to plan a competition to last a year without agreeing
how progress was to be monitored to the satisfaction of both management
and engineers sounds pretty daft too.


^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-27 15:06         ` Adam Beneschan
@ 2014-10-27 22:32           ` Randy Brukardt
  0 siblings, 0 replies; 97+ messages in thread
From: Randy Brukardt @ 2014-10-27 22:32 UTC (permalink / raw)


"Adam Beneschan" <adambeneschan@gmail.com> wrote in message 
news:c955b286-e31f-467e-9cbe-740f54848f3e@googlegroups.com...
> On Sunday, October 26, 2014 5:31:59 PM UTC-7, David Botton wrote:
>> > Well said.  If I'm in charge of a project to be done in ANY language,
>> > I'd rather hire competent programmers and teach them that language,
>> > rather than hire programmers who know (only) that language.
>>
>> Agreed because we "understand" it is the skills to engineer not the 
>> language that makes the difference. That is not what a pointy haired 
>> manager understands.
>
> This is one of my favorites: 
> http://www.dawood.in/if-carpenters-were-hired-like-programmers/

Thanks for making my day with that one!

                      Randy.


^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-27 15:41       ` Maciej Sobczak
  2014-10-27 16:01         ` Robert A Duff
  2014-10-27 20:16         ` Adam Beneschan
@ 2014-10-28  8:45         ` Natasha Kerensikova
  2014-10-28 11:58           ` Bill White
  2014-10-28 18:29           ` Jeffrey Carter
  2 siblings, 2 replies; 97+ messages in thread
From: Natasha Kerensikova @ 2014-10-28  8:45 UTC (permalink / raw)


On 2014-10-27, Maciej Sobczak <see.my.homepage@gmail.com> wrote:
>
>> Anyway, I think Bob is right that it shouldn't make a difference--a
>> competent programmer should be able to switch to a new language (or
>> OS or platform or toolset) fairly easily.
>
> Except that very few will want to.
>
> The problem is - once you are competent you are recognized as a senior
> or expert and this recognition has a value - both in terms of peer
> relations and on the job market. Why would such a person "switch" to
> some other language? To become a novice again? To write in his CV that
> instead of having (let's say) 8 years of Java experience, he has only
> 1 year in Ada? And what is the value of such CV if nobody is looking
> for Ada programmers anyway? Isn't it better to have N+1 years of Java
> experience instead?

And I feel the problem is even worse after the switch, but maybe I'm
based by currently living through it.

I switched years ago, but it isn't worth much without Ada-related job
openings. And on top of that I will have to live through the frustration
of using unhelpful tools and not-so-readable languages when I broaden my
search (which will happen as soon as I finish accepting that said
frustration is unavoidable).

I wonder whether it would be easier to bear if I gave up Ada in my free
time too, and bury it with all reliability wishes in some remote place
of my mind.

^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-27 22:06             ` Simon Wright
@ 2014-10-28  9:40               ` Georg Bauhaus
  0 siblings, 0 replies; 97+ messages in thread
From: Georg Bauhaus @ 2014-10-28  9:40 UTC (permalink / raw)


On 27.10.14 23:06, Simon Wright wrote:

> On the other hand, to plan a competition to last a year without agreeing
> how progress was to be monitored to the satisfaction of both management
> and engineers sounds pretty daft too.

True, I guess that this human side of SPARK/Ada was the "something new"
that had not be planned in the given circumstances: If thinking
before coding is part of the SPARK/Ada process, then to deploy
SPARK/Ada within a progress reporting scheme, one needs a change
in setup on both sides:

- a way for the team to report progress on thought processes,

- a way for the recipients of reports to understand this is happening
   and a way to evaluate these reports.

If so, then there is an important lesson to learn before even
considering SPARK/Ada: "It's different, like research, only
productive in the end, but quite so." (Avoid the word "research".)

^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-27 15:04     ` Adam Beneschan
                         ` (2 preceding siblings ...)
  2014-10-27 16:34       ` David Botton
@ 2014-10-28 11:34       ` tonyg
  3 siblings, 0 replies; 97+ messages in thread
From: tonyg @ 2014-10-28 11:34 UTC (permalink / raw)


Actually there is a time machine JQueryUI call.

^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-28  8:45         ` Natasha Kerensikova
@ 2014-10-28 11:58           ` Bill White
  2014-10-28 14:56             ` Adam Beneschan
  2014-10-28 18:29           ` Jeffrey Carter
  1 sibling, 1 reply; 97+ messages in thread
From: Bill White @ 2014-10-28 11:58 UTC (permalink / raw)


On 2014-10-28, Natasha Kerensikova <lithiumcat@instinctive.eu> wrote:
> On 2014-10-27, Maciej Sobczak <see.my.homepage@gmail.com> wrote:
>>
>>> Anyway, I think Bob is right that it shouldn't make a difference--a
>>> competent programmer should be able to switch to a new language (or
>>> OS or platform or toolset) fairly easily.

That's ok for people with no purpose other than to make money. Good
programmers, the ones you want working for you and with you, usually love
and hate languages for good reasons. Most of the mainstream languages are
worth hating for very good reasons.

Like Natasha sortof said there is a lot of angst prostituting yourself as a
code monkey if you're a really talented and passionate developer. Many people
like to kid themselves and point out how they can learn new languages and
technologies all the time and they happily bounce from job to job coding web
or iPhone apps.

But those people are either lying to themselves in that they don't really
ever learn anything and become cut and paste junkies or they are more
focused on business or how many apps they have worked on or other issues and
coding is just a way to accomplish that.

OTOH if coding is the journey and coding is the destination and if you
really love what you do and believe in it you're likely to be much better in
almost every aspect of your job then somebody who just goes with the
flow. But there aren't a lot of jobs where somebody like that can thrive.

As somebody who has spent almost 40 years coding in one mostly one language
on mostly one platform I can identify with people who love this or that
language or tech and can't find a job anymore for reasons that aren't
technical or even good business reasons. I'd rather change jobs than code on
another language or platform but I'm too old for anybody to hire me. It's a
bitter feeling when good is defined by cheap and stuff like quality and
performance don't matter anymore. Because I remember when they did. Be glad
if you're young enough to change now so you don't get unvoluntarily retired
when you're past the point of old dogs learning new tricks as far as they
know.

>> The problem is - once you are competent you are recognized as a senior
>> or expert and this recognition has a value - both in terms of peer
>> relations and on the job market. Why would such a person "switch" to
>> some other language? To become a novice again? To write in his CV that
>> instead of having (let's say) 8 years of Java experience, he has only
>> 1 year in Ada? And what is the value of such CV if nobody is looking
>> for Ada programmers anyway? Isn't it better to have N+1 years of Java
>> experience instead?

Yes, it is. Reality is often not pretty.

> And I feel the problem is even worse after the switch, but maybe I'm
> based by currently living through it.
>
> I switched years ago, but it isn't worth much without Ada-related job
> openings. And on top of that I will have to live through the frustration
> of using unhelpful tools and not-so-readable languages when I broaden my
> search (which will happen as soon as I finish accepting that said
> frustration is unavoidable).
>
> I wonder whether it would be easier to bear if I gave up Ada in my free
> time too, and bury it with all reliability wishes in some remote place
> of my mind.

I think Ada is a poorer than average choice for a hobby language (and I
don't use the word hobby lightly but only in the lack of vocabulary) since
you're stuck with essentially one toolchain regardless that it happens to
be a very good one. But there isn't any reason if you love Ada not to keep
using it for your own projects. If nothing else, you'll stay sharp and
notice things that will help you and your coworkers that people working with
inferior and unsafe languages would probably miss. And you may even be able
to wrapper safety valves around unsafe code in those languages that will
stop problems from happening before they ever start. The only thing is
nobody will have any idea what you did and they won't understand why you
"wasted" time doing that. But at least you'll be able to sleep at night.

Bill


^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-28 11:58           ` Bill White
@ 2014-10-28 14:56             ` Adam Beneschan
  2014-10-28 19:36               ` Bill White
  0 siblings, 1 reply; 97+ messages in thread
From: Adam Beneschan @ 2014-10-28 14:56 UTC (permalink / raw)


On Tuesday, October 28, 2014 4:58:56 AM UTC-7, Bill White wrote:

> >>> Anyway, I think Bob is right that it shouldn't make a difference--a
> >>> competent programmer should be able to switch to a new language (or
> >>> OS or platform or toolset) fairly easily.
> 
> That's ok for people with no purpose other than to make money. Good
> programmers, the ones you want working for you and with you, usually love
> and hate languages for good reasons.

Beg to differ--**strongly**.  I think I'm a good programmer.  And while every language has its annoyances and some are more annoying than others, the things I love about programming--the problem-solving and creative aspects, among other things--don't have to do with one or another particular language.  (I recently completed a personal project, no money involved, in my least-favorite language, PHP, and still enjoyed working on it despite all the things I don't like about that language.  I chose PHP because I knew it would work on that particular platform and I didn't know what else would work.)

I would hope that programmers who love the art of programming more than they love working in a particular language are the majority, not the minority.
Please do not denigrate us as having "no purpose other than to make money."  Thank you.

> Many people 
> like to kid themselves and point out how they can learn new languages and 
> technologies all the time and they happily bounce from job to job coding web 
> or iPhone apps. 

> But those people are either lying to themselves in that they don't really 
> ever learn anything and become cut and paste junkies or they are more 
> focused on business or how many apps they have worked on or other issues and 
> coding is just a way to accomplish that. 

I believe you are way, way off base here, although I'm sure there are some such programmers who are kidding themselves.

                             -- Adam

^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-28  8:45         ` Natasha Kerensikova
  2014-10-28 11:58           ` Bill White
@ 2014-10-28 18:29           ` Jeffrey Carter
  2014-10-28 18:37             ` Adam Beneschan
  2014-10-28 19:18             ` Simon Clubley
  1 sibling, 2 replies; 97+ messages in thread
From: Jeffrey Carter @ 2014-10-28 18:29 UTC (permalink / raw)


On 10/28/2014 01:45 AM, Natasha Kerensikova wrote:
> 
> I switched years ago, but it isn't worth much without Ada-related job
> openings. And on top of that I will have to live through the frustration
> of using unhelpful tools and not-so-readable languages when I broaden my
> search (which will happen as soon as I finish accepting that said
> frustration is unavoidable).

The Software-Engineering Code of Ethics (from the ACM/IEEE-CS) says (in part)

"Software engineers shall ensure that their products and related modifications
meet the highest professional standards possible."

Using error-prone, poorly designed languages would seem to violate this. Anyone
who would do work in such a language must, therefore, either not be a S/W
engineer, be an unethical S/W engineer, or think that producing substandard S/W
is ethical practice.

-- 
Jeff Carter
"My mind is a raging torrent, flooded with rivulets of
thought, cascading into a waterfall of creative alternatives."
Blazing Saddles
89

^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-28 18:29           ` Jeffrey Carter
@ 2014-10-28 18:37             ` Adam Beneschan
  2014-10-28 19:14               ` David Botton
  2014-10-28 21:06               ` Jeffrey Carter
  2014-10-28 19:18             ` Simon Clubley
  1 sibling, 2 replies; 97+ messages in thread
From: Adam Beneschan @ 2014-10-28 18:37 UTC (permalink / raw)


On Tuesday, October 28, 2014 11:29:26 AM UTC-7, Jeffrey Carter wrote:
> On 10/28/2014 01:45 AM, Natasha Kerensikova wrote:
> > 
> > I switched years ago, but it isn't worth much without Ada-related job
> > openings. And on top of that I will have to live through the frustration
> > of using unhelpful tools and not-so-readable languages when I broaden my
> > search (which will happen as soon as I finish accepting that said
> > frustration is unavoidable).
> 
> The Software-Engineering Code of Ethics (from the ACM/IEEE-CS) says (in part)
> 
> "Software engineers shall ensure that their products and related modifications
> meet the highest professional standards possible."
> 
> Using error-prone, poorly designed languages would seem to violate this. Anyone
> who would do work in such a language must, therefore, either not be a S/W
> engineer, be an unethical S/W engineer, or think that producing substandard S/W
> is ethical practice.

I'm sorry, but this is one of the most ridiculous things I've ever seen posted in this newsgroup.

                                  -- Adam

^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-28 18:37             ` Adam Beneschan
@ 2014-10-28 19:14               ` David Botton
  2014-10-28 21:06               ` Jeffrey Carter
  1 sibling, 0 replies; 97+ messages in thread
From: David Botton @ 2014-10-28 19:14 UTC (permalink / raw)


> I'm sorry, but this is one of the most ridiculous things I've ever seen posted in this newsgroup.

No I think the time machine thing was :)

While I am sure Jeff was exaggerating and being a bit humorous, using low quality tools or shoddy materials in any trade is a sign of a poor engineer.

David Botton


^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-28 18:29           ` Jeffrey Carter
  2014-10-28 18:37             ` Adam Beneschan
@ 2014-10-28 19:18             ` Simon Clubley
  1 sibling, 0 replies; 97+ messages in thread
From: Simon Clubley @ 2014-10-28 19:18 UTC (permalink / raw)


On 2014-10-28, Jeffrey Carter <spam.jrcarter.not@spam.not.acm.org> wrote:
>
> The Software-Engineering Code of Ethics (from the ACM/IEEE-CS) says (in part)
>
> "Software engineers shall ensure that their products and related modifications
> meet the highest professional standards possible."
>
> Using error-prone, poorly designed languages would seem to violate this. Anyone
> who would do work in such a language must, therefore, either not be a S/W
> engineer, be an unethical S/W engineer, or think that producing substandard S/W
> is ethical practice.
>

I am currently learning how to write a small extension for Android
Firefox because the Android version of Firefox doesn't support the
extension I use on the desktop version of Firefox.

Should I not implement this extension (and hence do without it's
functionality) simply because I can't implement it in Ada ?

Simon.

-- 
Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
Microsoft: Bringing you 1980s technology to a 21st century world


^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-28 14:56             ` Adam Beneschan
@ 2014-10-28 19:36               ` Bill White
  0 siblings, 0 replies; 97+ messages in thread
From: Bill White @ 2014-10-28 19:36 UTC (permalink / raw)


On 2014-10-28, Adam Beneschan <adambeneschan@gmail.com> wrote:
> On Tuesday, October 28, 2014 4:58:56 AM UTC-7, Bill White wrote:
>
>> >>> Anyway, I think Bob is right that it shouldn't make a difference--a
>> >>> competent programmer should be able to switch to a new language (or
>> >>> OS or platform or toolset) fairly easily.
>> 
>> That's ok for people with no purpose other than to make money. Good
>> programmers, the ones you want working for you and with you, usually love
>> and hate languages for good reasons.

I had to reformat your post to get aioe to accept it. You're posting from
google, right? How about formatting the text for usenet rather than web?
Sane line lengths would help.

>
> Beg to differ--**strongly**.  I think I'm a good programmer.  And while every
> language has its annoyances and some are more annoying than others, the
> things I love about programming--the problem-solving and creative aspects
> , among other things--don't have to do with one or another particular language.
>  (I recently completed a personal project, no money involved, in my
> least-favorite language, PHP, and still enjoyed working on it despite all the
> things I don't like about that language.  I chose PHP because I knew it would
> work on that particular platform and I didn't know what else would work.)
>

I don't know you and I have no intention of offending you and I'm not sure
why you should care what I think. Actually I don't see where you are replying
to any particular point I made but perhaps extrapolating unnecessarily and
tangentially.

Likely we have a different view of what being a good programmer means. Your
comments about a recent project are exactly what I'm talking about. There is
a very big difference between people for whom programming is just one of
many tools to get a job done and people for whom programming itself is
what's important. The former utilitarians are not much concerned with
finding the best language or system becauses they are practical and more
results oriented. The latter craftsmen focus on tools because the
programming is what they value and the results are not the essence although 
good results are a natural result of doing things correctly with a refusal
to cut corners or take shortcuts for the sake of booting something out the
door. This divide is found in most things, not just programming and it's
ok. I don't want any of the practical types around because I'm not
interested in those kinds of compromises. Mostly in all my life I've been
able to avoid those situations. The one time I couldn't I quit rather than
do things contrary to the way they should be done.

I have to love my tools. I'm the same way with mechanical work. I won't use
lousy tools under any circumstances. To me the way the work is done is more
important than other considerations. In my experience it turns out doing
things correctly using the best tools possible always produces the best
result so it's hard to say where this doesn't work. And I don't find it's
more expensive, just the opposite. Sanitary design and coding is far cheaper
in the long run. It's the classic measure twice cut once. Could you get
"acceptable" results with substandard tools? It happens every day. But I
don't work in that world.

I don't have a utilitarian bone in my body. I'll happily go without
something I can't implement the way it should be done although in my work
this doesn't happen. For my own projects I don't use second-rate tools or
languages _even_ if it means not having this or that feature.

> I would hope that programmers who love the art of programming more than they love working in a particular language are the majority, not the minority.
> Please do not denigrate us as having "no purpose other than to make money."  Thank you.

I don't see any conflict between what I wrote and what you wrote. If
anything what you wrote seems to be in agreement with what I wrote. I said
and you quoted further on 

"or they are more focused on business or how many apps they have worked on
or other issues and coding is just a way to accomplish that."

Did I misunderstand you or are you violently agreeing with me?

>> Many people 
>> like to kid themselves and point out how they can learn new languages and 
>> technologies all the time and they happily bounce from job to job coding web 
>> or iPhone apps. 
>
>> But those people are either lying to themselves in that they don't really 
>> ever learn anything and become cut and paste junkies or they are more 
>> focused on business or how many apps they have worked on or other issues and 
>> coding is just a way to accomplish that.

Perhaps I should have broken that up into a few statements. There is a value
judgement there but that's the whole point of this thread.

> I believe you are way, way off base here, although I'm sure there are some such programmers who are kidding themselves.

I don't know how you can possibly say that. In my experience 90% or more
of the programmers and coders I have come across either by working with them
or having to work on their code are not qualified to work in the business at
all. Most people employed to write code are incapable of writing a complete
program without cutting and pasting, and certainly not an entire system from
scratch in any language on any platform. But that level of incompetence is
probably not limited to programming. If you take a hard look it appears that
most of the people in most jobs don't do them very well.

Bill

^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-28 18:37             ` Adam Beneschan
  2014-10-28 19:14               ` David Botton
@ 2014-10-28 21:06               ` Jeffrey Carter
  2014-10-28 21:32                 ` Simon Clubley
                                   ` (2 more replies)
  1 sibling, 3 replies; 97+ messages in thread
From: Jeffrey Carter @ 2014-10-28 21:06 UTC (permalink / raw)


On 10/28/2014 11:37 AM, Adam Beneschan wrote:
> 
> I'm sorry, but this is one of the most ridiculous things I've ever seen posted in this newsgroup.

Thanks! I think Botton may be right about the time machine, though. I was mainly
playing devil's advocate, but there are ethical issues in language choice.

And Simon Clubley wrote:

> I am currently learning how to write a small extension for Android
> Firefox because the Android version of Firefox doesn't support the
> extension I use on the desktop version of Firefox.
> 
> Should I not implement this extension (and hence do without it's
> functionality) simply because I can't implement it in Ada ?

Denying one's own comfort or convenience for the greater good is generally the
essence of ethical problems. As such, rather than use an error- and
security-vulnerability-filled browser, you should deny yourself the
functionality while you write a better browser in Ada and give it away.

The ethics of taking a job using a lousy language vs suffering unemployment may
not be significant. It's certainly not on a par with collaborating with Nazis
and remaining alive vs certain death.

But what about when the S/W is to provide secure network communications or to
control a self-driving car? Then those who choose to use the lousy language are
at least partly responsible for the billions in financial consequences of a
security vulnerability, or the deaths due to a S/W error. The ethical
significance of the choice seems much greater.

-- 
Jeff Carter
"My mind is a raging torrent, flooded with rivulets of
thought, cascading into a waterfall of creative alternatives."
Blazing Saddles
89

^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-28 21:06               ` Jeffrey Carter
@ 2014-10-28 21:32                 ` Simon Clubley
  2014-10-28 21:37                 ` Adam Beneschan
  2014-11-08  4:45                 ` Randy Brukardt
  2 siblings, 0 replies; 97+ messages in thread
From: Simon Clubley @ 2014-10-28 21:32 UTC (permalink / raw)


On 2014-10-28, Jeffrey Carter <spam.jrcarter.not@spam.not.acm.org> wrote:
> And Simon Clubley wrote:
>
>> I am currently learning how to write a small extension for Android
>> Firefox because the Android version of Firefox doesn't support the
>> extension I use on the desktop version of Firefox.
>> 
>> Should I not implement this extension (and hence do without it's
>> functionality) simply because I can't implement it in Ada ?
>
> Denying one's own comfort or convenience for the greater good is generally the
> essence of ethical problems. As such, rather than use an error- and
> security-vulnerability-filled browser, you should deny yourself the
> functionality while you write a better browser in Ada and give it away.
>

with Good_Natured_Response; use Good_Natured_Response;

Sometimes you make a religious fanatic sound like a bleeding heart
liberal by comparison. :-)

Simon. (European liberal, so I know of what I speak. :-))

-- 
Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
Microsoft: Bringing you 1980s technology to a 21st century world

^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-28 21:06               ` Jeffrey Carter
  2014-10-28 21:32                 ` Simon Clubley
@ 2014-10-28 21:37                 ` Adam Beneschan
  2014-10-28 23:59                   ` Jeffrey Carter
  2014-11-08  4:45                 ` Randy Brukardt
  2 siblings, 1 reply; 97+ messages in thread
From: Adam Beneschan @ 2014-10-28 21:37 UTC (permalink / raw)


On Tuesday, October 28, 2014 2:06:23 PM UTC-7, Jeffrey Carter wrote:
> On 10/28/2014 11:37 AM, Adam Beneschan wrote:
> > 
> > I'm sorry, but this is one of the most ridiculous things I've ever seen posted in this newsgroup.
> 
> Thanks! I think Botton may be right about the time machine, though. I was mainly
> playing devil's advocate, but there are ethical issues in language choice.

I apologize--I may have taken you too literally.


> The ethics of taking a job using a lousy language vs suffering unemployment may
> not be significant. It's certainly not on a par with collaborating with Nazis
> and remaining alive vs certain death.
> 
> But what about when the S/W is to provide secure network communications or to
> control a self-driving car? Then those who choose to use the lousy language are
> at least partly responsible for the billions in financial consequences of a
> security vulnerability, or the deaths due to a S/W error. The ethical
> significance of the choice seems much greater.

I don't know--I see it differently.  Consider this situation: You're an expert programmer skilled at both Ada and C++.  You have been offered a position working on the software for a self-driving car.  The code will be in C++.  You will not be in charge of the project and will not have the power to change the language decision.  Which is more ethical:

(1) Turn down the job;
(2) Accept the position, and plan to use the skills you possess in writing safe, secure code, to influence the rest of the team to adopt coding (and testing) practices that result in code that's as reliable as anything written in Ada would be.

If the team would be writing sketchy code without your presence, would it really be more ethical to turn down the job, let them foist unsafe cars on the market, and then say "Well, they've caused six deaths, but hey, my hands are clean because I had nothing to do with that project"??  I'm not so sure.

(And if anyone believes #2 is impossible, because the C++ language somehow emits  unsafeness waves that travel through the air and into your monitor and turn all your carefully-written safe code into unsafe code ... OK, I'm being silly, but that just isn't correct.  That's one of the reasons I reacted so strongly to Jeff's earlier post, because it seemed to equate using an unsafe language to writing unsafe code, which of course is wrong.  You can write safe code in any language.  It may take a little more work in some languages; but if you're aware of the need to write safe code, and are disciplined, it can be done.  And if you're not, Ada isn't going to help.)

                                -- Adam

^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-28 21:37                 ` Adam Beneschan
@ 2014-10-28 23:59                   ` Jeffrey Carter
  2014-10-29  0:34                     ` Adam Beneschan
  0 siblings, 1 reply; 97+ messages in thread
From: Jeffrey Carter @ 2014-10-28 23:59 UTC (permalink / raw)


On 10/28/2014 02:37 PM, Adam Beneschan wrote:
> 
> (2) Accept the position, and plan to use the skills you possess in writing 
> safe, secure code, to influence the rest of the team to adopt coding (and 
> testing) practices that result in code that's as reliable as anything
> written in Ada would be.
> 
> (And if anyone believes #2 is impossible, because the C++ language somehow 
> emits  unsafeness waves that travel through the air and into your monitor and
> turn all your carefully-written safe code into unsafe code ... OK, I'm being
> silly, but that just isn't correct.  That's one of the reasons I reacted so
> strongly to Jeff's earlier post, because it seemed to equate using an unsafe
> language to writing unsafe code, which of course is wrong.  You can write
> safe code in any language.  It may take a little more work in some languages;
> but if you're aware of the need to write safe code, and are disciplined, it
> can be done.  And if you're not, Ada isn't going to help.)

I don't think #2 is impossible, just unlikely, given the kind of people who like
C++.  You're more likely to be ostracized by your fellow coders for writing
"inefficient code", labeled "not a team player" by manglement, and fired.

I'm not sure about the "any language", either. We have decades of experience
that show that humans cannot write critical networking S/W safely in C. I would
say that some people can write safe code in (almost) any language, and most
people will write unsafe code in any language.

-- 
Jeff Carter
"My mind is a raging torrent, flooded with rivulets of
thought, cascading into a waterfall of creative alternatives."
Blazing Saddles
89


^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-28 23:59                   ` Jeffrey Carter
@ 2014-10-29  0:34                     ` Adam Beneschan
  2014-10-29  5:24                       ` Jeffrey Carter
  0 siblings, 1 reply; 97+ messages in thread
From: Adam Beneschan @ 2014-10-29  0:34 UTC (permalink / raw)


On Tuesday, October 28, 2014 4:59:32 PM UTC-7, Jeffrey Carter wrote:

> > (And if anyone believes #2 is impossible, because the C++ language somehow 
> > emits  unsafeness waves that travel through the air and into your monitor and
> > turn all your carefully-written safe code into unsafe code ... OK, I'm being
> > silly, but that just isn't correct.  That's one of the reasons I reacted so
> > strongly to Jeff's earlier post, because it seemed to equate using an unsafe
> > language to writing unsafe code, which of course is wrong.  You can write
> > safe code in any language.  It may take a little more work in some languages;
> > but if you're aware of the need to write safe code, and are disciplined, it
> > can be done.  And if you're not, Ada isn't going to help.)
> 
> I don't think #2 is impossible, just unlikely, given the kind of people who like
> C++.  You're more likely to be ostracized by your fellow coders for writing
> "inefficient code", labeled "not a team player" by manglement, and fired.

By "impossible" I was referring to the possibility of writing safe code in C++, not the possibility of convincing your fellow programmers to actually try to do so.  My wording was unclear.  But even so, let's say you're right about what would happen--are you still going to argue that taking the job in the first place would be a less ethical choice, as you seemed to be arguing earlier?

                            -- Adam

^ permalink raw reply	[flat|nested] 97+ messages in thread

* F-35 (was:F-22 ADA Programming)
  2014-10-27  4:53 ` Jerry Petrey
@ 2014-10-29  1:49   ` Robert Love
  2014-10-30  9:01     ` Frédéric Praca
  0 siblings, 1 reply; 97+ messages in thread
From: Robert Love @ 2014-10-29  1:49 UTC (permalink / raw)


On 2014-10-27 04:53:56 +0000, Jerry Petrey said:

> On 10/26/2014 11:31 AM, nathandsash@gmail.com wrote:
>> I read a few articles on ADA programming and came across a very 
>> interesting fact: that the F-22 was/is programmed in ADA. So this 
>> raises a few questions for me:
>> 
>> 1) What version of ADA is the F-22 programmed in?
>> 2) What exactly were the parts of the F-22 were programmed in ADA? Were 
>> all the avionic components programmed in ADA or are there some 
>> programmed in another language like C, C++, VHDL, Verilog, etc.
>> 
>> 
> 
> I was working for Lockheed during the time the F22 software was being 
> developed.  I worked on other aircraft using Ada (the C130J and the 
> C27J) and we all used Ada - it was Ada83 and we sometimes shared some 
> code with the F22 people.  Ada was very successful on all those 
> aircraft.  By the way, the Boeing 777 was also done mostly in Ada as 
> was the Rosetta spacecraft which has just recently achieved a comet 
> rendezvous after a 10 year journey.
> 
> Jerry

Does anyone have knowledge of how software for the F-35 went?   Budget, 
schedule and quality?    Was it autocoded from UML or written in the 
traditonal fashion?  Is there any way to compare software development 
success between F-22 and F-35?


^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-29  0:34                     ` Adam Beneschan
@ 2014-10-29  5:24                       ` Jeffrey Carter
  2014-10-29  8:37                         ` Dmitry A. Kazakov
  0 siblings, 1 reply; 97+ messages in thread
From: Jeffrey Carter @ 2014-10-29  5:24 UTC (permalink / raw)


On 10/28/2014 05:34 PM, Adam Beneschan wrote:
> 
> By "impossible" I was referring to the possibility of writing safe code in
> C++, not the possibility of convincing your fellow programmers to actually
> try to do so.  My wording was unclear.  But even so, let's say you're right
> about what would happen--are you still going to argue that taking the job in
> the first place would be a less ethical choice, as you seemed to be arguing
> earlier?

Good question. Writing S/W that kills is clearly unethical, even if due to
incompetence. Where does writing part of the S/W that kills fall? It's even
possible, if our S/W engineer did a good job on the part of the S/W he worked
on, that this allowed the project to complete where it would have failed
otherwise. A liability lawsuit that went after the S/W developers would
undoubtedly consider him equally responsible.

This stuff isn't simple. I hoped to spark some discussion on the ethical aspects
of language choice. I hope more people will want to comment.

-- 
Jeff Carter
"My mind is a raging torrent, flooded with rivulets of
thought, cascading into a waterfall of creative alternatives."
Blazing Saddles
89

^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-29  5:24                       ` Jeffrey Carter
@ 2014-10-29  8:37                         ` Dmitry A. Kazakov
  2014-10-29 17:20                           ` Jeffrey Carter
  0 siblings, 1 reply; 97+ messages in thread
From: Dmitry A. Kazakov @ 2014-10-29  8:37 UTC (permalink / raw)


On Tue, 28 Oct 2014 22:24:31 -0700, Jeffrey Carter wrote:

> This stuff isn't simple. I hoped to spark some discussion on the ethical aspects
> of language choice. I hope more people will want to comment.

I think that the flaw in your reasoning is that engineering cannot be
ethical or unethical. It is a methodology of organizing human and physical
resources in order to achieve certain goals, just a tool.

What if I say that making programmers responsible for language choices made
by *others* directly (by [mis-]management) and indirectly (through crippled
software developing market) is unethical too?

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-29  8:37                         ` Dmitry A. Kazakov
@ 2014-10-29 17:20                           ` Jeffrey Carter
  2014-10-29 20:43                             ` Dmitry A. Kazakov
  2014-10-30 15:38                             ` Maciej Sobczak
  0 siblings, 2 replies; 97+ messages in thread
From: Jeffrey Carter @ 2014-10-29 17:20 UTC (permalink / raw)


On 10/29/2014 01:37 AM, Dmitry A. Kazakov wrote:
> 
> What if I say that making programmers responsible for language choices made
> by *others* directly (by [mis-]management) and indirectly (through crippled
> software developing market) is unethical too?

Surely if the language is chosen by management, they share in the responsibility
for its effect. A developer who agrees to work on the project using the poor
language has made a decision to do so, and is clearly responsible for that decision.

-- 
Jeff Carter
"This school was here before you came,
and it'll be here before you go."
Horse Feathers
48


^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-29 17:20                           ` Jeffrey Carter
@ 2014-10-29 20:43                             ` Dmitry A. Kazakov
  2014-10-29 20:55                               ` Jeffrey Carter
  2014-10-29 21:40                               ` Georg Bauhaus
  2014-10-30 15:38                             ` Maciej Sobczak
  1 sibling, 2 replies; 97+ messages in thread
From: Dmitry A. Kazakov @ 2014-10-29 20:43 UTC (permalink / raw)


On Wed, 29 Oct 2014 10:20:12 -0700, Jeffrey Carter wrote:

> On 10/29/2014 01:37 AM, Dmitry A. Kazakov wrote:
>> 
>> What if I say that making programmers responsible for language choices made
>> by *others* directly (by [mis-]management) and indirectly (through crippled
>> software developing market) is unethical too?
> 
> Surely if the language is chosen by management, they share in the responsibility
> for its effect. A developer who agrees to work on the project using the poor
> language has made a decision to do so, and is clearly responsible for that decision.

No taxation without representation. The blame is put squarely on those who
make these decisions. Refusing to work is an extraordinary measure outside
normal developing process to be used only in the cases of clearly criminal
orders. IMO it is more unethical than using an inferior language. E.g. if
programmers refused to work on a new aircraft there would be none and the
country could become defenseless. Remember how Ada was snubbed because used
by DoD? Was that ethical?

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-29 20:43                             ` Dmitry A. Kazakov
@ 2014-10-29 20:55                               ` Jeffrey Carter
  2014-10-29 21:40                               ` Georg Bauhaus
  1 sibling, 0 replies; 97+ messages in thread
From: Jeffrey Carter @ 2014-10-29 20:55 UTC (permalink / raw)


On 10/29/2014 01:43 PM, Dmitry A. Kazakov wrote:
> 
> No taxation without representation. The blame is put squarely on those who
> make these decisions. Refusing to work is an extraordinary measure outside
> normal developing process to be used only in the cases of clearly criminal
> orders. IMO it is more unethical than using an inferior language. E.g. if
> programmers refused to work on a new aircraft there would be none and the
> country could become defenseless. Remember how Ada was snubbed because used
> by DoD? Was that ethical?

It appears we disagree, then. If no one would work on a new aircraft unless it
was done in Ada, then I suspect it would be done in Ada. That seems like a
desirable outcome to me.

-- 
Jeff Carter
"This school was here before you came,
and it'll be here before you go."
Horse Feathers
48


^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-29 20:43                             ` Dmitry A. Kazakov
  2014-10-29 20:55                               ` Jeffrey Carter
@ 2014-10-29 21:40                               ` Georg Bauhaus
  2014-10-30  8:56                                 ` Dmitry A. Kazakov
  1 sibling, 1 reply; 97+ messages in thread
From: Georg Bauhaus @ 2014-10-29 21:40 UTC (permalink / raw)


On 29.10.14 21:43, Dmitry A. Kazakov wrote:
> E.g. if
> programmers refused to work on a new aircraft there would be none and the
> country could become defenseless.

There is a premiss not mentioned in this, which if mentioned,
would depict Mahatma Gandhi as an amoral person. The premiss
is that a people, in order to be free, needs staffed and
unstaffed flying weapons, or, generalizing, people all need to
carry and use guns, knives, pepper spray, tasers, etc.)
  Considering northern Mesopotamia, many agree at this time,
even outside the USA, but aircraft does not seem to be the
most effective defense right now.
  Considering India, many once disagreed.
Is there a single conclusion to be drawn?

The subject, if it is "do the right thing using the right tool",
is akin to that of
http://en.wikipedia.org/wiki/The_Rider_on_the_White_Horse


^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-29 21:40                               ` Georg Bauhaus
@ 2014-10-30  8:56                                 ` Dmitry A. Kazakov
  2014-11-08  4:52                                   ` Randy Brukardt
  0 siblings, 1 reply; 97+ messages in thread
From: Dmitry A. Kazakov @ 2014-10-30  8:56 UTC (permalink / raw)


On Wed, 29 Oct 2014 22:40:58 +0100, Georg Bauhaus wrote:

> On 29.10.14 21:43, Dmitry A. Kazakov wrote:
>> E.g. if
>> programmers refused to work on a new aircraft there would be none and the
>> country could become defenseless.
> 
> There is a premiss not mentioned in this, which if mentioned,
> would depict Mahatma Gandhi as an amoral person.

He possibly was. But I wrote about evidently criminal orders, which justify
actions like public disobedience. Using C++ is not criminal, not even
amoral. It is only stupid. Stupidity is not a crime.

The hidden point was that the theory of small deeds is all wrong. You
cannot rely on humans acting morally, e.g. choosing Ada being under
economical, social and other pressures to choose C++. It would not work.
And it is not engineering, which in essence is about making things *less*
dependent on human decisions, in particular, putting moral out of the
equation.

> The premiss
> is that a people, in order to be free, needs staffed and
> unstaffed flying weapons, or, generalizing, people all need to
> carry and use guns, knives, pepper spray, tasers, etc.)

Maybe true, but this is a difficult question of balance.

> Considering northern Mesopotamia, many agree at this time,
> even outside the USA, but aircraft does not seem to be the
> most effective defense right now.

Actually it is. The problem is how the weapon applied. There are
constraints put by politicians which prevent its effective usage, or
sometimes any meaningful usage. Military under democracy is meant to be
ineffective, beginning with Athens expedition to Syracuse and on...

> Considering India, many once disagreed.
> Is there a single conclusion to be drawn?

Considering what followed, split of the country, religious war, millions of
dead and refugees, the conflict that keeps on going for a half of century,
maybe India would be better off without this...

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-35 (was:F-22 ADA Programming)
  2014-10-29  1:49   ` F-35 (was:F-22 ADA Programming) Robert Love
@ 2014-10-30  9:01     ` Frédéric Praca
  2014-10-30  9:07       ` Frédéric Praca
  0 siblings, 1 reply; 97+ messages in thread
From: Frédéric Praca @ 2014-10-30  9:01 UTC (permalink / raw)


On Tue, 28 Oct 2014 20:49:56 -0500, Robert Love wrote:

> On 2014-10-27 04:53:56 +0000, Jerry Petrey said:
> 
>> On 10/26/2014 11:31 AM, nathandsash@gmail.com wrote:
>>> I read a few articles on ADA programming and came across a very
>>> interesting fact: that the F-22 was/is programmed in ADA. So this
>>> raises a few questions for me:
>>> 
>>> 1) What version of ADA is the F-22 programmed in?
>>> 2) What exactly were the parts of the F-22 were programmed in ADA?
>>> Were all the avionic components programmed in ADA or are there some
>>> programmed in another language like C, C++, VHDL, Verilog, etc.
>>> 
>>> 
>>> 
>> I was working for Lockheed during the time the F22 software was being
>> developed.  I worked on other aircraft using Ada (the C130J and the
>> C27J) and we all used Ada - it was Ada83 and we sometimes shared some
>> code with the F22 people.  Ada was very successful on all those
>> aircraft.  By the way, the Boeing 777 was also done mostly in Ada as
>> was the Rosetta spacecraft which has just recently achieved a comet
>> rendezvous after a 10 year journey.
>> 
>> Jerry
> 
> Does anyone have knowledge of how software for the F-35 went?   Budget,
> schedule and quality?    Was it autocoded from UML or written in the
> traditonal fashion?  Is there any way to compare software development
> success between F-22 and F-35?

Well, you can find several things about that.
First, on Wikipedia page (https://en.wikipedia.org/wiki/
Lockheed_Martin_F-35_Lightning_II#Program_cost_increases_and_delays ), 
you will learn that software is one of the main actors in the delays.

More technical information can be found there (https://www.csiac.org/
sites/default/files/
journal_files/2010_03_30_SoftwareQualityReliabilityandErrorPrediction.pdf 
) from page 36 to 39.
One thing linked to the other posts in this thread is the choice of C/C++ 
for staffing concerns.

But don't count on me to make the link between software delays and the 
C++ choice :)

Fred


^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-35 (was:F-22 ADA Programming)
  2014-10-30  9:01     ` Frédéric Praca
@ 2014-10-30  9:07       ` Frédéric Praca
  0 siblings, 0 replies; 97+ messages in thread
From: Frédéric Praca @ 2014-10-30  9:07 UTC (permalink / raw)


On Thu, 30 Oct 2014 09:01:06 +0000, Frédéric Praca wrote:

> On Tue, 28 Oct 2014 20:49:56 -0500, Robert Love wrote:
> 
>> On 2014-10-27 04:53:56 +0000, Jerry Petrey said:
>> 
>> Does anyone have knowledge of how software for the F-35 went?   Budget,
>> schedule and quality?    Was it autocoded from UML or written in the
>> traditonal fashion?  Is there any way to compare software development
>> success between F-22 and F-35?
> 
> Well, you can find several things about that.
> First, on Wikipedia page (https://en.wikipedia.org/wiki/
> Lockheed_Martin_F-35_Lightning_II#Program_cost_increases_and_delays ),
> you will learn that software is one of the main actors in the delays.
> 
> More technical information can be found there (https://www.csiac.org/
> sites/default/files/
> 
journal_files/2010_03_30_SoftwareQualityReliabilityandErrorPrediction.pdf
> ) from page 36 to 39.
> One thing linked to the other posts in this thread is the choice of
> C/C++
> for staffing concerns.
> 
> But don't count on me to make the link between software delays and the
> C++ choice :)
> 
> Fred

And I also forgot the latest information I got from CPPCon through these 
slides (http://tinyurl.com/qze7nhh ) but it's only C++ :)

Fred
Ps: sorry for the long URLs. Here are shorter ones that fit in one line
- Wikipedia : http://tinyurl.com/pdrnoax
- CSIAC : http://tinyurl.com/nvglaab

^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-29 17:20                           ` Jeffrey Carter
  2014-10-29 20:43                             ` Dmitry A. Kazakov
@ 2014-10-30 15:38                             ` Maciej Sobczak
  2014-10-30 15:49                               ` Alan Jump
                                                 ` (2 more replies)
  1 sibling, 3 replies; 97+ messages in thread
From: Maciej Sobczak @ 2014-10-30 15:38 UTC (permalink / raw)



> Surely if the language is chosen by management, they share in the responsibility
> for its effect. A developer who agrees to work on the project using the poor
> language has made a decision to do so, and is clearly responsible for that decision.

Sorry, I got lost in this. I mean - in the taking responsibility part.
Does it mean that if we choose Ada and then shit happens, are we cleared from responsibility, because the choice was good?

The difference between Ada and C++ is not that in Ada there will be no bugs and in C++ there will be only bugs. At best, the language choice will have some influence on the probability and economy of failure. So, let's say (just for the sake of discussion, with no regard to how ridiculous it got already) that with C++ the probability of project failure is 30% and with Ada the probability of project failure is 20%. I don't care if these numbers reflect reality.

a) And I choose C++. And then shit happens. Am I responsible? To what extent?

b) And I choose Ada. And then shit happens. Am I responsible? To what extent?

Are you ready to throw some numbers or can we agree that the discussion went out of control and the whole responsibility argument is just nonsense?

On the other hand, I can imagine a world where programmers are covered by civil responsibility insurance (just like in many other industries) and insurance companies will offer insurance discounts to better programmers (just as they do to people with good car driving history or with no smoking habits, etc.). And then, it will be in the interest of programmers to stick to technologies that allow them pay less for insurance (ultimately, programmers that stick to good technologies will be also cheaper to hire, as their insurance will be levied on employers anyway).
So, when the manager says "this project will be written in C++", the programmer will answer "this will cost me/you more in insurance, better switch to Ada" and then the manager will go back to his Excel to rethink his choices. Insurance companies would then make sure that primes are periodically reviewed and reflect the actual industry failure rates, which will allow good technologies to bubble up and shitware sink down.
Would that work? I was elaborating on this idea several times and it makes sense to me, as it puts money into the equation just as it already does in many other parts of our life. If my insurance company cares about me doing proper technical service of my car, it might as well guide me in the choice of my programming language, there is really little difference here.

But until this (or something equivalent) happens, please don't argue that the programmer is responsible for his language choices, as such argument has no tangible (and countable) foundations. It's just hand-waving.

-- 
Maciej Sobczak * http://www.inspirel.com

^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-30 15:38                             ` Maciej Sobczak
@ 2014-10-30 15:49                               ` Alan Jump
  2014-10-30 22:33                                 ` Dennis Lee Bieber
  2014-10-30 16:07                               ` Bill White
  2014-10-31 13:24                               ` Jacob Sparre Andersen
  2 siblings, 1 reply; 97+ messages in thread
From: Alan Jump @ 2014-10-30 15:49 UTC (permalink / raw)


On Thursday, October 30, 2014 8:38:45 AM UTC-7, Maciej Sobczak wrote:
> The difference between Ada and C++ is not that in Ada there will be no bugs and in C++ there will be only bugs. At best, the language choice will have some influence on the probability and economy of failure. So, let's say (just for the sake of discussion, with no regard to how ridiculous it got already) that with C++ the probability of project failure is 30% and with Ada the probability of project failure is 20%. I don't care if these numbers reflect reality.
> 
> a) And I choose C++. And then shit happens. Am I responsible? To what extent?
> 
> b) And I choose Ada. And then shit happens. Am I responsible? To what extent?
> 
> Are you ready to throw some numbers or can we agree that the discussion went out of control and the whole responsibility argument is just nonsense?

As a neophyte student of Ada, I'm quickly learning that Ada really does exactly one thing well: it saves the programmer from committing some simple coding errors that would go undetected until runtime under C++.

With that said, no language, no matter how carefully crafted or how thoroughly validated or formally proven, can save a developer from a poorly-defined design question, nor the subsequent poorly-designed solution to that problem. If I am presented with a project, "write an application that does this and that", and I don't do the proper analysis of that project to determine precisely what's needed, it won't matter if I write the application in Ada, C++, Python, or Z/80 assembler...it WILL FAIL, because I didn't properly or adequately define the problem the application is intended to solve.

Just my 2p worth. Save up the change for a root beer or something.


^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-30 15:38                             ` Maciej Sobczak
  2014-10-30 15:49                               ` Alan Jump
@ 2014-10-30 16:07                               ` Bill White
  2014-10-30 22:37                                 ` Maciej Sobczak
  2014-10-31 13:24                               ` Jacob Sparre Andersen
  2 siblings, 1 reply; 97+ messages in thread
From: Bill White @ 2014-10-30 16:07 UTC (permalink / raw)


On 2014-10-30, Maciej Sobczak <see.my.homepage@gmail.com> wrote:
>
>> Surely if the language is chosen by management, they share in the responsibility
>> for its effect. A developer who agrees to work on the project using the poor
>> language has made a decision to do so, and is clearly responsible for that decision.
>
> Sorry, I got lost in this. I mean - in the taking responsibility part.
> Does it mean that if we choose Ada and then shit happens, are we cleared
> from responsibility because the choice was good?

It is not about escaping responsibility but come from the other end and try
to be responsible. People are required to be diligent. Choosing the right
platforms, languages, techniques etc. are all part of engineering just like
choosing the right concrete, steel, and designs are are all part of making a
bridge.

Choosing something that's known to be defective or provably unsuitable is
irresponsible and not certainly not good engineering practice. Choosing
something less-than-optimal often is "acceptable" engineering practice. When
forced to do something like that you can either quit or send memos and keep
copies.

> The difference between Ada and C++ is not that in Ada there will be no
 bugs and in C++ there will be only bugs. At best, the language choice will
 have some influence on the probability and economy of failure.

I think that's misleading. It is not only the probability of failures that's
important but their type and consequences. Those are engineering limits that
can usually be quantified fairly well. 

> So, let's say (just for the sake of discussion, with no regard to how ridiculous it got already)
> that with C++ the probability of project failure is 30% and with Ada the probability of project
> failure is 20%. I don't care if these numbers reflect reality.

If that was all there was to it then it would be a simple matter of
budgeting. Is the 10% you'll have to pay in claim settlements and damages
worth it? If so, choose C++. If not, choose Ada. But I don't think it's the
quantity (and I don't think C++ is only 10% worse than Ada even by pure
quantity). 

>
> a) And I choose C++. And then shit happens. Am I responsible? To what extent?

If the system requires safety and you are responsible for choosing an
inappropriate tool then you're certainly responsible. You're might also be
incompetent and criminally negligent.

> b) And I choose Ada. And then shit happens. Am I responsible? To what extent?

Nobody says Ada is a silver bullet. The point is diligence. You don't use
things with known safety issues in systems where safety is an issue. If you
did the best you can and you followed good engineering practice then
failures should have been mitigated as much as possible. People can still do
the wrong thing with good tools. The question is whether people acted
responsibly, cautiously, and in good faith. And those are things that make a
difference in court.

>
> Are you ready to throw some numbers or can we agree that the discussion went out of
> control and the whole responsibility argument is just nonsense?

The discussion is not nonsense. The idea that people should refuse to use
bad tools on the job is hard because when push comes to shove many people
feel obligated to not be homeless or starving, especially if other people
are depending on them. The question is a question of ideals, having a sense
of social responsibility and right and wrong, and how close you can get to
doing the right thing. You're at least obligated to make your objections and
questions known and then if it's my way or the highway then only you can
decide what to do. Immorality is not ok just because you're in an office.

> Would that work? I was elaborating on this idea several times and it makes sense to me,
> as it puts money into the equation just as it already does in many other parts of our life.
> If my insurance company cares about me doing proper technical service of my car, it might
>  as well guide me in the choice of my programming language, there is really little difference here.
>
> But until this (or something equivalent) happens, please don't argue that the programmer is 
> responsible for his language choices, as such argument has no tangible (and countable)
> foundations. It's just hand-waving.

That is a very odd assertion. Just because there is no legal ecosystem for
something hardly means it's hand-waving or irrelevant. The (attempted)
solution usually comes after the problem, not before. 

Bill



^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-30 15:49                               ` Alan Jump
@ 2014-10-30 22:33                                 ` Dennis Lee Bieber
  2014-10-30 23:13                                   ` Jeffrey Carter
  0 siblings, 1 reply; 97+ messages in thread
From: Dennis Lee Bieber @ 2014-10-30 22:33 UTC (permalink / raw)


On Thu, 30 Oct 2014 08:49:16 -0700 (PDT), Alan Jump <alan.jump@gmail.com>
declaimed the following:


>With that said, no language, no matter how carefully crafted or how thoroughly validated or formally proven, can save a developer from a poorly-defined design question, nor the subsequent poorly-designed solution to that problem. If I am presented with a project, "write an application that does this and that", and I don't do the proper analysis of that project to determine precisely what's needed, it won't matter if I write the application in Ada, C++, Python, or Z/80 assembler...it WILL FAIL, because I didn't properly or adequately define the problem the application is intended to solve.
>

	And that is one justification for why the DoD dropped the "Ada mandate"
-- it was concluded that the analysis/design process had improved enough to
reduce the risk of using less strict languages {If you do enough front-end
work, and put checks on the coding practices, you don't need as much
compiler assistance}
-- 
	Wulfraed                 Dennis Lee Bieber         AF6VN
    wlfraed@ix.netcom.com    HTTP://wlfraed.home.netcom.com/

^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-30 16:07                               ` Bill White
@ 2014-10-30 22:37                                 ` Maciej Sobczak
  2014-10-31  9:41                                   ` Georg Bauhaus
  2014-10-31 10:11                                   ` Bill White
  0 siblings, 2 replies; 97+ messages in thread
From: Maciej Sobczak @ 2014-10-30 22:37 UTC (permalink / raw)



> It is not about escaping responsibility but come from the other end and try
> to be responsible. People are required to be diligent. Choosing the right
> platforms, languages, techniques etc. are all part of engineering just like
> choosing the right concrete, steel, and designs are are all part of making a
> bridge.

And yet, among hundreds of available materials and components, architects choose those that are most economically viable in the given context, not the ones that have the best known parameters. For every bridge or building I would be able to prove that better materials exist - and they were not chosen for valid reasons. Every single day my life depends on materials that were chosen based on some economic compromises and sometimes that economy argument is passed on us - for example we have to choose what car we will buy to drive our kids to school and that decision also involves economy compromises. I bet that nobody on this group bought the best car that was ever created. Should we feel bad about it?

I am not aware of any engineering industry where purely technical arguments are the only ones that are taken into account. It would be naive to expect that IT should be any different.

> I think that's misleading. It is not only the probability of failures that's
> important but their type and consequences.

That C++ bugs have more severe consequences than Ada bugs? :-)

> The question is whether people acted
> responsibly, cautiously, and in good faith. And those are things that make a
> difference in court.

And I assure you that no programmer in the world selects his tools in bad faith (at least I don't know any such wrongdoers). Everybody can swear on their good intentions. That should solve the court problem, right?

If I understand things correctly, lack of due diligence has to be proven in court. But who is responsible if most programmers are simply *not aware* of better tools? Nowadays the universities teach that the best language for everything is Java. Is the Java programmer liable for the broken system or should we sue his university instead?

-- 
Maciej Sobczak * http://www.inspirel.com

^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-30 22:33                                 ` Dennis Lee Bieber
@ 2014-10-30 23:13                                   ` Jeffrey Carter
  0 siblings, 0 replies; 97+ messages in thread
From: Jeffrey Carter @ 2014-10-30 23:13 UTC (permalink / raw)


On 10/30/2014 03:33 PM, Dennis Lee Bieber wrote:
> 
> 	And that is one justification for why the DoD dropped the "Ada mandate"
> -- it was concluded that the analysis/design process had improved enough to
> reduce the risk of using less strict languages {If you do enough front-end
> work, and put checks on the coding practices, you don't need as much
> compiler assistance}

Well, no. The replacement mandate (universally ignored) is to choose the
language with the lowest lifecycle costs, and justify that choice. This, we were
promised, would insure that Ada was chosen until a better language was created.

-- 
Jeff Carter
"I like it when the support group complains that they have
insufficient data on mean time to repair bugs in Ada software."
Robert I. Eachus
91


^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-30 22:37                                 ` Maciej Sobczak
@ 2014-10-31  9:41                                   ` Georg Bauhaus
  2014-10-31 12:51                                     ` Brad Moore
  2014-11-01  3:03                                     ` C versus Ada (once again :-)), was: " Simon Clubley
  2014-10-31 10:11                                   ` Bill White
  1 sibling, 2 replies; 97+ messages in thread
From: Georg Bauhaus @ 2014-10-31  9:41 UTC (permalink / raw)


On 30.10.14 23:37, Maciej Sobczak wrote:
> I am not aware of any engineering industry where purely technical arguments are the only ones that are taken into account. It would be naive to expect that IT should be any different.

To an engineer, it is obvious that no terribly broken tools should ever
be used in engineering, including bridge building, except in an
emergency.  So obvious that engineers and mechanics just never face a
discussion like this: They do use a reasonably good soldering iron even
when there is a good candle, bellows and skillful use at hand.

Such curiosities would be admired, and requested to be understood,
but they would never replace the soldering iron.

C++, as an example of a tool different from C and used in engineering,
has got soooo much to address the shortcomings of its foundation (C).
But it keeps it, and not just as a curiosity. Why? By analogy, any engineer
would by now have considered replacing the foundation, or at least part of it.

But here in programming, we keep C as the foundation. We keep our
backwards compatibility, our pride, our demonstrable consistency of the
C standard, our group pressure, our dreams of always doing things
correctly, our stereotypes, the ubiquity of C (self-fulfilling),
etc. All this happens even in the presence of refactoring IDEs,
automatic proof systems, or static analysis (really redefining C implicitly),
This evidence would definitely allow saying Good Bye to int and *p.
So I don't believe the continued use of error prone foundations can
be explained with the help of just the pricing-related attributes of
economy.

On the other hand, the history of Ada pricing seem strikingly obvious:
The 4+ digits/year of a good tool have been in anyone's face (including
compilers for use in teaching), while the ROI would appear in an uncertain
future. How could this have been compatible with gaining market share?



^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-30 22:37                                 ` Maciej Sobczak
  2014-10-31  9:41                                   ` Georg Bauhaus
@ 2014-10-31 10:11                                   ` Bill White
  2014-10-31 12:52                                     ` Maciej Sobczak
  1 sibling, 1 reply; 97+ messages in thread
From: Bill White @ 2014-10-31 10:11 UTC (permalink / raw)


On 2014-10-30, Maciej Sobczak <see.my.homepage@gmail.com> wrote:
>
>> It is not about escaping responsibility but come from the other end and try
>> to be responsible. People are required to be diligent. Choosing the right
>> platforms, languages, techniques etc. are all part of engineering just like
>> choosing the right concrete, steel, and designs are are all part of making a
>> bridge.
>
> And yet, among hundreds of available materials and components, architects
choose those that are most economically viable in the given context, not the
ones that have the best known parameters. For every bridge or building I
would be able to prove that better materials exist - and they were not
chosen for valid reasons. Every single day my life depends on materials that
were chosen based on some economic compromises and sometimes that economy
argument is passed on us - for example we have to choose what car we will
buy to drive our kids to school and that decision also involves economy
compromises. I bet that nobody on this group bought the best car that was
ever created. Should we feel bad about it? 

I didn't say the best. I said "just like choosing the right concrete, steel,
and designs. Engineering these days is mostly about choosing the cheapest
possible materials and procedures that will meet the performance goals. OTOH
in safety area people have found it worthwhile to over engineer somewhat.

>
> I am not aware of any engineering industry where purely technical
> arguments are the only ones that are taken into account. It would be naive
> to expect that IT should be any different. 
>
>> I think that's misleading. It is not only the probability of failures that's
>> important but their type and consequences.
>
> That C++ bugs have more severe consequences than Ada bugs? :-)

Are you kidding me?

Are you not aware that buffer overflows are a major ongoing, intractable
issue in C and C++ deployments? Depending on the platform the results can be
much worse than a segfault message. These kinds of errors can corrupt memory
and produce "should never happen" errors that are unhandled or break the
code of even the OS in unforseeable ways. And these kinds of errors are
totally avoidable and never happen in Ada with the right compilation options.

C and C++ pointers are another area where wild storage references are
common and have the same damaging effects as buffer overflows. Things like
that just don't happen in Ada and other safe languages. There's no excuse
for using C or C++ in safety or even business-critical applications.

And that's the tip of the iceberg. So much about C++ encourages rather than
discourages complexity. And complexity kills.

>> The question is whether people acted
>> responsibly, cautiously, and in good faith. And those are things that make a
>> difference in court.
>
> And I assure you that no programmer in the world selects his tools in bad
>> faith (at least I don't know any such wrongdoers). Everybody can swear on
>> their good intentions. That should solve the court problem, right?

Nonsense. Most people are not even qualified to choose the tools they use
and the majority of them don't even think this is a discussion.

> If I understand things correctly, lack of due diligence has to be proven
>in court. 

That depends. In criminal cases in America they are supposed to have to
prove guilt. But in civil cases and that's where the money is, accused
parties have to prove their innocence.

> But who is responsible if most programmers are simply *not aware*
>of better tools? Nowadays the universities teach that the best language for
>everything is Java. Is the Java programmer liable for the broken system or
>should we sue his university instead? 

You continue to try to twist the discussion into the framework of avoiding
liability and who to collect money from, where I am coming from the angle of
wanting people to be aware of the issues and do the right thing, because
it's the right thing to do.

Bill


^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-31  9:41                                   ` Georg Bauhaus
@ 2014-10-31 12:51                                     ` Brad Moore
  2014-11-01  3:03                                     ` C versus Ada (once again :-)), was: " Simon Clubley
  1 sibling, 0 replies; 97+ messages in thread
From: Brad Moore @ 2014-10-31 12:51 UTC (permalink / raw)


On 2014-10-31 3:41 AM, Georg Bauhaus wrote:
> To an engineer, it is obvious that no terribly broken tools should ever
> be used in engineering, including bridge building, except in an
> emergency.  So obvious that engineers and mechanics just never face a
> discussion like this: They do use a reasonably good soldering iron even
> when there is a good candle, bellows and skillful use at hand.
>

This argument seems weak, given that there are many engineers out there 
who program in C++. Maybe they should be facing discussions like this, 
as the engineering community can have significant clout, and could 
influence the choice of software tools for a project, particularly if 
there are safety requirements involved.

^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-31 10:11                                   ` Bill White
@ 2014-10-31 12:52                                     ` Maciej Sobczak
  2014-11-02 15:40                                       ` Bill White
  0 siblings, 1 reply; 97+ messages in thread
From: Maciej Sobczak @ 2014-10-31 12:52 UTC (permalink / raw)



> > That C++ bugs have more severe consequences than Ada bugs? :-)
> 
> Are you kidding me?
> 
> Are you not aware that buffer overflows are a major

Yes, I am. And the recent Heartbleed mess is a very good example of why you are both right and wrong at the same time.
The problem is - most of the buffer overflows that we had to deal with were related to foundation infrastructure, which has long historic links. Nobody is going to replace those foundations without taking those historic links into account - and choosing Ada at the top level does not help much if foundations are not replaced. In the context of Heartbleed this means that your Ada-based web service (like with AWS) would be compromised anyway, because it would use the foundations that are broken, but which you would not be willing to reimplement yourself. And if you attempt to do it, you will take the risk of introducing new bugs, perhaps not buffer overflows, but maybe more subtle (and not less dangerous), like related to the cryptographic correctness of your new foundations. This is a huge economic question mark. It is not obvious (and has no existing data to back up) that replacing the software world with Ada would be automatically beneficial.

Which brings us to another question: what "switching to Ada" is supposed to mean, anyway? That we will take literally billions of lines of C code and put our several thousands of Ada on top of it and call it a success? This is pointless, the impact on overall quality would be exactly zero (think Heartbleed). Or maybe that we will replace the billions of LOC in C with new and untested billions of LOC in Ada? We both know it's not going to happen, and it would not even be necessarily good.

Things look different in those deployments where you can control the whole stack, like in embedded systems. There, "switching to Ada" is actually meaningful and I fully applaud it. Which is actually very relevant and viable with most safety critical systems.

> C and C++ pointers are another area where wild storage references are
> common and have the same damaging effects as buffer overflows. Things like
> that just don't happen in Ada and other safe languages.

They also don't happen with appropriate language subsetting, which is a valid and widely used strategy in safety critical systems. There is no need to abandon the whole language just because you want to get rid of one language feature.

> There's no excuse
> for using C or C++ in safety or even business-critical applications.

The excuse is economy of replacing billions of lines in foundation layers. And, let's be a bit objective, statistically it looks like both safety and business are doing fine. Fuckups get more media attention for obvious reasons (media have their economy, too), but from what I see more banks are thriving thanks to well working systems than falling due to buffer overflows. These are the excuses you are looking for and these are the reasons why future banking systems will be written in C++ and Java, too.

> Nonsense. Most people are not even qualified to choose the tools they use

And who is going to forbid them?

> > If I understand things correctly, lack of due diligence has to be proven
> >in court. 
> 
> That depends. In criminal cases in America they are supposed to have to
> prove guilt. But in civil cases and that's where the money is, accused
> parties have to prove their innocence.

OK, easy. There is a concept of widely accepted practice (also known as "nobody was ever fired for buying IBM"). If all universities teach that Java is the best technology and if all companies use it, then it must be an accepted practice. Then, just as "nobody was ever fired for buying IBM", nobody will be ever sued for writing business systems in Java.

On the contrary - choosing niche technologies might look like taking unnecessary risks and this is certainly a question mark in court. Ada is a niche technology and its technical properties might not be obvious to the judge.

> You continue to try to twist the discussion into the framework of avoiding
> liability and who to collect money from, where I am coming from the angle of
> wanting people to be aware of the issues and do the right thing, because
> it's the right thing to do.

Right. So for most people the right thing to do is not to take risks and do what everybody else does and write in C. Or in Java. Sorry. If all this seems twisted to you, it was not me who has twisted the world.

-- 
Maciej Sobczak * http://www.inspirel.com


^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-30 15:38                             ` Maciej Sobczak
  2014-10-30 15:49                               ` Alan Jump
  2014-10-30 16:07                               ` Bill White
@ 2014-10-31 13:24                               ` Jacob Sparre Andersen
  2 siblings, 0 replies; 97+ messages in thread
From: Jacob Sparre Andersen @ 2014-10-31 13:24 UTC (permalink / raw)


Maciej Sobczak wrote:

> On the other hand, I can imagine a world where programmers are covered
> by civil responsibility insurance (just like in many other industries)
> and insurance companies will offer insurance discounts to better
> programmers (just as they do to people with good car driving history
> or with no smoking habits, etc.).

I think this is an interesting idea.  It seems to work in other fields,
so why not in software development.

Greetings,

Jacob
-- 
»And what about homo sapiens?
 Yes, we think that would be a very good idea ...« -- not Gandhi

^ permalink raw reply	[flat|nested] 97+ messages in thread

* C versus Ada (once again :-)), was: Re: F-22 ADA Programming
  2014-10-31  9:41                                   ` Georg Bauhaus
  2014-10-31 12:51                                     ` Brad Moore
@ 2014-11-01  3:03                                     ` Simon Clubley
  2014-11-01 13:35                                       ` Georg Bauhaus
                                                         ` (2 more replies)
  1 sibling, 3 replies; 97+ messages in thread
From: Simon Clubley @ 2014-11-01  3:03 UTC (permalink / raw)


On 2014-10-31, Georg Bauhaus <bauhaus@futureapps.invalid> wrote:
>
> But here in programming, we keep C as the foundation. We keep our
> backwards compatibility, our pride, our demonstrable consistency of the
> C standard, our group pressure, our dreams of always doing things
> correctly, our stereotypes, the ubiquity of C (self-fulfilling),
> etc. All this happens even in the presence of refactoring IDEs,
> automatic proof systems, or static analysis (really redefining C implicitly),

We keep C because the C compilers generate code to run on everything
out there - and there are always options for each target which don't
restrict what you can do with the generated code unlike GNAT GPL.

> This evidence would definitely allow saying Good Bye to int and *p.
> So I don't believe the continued use of error prone foundations can
> be explained with the help of just the pricing-related attributes of
> economy.
>

When you are building foundation libraries, which by definition are
intended to run on a wide range of platforms/targets, you need to use
an implementation language which is freely available across that wide
range of platforms/targets.

As I keep saying in one way or another:

	Ada: nice language, lousy compiler situation.

Most people here keep focusing on how great Ada is compared to C. You
are right but you have also completely missed the point as that means
nothing without a compiler situation comparable to C's if you want to
start replacing foundation libraries.

There's also the possibility that Ada may be a step too far for the
average C programmer. Instead we should consider the possibility of
a half-way language which is better (safer) than C but not as strict
as Ada and would have ease of implementation/porting as one of it's
goals.

You can always introduce them to Ada later for the critical stuff after
they have have used this language for the non-critical projects they
would use C for now.

Simon.

-- 
Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
Microsoft: Bringing you 1980s technology to a 21st century world


^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: C versus Ada (once again :-)), was: Re: F-22 ADA Programming
  2014-11-01  3:03                                     ` C versus Ada (once again :-)), was: " Simon Clubley
@ 2014-11-01 13:35                                       ` Georg Bauhaus
  2014-11-03  1:54                                         ` Simon Clubley
  2014-11-01 13:46                                       ` Maciej Sobczak
  2014-11-03 12:40                                       ` Florian Weimer
  2 siblings, 1 reply; 97+ messages in thread
From: Georg Bauhaus @ 2014-11-01 13:35 UTC (permalink / raw)


On 01.11.14 04:03, Simon Clubley wrote:

> We keep C because the C compilers generate code to run on everything
> out there - and there are always options for each target which don't
> restrict what you can do with the generated code unlike GNAT GPL.

Then why not use FSF GNAT?  Because it is not as convenient as
a fully supported compiler?

There is more, though. I am abbreviating by using "freeware" notions
such as no-cost, or <100 price range, no run-time cost,
and no tit-for-tat license. I could have used "gift".

Then, first, many C compilers are not freeware in commercial or closed
source projects. Second, there are fewer freeware run-times for Ada
than there are freeware run-times for C. But, of both there are few.
There is no freeware Ada for iOS right now. There is no workable
freeware Ada for Android right now. This should cover the mass market of
computers for entertainment, communication, and contacts, excluding gaming.

Then, embedded. ARM, AVR, ... does a car count as a development target
of the kind you mention, where there are, allegedly, freeware C
implementations that don't restrict in any way? Side note: AVR chips
are usually programmed using GCC.

> When you are building foundation libraries, which by definition are
> intended to run on a wide range of platforms/targets, you need to use
> an implementation language which is freely available across that wide
> range of platforms/targets.

Which, as outlined, isn't necessarily C, is it?  If you wanted Ada to
target AVR, and be co-operative, just Export subprograms with convention
C, or Standard, and everyone can work with them.

> Instead we should consider the possibility of
> a half-way language which is better (safer) than C but not as strict
> as Ada and would have ease of implementation/porting as one of it's
> goals.

Imagine C++ without int, without char, and without C-pointers (see MISRA for
int,see JSF++ for the latter).
Now replace this part of C++'s foundation with a "modern" type system that is
informed of the benefits of Ada's type system as well as of others that allow
e.g., saturating arithmetic as part of the type system.(*) C++ should be an
interesting formalism if it has tight integration of everything in the language.
If they can get this replacement in the foundations working, everyone can.

__
(*) No! Noo! NOT a library. No. NO!! The. Type. System!!! Damn!



^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: C versus Ada (once again :-)), was: Re: F-22 ADA Programming
  2014-11-01  3:03                                     ` C versus Ada (once again :-)), was: " Simon Clubley
  2014-11-01 13:35                                       ` Georg Bauhaus
@ 2014-11-01 13:46                                       ` Maciej Sobczak
  2014-11-03  2:01                                         ` Simon Clubley
  2014-11-03 12:40                                       ` Florian Weimer
  2 siblings, 1 reply; 97+ messages in thread
From: Maciej Sobczak @ 2014-11-01 13:46 UTC (permalink / raw)


> There's also the possibility that Ada may be a step too far for the
> average C programmer. Instead we should consider the possibility of
> a half-way language which is better (safer) than C but not as strict
> as Ada and would have ease of implementation/porting as one of it's
> goals.

This sentence sounds like a 100% description of C++.
Which also explains the difficulty of Ada in penetrating the business landscape that seems to be already covered and where people are more comfortable with gradual improvements (think Scala vs. Java) than with complete technology replacements.

In other words, C++ and Java do not leave any place for Ada to shine (even if, when given a chance, Ada would shine in every category).

-- 
Maciej Sobczak * http://www.inspirel.com


^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-31 12:52                                     ` Maciej Sobczak
@ 2014-11-02 15:40                                       ` Bill White
  2014-11-02 22:23                                         ` Maciej Sobczak
  0 siblings, 1 reply; 97+ messages in thread
From: Bill White @ 2014-11-02 15:40 UTC (permalink / raw)


On 2014-10-31, Maciej Sobczak <see.my.homepage@gmail.com> wrote:
>
>> > That C++ bugs have more severe consequences than Ada bugs? :-)
>> 
>> Are you kidding me?
>> 
>> Are you not aware that buffer overflows are a major
>
> Yes, I am. And the recent Heartbleed mess is a very good example of why you are both right and wrong at the same time.
> The problem is - most of the buffer overflows that we had to deal with
> were related to foundation infrastructure, which has long historic
> links. Nobody is going to replace those foundations without taking those
> historic links into account - and choosing Ada at the top level does not
> help much if foundations are not replaced. In the context of Heartbleed this
> means that your Ada-based web service (like with AWS) would be compromised
> anyway, because it would use the foundations that are broken, but which you
> would not be willing to reimplement yourself.

You are a master at living with and promoting failure as a lifestyle. Virtually
everything you write screams "We can't, we can't!" Your "examples" have no
connection to reality. They're just setups to prove why the world is coming
to an end. The OpenBSD project got sick enough to throw out OpenSSL and
replace it and with their new 5.6 release have shipped their own modifications.
The work will be ongoing until all the problems in OpenSSL have been gutted and reworked.

You can fix the world one step at a time. And if you don't start now then
your failures are self-inflicted and you're part of the problem. Ada is not
the answer, it's part of the answer. Being aware of how unsafe languages
propose unacceptable risks is a discussion college kids don't even get
into. That has to change. Engineering ethics have to be made part of an
education. 

> Things look different in those deployments where you can control the whole
>stack, like in embedded systems. There, "switching to Ada" is actually
>meaningful and I fully applaud it. Which is actually very relevant and
>viable with most safety critical systems. 

That's my world so I fail to see the necessity of gaining a few weeks
schedule while giving up the ship with crappy third party libraries. We do
everything ourselves and take responsibility for everything with no finger
pointing.

>
>> C and C++ pointers are another area where wild storage references are
>> common and have the same damaging effects as buffer overflows. Things like
>> that just don't happen in Ada and other safe languages.
>
> They also don't happen with appropriate language subsetting, which is a
>valid and widely used strategy in safety critical systems. There is no need
>to abandon the whole language just because you want to get rid of one
>language feature. 

But you do need to get rid of C and C++ because their culture is
broken. They value ease of implementation over correctness. They value
running on everything with a battery more important than doing whatever it
is they're supposed to do well. That culture has to go.

> OK, easy. There is a concept of widely accepted practice (also known as
>"nobody was ever fired for buying IBM"). If all universities teach that
>Java is the best technology and if all companies use it, then it must be an
>accepted practice. Then, just as "nobody was ever fired for buying IBM",
>nobody will be ever sued for writing business systems in Java. 

Java is not pretty but it's still a lot safer than C or C++.


^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-11-02 15:40                                       ` Bill White
@ 2014-11-02 22:23                                         ` Maciej Sobczak
  2014-11-02 22:52                                           ` Peter Chapin
                                                             ` (2 more replies)
  0 siblings, 3 replies; 97+ messages in thread
From: Maciej Sobczak @ 2014-11-02 22:23 UTC (permalink / raw)



> You are a master at living with and promoting failure as a lifestyle.

I did not promote failure in any of my previous posts, so your statement is misplaced. Still, I find it telling and that you have switched to ad-hominem arguments, as it shows that you are running out of technical ones.

> The OpenBSD project got sick enough to throw out OpenSSL and
> replace it and with their new 5.6 release have shipped their own modifications.
> The work will be ongoing until all the problems in OpenSSL have been gutted and reworked.

Excellent. This is exactly what should happen and I applaud it (which falsifies your imagination of my lifestyle).

So what is the language that they have used for implementing their "modifications"?

> Engineering ethics have to be made part of an
> education. 

Great idea, I'm all for it. On this page:

http://en.wikipedia.org/wiki/Engineering

the word "economy" is found in 9 places, every time as a component that is as important as "science". One example is this:

"Engineers use their knowledge of science, mathematics, logic, economics, and appropriate experience or tacit knowledge to find suitable solutions to a problem."

You cannot build any "engineering ethic" construction with any one of these components removed. Economy is part of the equation whether you like it or not. I have already given an example of buying a car. There is a lot of ethics implied in it, but it cannot be done without economy in mind. The same applies to programming, too.

> But you do need to get rid of C and C++ because their culture is
> broken.

The C++ culture is now exploring Mars. I find this "culture" pretty convincing.

> They value ease of implementation over correctness.

The correctness is heavily impaired if the ease of implementation is not encouraged. All safety standards that I'm aware of encourage solutions that are easy to implement (see also the "logic" part of the engineering description above).

> They value
> running on everything

Portability seems to be a valid engineering goal.

> with a battery

No. This is Python's domain. C and C++ are relatively naked.

> more important than doing whatever it
> is they're supposed to do well.

I'm not sure if difficult to implement and not working on existing hardware could be counted as "doing well".

> That culture has to go.

It's not going anywhere.

> Java is not pretty but it's still a lot safer than C or C++.

Java introduces more problems than it solves - that's why C++ is now on Mars while Java had to stay on Earth. And that's also why you can find C++ in safety-related deployments (to the highest levels of criticality), whereas you are not likely to find Java there anytime soon.
Unless you want failure to be part of your lifestyle...

Actually, as I have already written in a similar discussion here some time ago, it is not C++ which is a biggest enemy of Ada (believe it or not, C++ programmers are the only ones who are likely to become Ada recruits) - the biggest and most dangerous enemy of Ada is Java, which makes Ada and C++ look like close friends. And the only way for Ada to survive is to stop blindly fighting with C++, as the reasons to fight are no longer valid today. This is the part that you seem to be missing.

-- 
Maciej Sobczak * http://www.inspirel.com

^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-11-02 22:23                                         ` Maciej Sobczak
@ 2014-11-02 22:52                                           ` Peter Chapin
  2014-11-03  1:36                                           ` Simon Clubley
  2014-11-03 19:04                                           ` Laurent
  2 siblings, 0 replies; 97+ messages in thread
From: Peter Chapin @ 2014-11-02 22:52 UTC (permalink / raw)


On Sun, 2 Nov 2014, Maciej Sobczak wrote:

> Actually, as I have already written in a similar discussion here some 
> time ago, it is not C++ which is a biggest enemy of Ada (believe it or 
> not, C++ programmers are the only ones who are likely to become Ada 
> recruits) - the biggest and most dangerous enemy of Ada is Java, which 
> makes Ada and C++ look like close friends.

I've often thought that Ada and C++ have more commonality than 
differences. Both target systems programming and yet provide tools for 
building high level abstractions. Both have largely similar feature sets 
with a few tweaks here and there. Both are "value oriented" and require 
the programmer to do explicit things to manipulate objects by reference 
(compare: Java). I tell my students that "anywhere it is reasonable to 
deploy C++ it would be reasonable to deploy Ada and vice-versa." This is 
from a technical standpoint not a social, political, or economic one.

Of course Ada emphasizes safety whereas I would say C++ emphasizes 
performance. C++ maintains the C legacy where as Ada "only" needs to be 
worried about being compatible with itself. There are differences in the 
details. But compared with, say, Python or Haskell or even Java, C++ and 
Ada might as well be brothers.

Peter


^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-11-02 22:23                                         ` Maciej Sobczak
  2014-11-02 22:52                                           ` Peter Chapin
@ 2014-11-03  1:36                                           ` Simon Clubley
  2014-11-03 19:04                                           ` Laurent
  2 siblings, 0 replies; 97+ messages in thread
From: Simon Clubley @ 2014-11-03  1:36 UTC (permalink / raw)


On 2014-11-02, Maciej Sobczak <see.my.homepage@gmail.com> wrote:
>
>> They value
>> running on everything
>
> Portability seems to be a valid engineering goal.
>
>> with a battery
>
> No. This is Python's domain. C and C++ are relatively naked.
>

In what I think is the OP's case, C is way more portable than Python
because it can be used for things that Python will never run on such
as small microcontrollers. I think that's what the OP meant with the
"battery" reference.

However, the OP is out of touch with reality when saying this level of
portability is a bad thing. This level of portability is required in
the real world and with the right language, and widely supported
compilers, we should be able to have wide ranging portability _and_
a safer programming ecosystem.

Simon.

-- 
Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
Microsoft: Bringing you 1980s technology to a 21st century world

^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: C versus Ada (once again :-)), was: Re: F-22 ADA Programming
  2014-11-01 13:35                                       ` Georg Bauhaus
@ 2014-11-03  1:54                                         ` Simon Clubley
  2014-11-03  9:42                                           ` Georg Bauhaus
                                                             ` (2 more replies)
  0 siblings, 3 replies; 97+ messages in thread
From: Simon Clubley @ 2014-11-03  1:54 UTC (permalink / raw)


On 2014-11-01, Georg Bauhaus <bauhaus@futureapps.invalid> wrote:
> On 01.11.14 04:03, Simon Clubley wrote:
>
>> We keep C because the C compilers generate code to run on everything
>> out there - and there are always options for each target which don't
>> restrict what you can do with the generated code unlike GNAT GPL.
>
> Then why not use FSF GNAT?  Because it is not as convenient as
> a fully supported compiler?
>

I _only_ use FSF GNAT and not ACT's GPL version. :-) The point you are
missing is that just because there is C language support within the
FSF kit, it doesn't mean there is viable Ada support.

Two good examples are ARM and PIC32. Luke's done some good work in
this area, but the last time I checked (a year or two ago) he was
having problems with things breaking between gcc versions and getting
gcc to build for these targets seemed way more fragile than it should
be.

There are also the specialist microcontrollers which don't have Ada
compilers but do have C compilers. A popular example would be the
8-bit PICs or (less mainstream) the smaller microcontrollers from
Freescale.

> There is more, though. I am abbreviating by using "freeware" notions
> such as no-cost, or <100 price range, no run-time cost,
> and no tit-for-tat license. I could have used "gift".
>
> Then, first, many C compilers are not freeware in commercial or closed
> source projects. Second, there are fewer freeware run-times for Ada
> than there are freeware run-times for C. But, of both there are few.
> There is no freeware Ada for iOS right now. There is no workable
> freeware Ada for Android right now. This should cover the mass market of
> computers for entertainment, communication, and contacts, excluding gaming.
>

I thought someone had brought up an Ada cross compiler for Android by
using a FreeBSD host ?

Are you saying it doesn't work ? (I'm currently getting into the world
of Android development and once I understand it enough using the supported
languages, I was going to have a look at Ada on Android).

BTW, I was amused to see someone has got Fortran code running on an
Android target. :-)

> Then, embedded. ARM, AVR, ... does a car count as a development target
> of the kind you mention, where there are, allegedly, freeware C
> implementations that don't restrict in any way? Side note: AVR chips
> are usually programmed using GCC.
>

Even in a specialist environment such as the one you mention, you
should usually have a C compiler available which means for the
non-critical stuff you can always import existing C language libraries
from other environments.

Will you always have an Ada compiler available in this case to import
existing Ada libraries ?

Writing libraries in C gives you portability and general flexibility
options you don't currently have with Ada. I wish that wasn't the case,
but that's the reality.

Simon.

-- 
Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
Microsoft: Bringing you 1980s technology to a 21st century world

^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: C versus Ada (once again :-)), was: Re: F-22 ADA Programming
  2014-11-01 13:46                                       ` Maciej Sobczak
@ 2014-11-03  2:01                                         ` Simon Clubley
  2014-11-03  9:10                                           ` Maciej Sobczak
  2014-11-03 12:09                                           ` Luke A. Guest
  0 siblings, 2 replies; 97+ messages in thread
From: Simon Clubley @ 2014-11-03  2:01 UTC (permalink / raw)


On 2014-11-01, Maciej Sobczak <see.my.homepage@gmail.com> wrote:
>> There's also the possibility that Ada may be a step too far for the
>> average C programmer. Instead we should consider the possibility of
>> a half-way language which is better (safer) than C but not as strict
>> as Ada and would have ease of implementation/porting as one of it's
>> goals.
>
> This sentence sounds like a 100% description of C++.

It would also be nice if it applied to some scaled up version of a Wirth
style language such as Oberon with more Ada style syntax and a simplified
(and less strict) version of Ada's type system added.

Not as safe as Ada, but potentially much safer than C.

The ease of implementation comment refers to the compiler itself BTW,
so it would be easy to bring up the compiler (either native hosted or
as a cross compiler) for a new environment.

Simon.

-- 
Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
Microsoft: Bringing you 1980s technology to a 21st century world

^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: C versus Ada (once again :-)), was: Re: F-22 ADA Programming
  2014-11-03  2:01                                         ` Simon Clubley
@ 2014-11-03  9:10                                           ` Maciej Sobczak
  2014-11-03 12:09                                           ` Luke A. Guest
  1 sibling, 0 replies; 97+ messages in thread
From: Maciej Sobczak @ 2014-11-03  9:10 UTC (permalink / raw)



> > This sentence sounds like a 100% description of C++.
> 
> It would also be nice if it applied to some scaled up version of a Wirth
> style language

Why? What problem would that solve? There are 10.000 programming languages already and some of them are even "nice", so you need to have stronger selling points to get noticed. Creating 10.001-st language that will be neglected by everybody is not worth the effort (that's the economy part of engineering).

-- 
Maciej Sobczak * http://www.inspirel.com

^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: C versus Ada (once again :-)), was: Re: F-22 ADA Programming
  2014-11-03  1:54                                         ` Simon Clubley
@ 2014-11-03  9:42                                           ` Georg Bauhaus
  2014-11-03 12:07                                           ` Luke A. Guest
  2014-11-03 14:26                                           ` Brian Drummond
  2 siblings, 0 replies; 97+ messages in thread
From: Georg Bauhaus @ 2014-11-03  9:42 UTC (permalink / raw)


On 03.11.14 02:54, Simon Clubley wrote:
> Even in a specialist environment such as the one you mention, you
> should usually have a C compiler available which means for the
> non-critical stuff you can always import existing C language libraries
> from other environments.

Assuming "specialist environments" such as the workplace ...

> Will you always have an Ada compiler available in this case to import
> existing Ada libraries ?

... there currently are fewer Ada environments than there are
C environments, and ...

> Writing libraries in C gives you portability and general flexibility
> options you don't currently have with Ada. I wish that wasn't the case,
> but that's the reality.

... then there appears to be a personal incentive for continued use
of the C vehicle, even when the writer of the C library in question
adds abstractions that really are "flexible" emulations of language
features that are built-in elsewhere, uses tools that go way beyond
what a C compiler does, and adds a special touch of magical
configuration software called automess^H^H^H^Hconf. (Defeating the
purpose of a portable library, but that's another topic.)

This, then, is how the business-centric attitude, the economic aspect
at the individual level, contributes to C forever, unless someone "above"
sees an incentive to intervene, and stops this practice of consultancy
at its best ;-)

Maybe a SPARK profile run-time can help get more environments in place?


^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: C versus Ada (once again :-)), was: Re: F-22 ADA Programming
  2014-11-03  1:54                                         ` Simon Clubley
  2014-11-03  9:42                                           ` Georg Bauhaus
@ 2014-11-03 12:07                                           ` Luke A. Guest
  2014-11-04  2:01                                             ` Simon Clubley
  2014-11-03 14:26                                           ` Brian Drummond
  2 siblings, 1 reply; 97+ messages in thread
From: Luke A. Guest @ 2014-11-03 12:07 UTC (permalink / raw)


Simon Clubley <clubley@remove_me.eisner.decus.org-Earth.UFP> wrote:

> Two good examples are ARM and PIC32. Luke's done some good work in

I never got to pic32, but it's just nips and if mops have finally added the
patches to GCC in the Fsf tree then it should be ok and at the same level
as any other arch-elf target.

> this area, but the last time I checked (a year or two ago) he was
> having problems with things breaking between gcc versions and getting
> gcc to build for these targets seemed way more fragile than it should
> be.

It's been a while for me. But it's always been a bitch and it shouldn't be.


>> There is no freeware Ada for iOS right now. There is no workable
>> freeware Ada for Android right now. This should cover the mass market of
>> computers for entertainment, communication, and contacts, excluding gaming.
>> 
> 
> I thought someone had brought up an Ada cross compiler for Android by
> using a FreeBSD host ?

John Marino did that, I used his patches to get it to work on linux, but
they didn't come over straight, I had to fiddle with it as BSD /= Linux.

> Are you saying it doesn't work ? (I'm currently getting into the world
> of Android development and once I understand it enough using the supported
> languages, I was going to have a look at Ada on Android).

It should do. What you won't get are bindings to the Android API.

> BTW, I was amused to see someone has got Fortran code running on an
> Android target. :-)

And people think we're wasting our time with Ada!

Luke


^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: C versus Ada (once again :-)), was: Re: F-22 ADA Programming
  2014-11-03  2:01                                         ` Simon Clubley
  2014-11-03  9:10                                           ` Maciej Sobczak
@ 2014-11-03 12:09                                           ` Luke A. Guest
  1 sibling, 0 replies; 97+ messages in thread
From: Luke A. Guest @ 2014-11-03 12:09 UTC (permalink / raw)


Simon Clubley <clubley@remove_me.eisner.decus.org-Earth.UFP> wrote:
> 
> It would also be nice if it applied to some scaled up version of a Wirth
> style language such as Oberon with more Ada style syntax and a simplified
> (and less strict) version of Ada's type system added.
> 
> Not as safe as Ada, but potentially much safer than C.
> 
> The ease of implementation comment refers to the compiler itself BTW,
> so it would be easy to bring up the compiler (either native hosted or
> as a cross compiler) for a new environment.

If you want easy to bring up, then you should implement it in C++ or C.

Luke

^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: C versus Ada (once again :-)), was: Re: F-22 ADA Programming
  2014-11-01  3:03                                     ` C versus Ada (once again :-)), was: " Simon Clubley
  2014-11-01 13:35                                       ` Georg Bauhaus
  2014-11-01 13:46                                       ` Maciej Sobczak
@ 2014-11-03 12:40                                       ` Florian Weimer
  2014-11-03 21:58                                         ` Shark8
  2 siblings, 1 reply; 97+ messages in thread
From: Florian Weimer @ 2014-11-03 12:40 UTC (permalink / raw)


* Simon Clubley:

> As I keep saying in one way or another:
>
> 	Ada: nice language, lousy compiler situation.

If you are trying to parallelize your programs for performance
reasons, Ada (as standardized) is not such a nice language anymore
because it lacks a modern memory model (which reflects the variations
of existing hardware) and access to various forms of atomic
instructions with well-defined properties.


^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: C versus Ada (once again :-)), was: Re: F-22 ADA Programming
  2014-11-03  1:54                                         ` Simon Clubley
  2014-11-03  9:42                                           ` Georg Bauhaus
  2014-11-03 12:07                                           ` Luke A. Guest
@ 2014-11-03 14:26                                           ` Brian Drummond
  2 siblings, 0 replies; 97+ messages in thread
From: Brian Drummond @ 2014-11-03 14:26 UTC (permalink / raw)


On Mon, 03 Nov 2014 01:54:38 +0000, Simon Clubley wrote:

> On 2014-11-01, Georg Bauhaus <bauhaus@futureapps.invalid> wrote:

>> There is no freeware Ada for iOS right now. There is no workable
>> freeware Ada for Android right now. This should cover the mass market
>> of computers for entertainment, communication, and contacts, excluding
>> gaming.
>>
> I thought someone had brought up an Ada cross compiler for Android by
> using a FreeBSD host ?
> 
> Are you saying it doesn't work ? (I'm currently getting into the world
> of Android development and once I understand it enough using the
> supported languages, I was going to have a look at Ada on Android).

The compiler (John Marino's, as Luke says) works fine and apparently 
passes the full ACATS suit. I have built it and made simple command line 
applications, which worked. (Same is true of the Fortran compiler you 
noted)

The "workable" part of Georg's statement comes from the fact that command 
line apps on Android are ... kinda missing the point. 

At that time (2011) integration with the GUI was ... painful would be the 
polite way to put it. And I've not seen any evidence that has changed in 
the last 3 years.

- Brian


^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-11-02 22:23                                         ` Maciej Sobczak
  2014-11-02 22:52                                           ` Peter Chapin
  2014-11-03  1:36                                           ` Simon Clubley
@ 2014-11-03 19:04                                           ` Laurent
  2 siblings, 0 replies; 97+ messages in thread
From: Laurent @ 2014-11-03 19:04 UTC (permalink / raw)


Am Sonntag, 2. November 2014 23:23:15 UTC+1 schrieb Maciej Sobczak:

> Java introduces more problems than it solves - that's why C++ is now on Mars while Java had to stay on Earth. And that's also why you can find C++ in safety-related deployments (to the highest levels of criticality), whereas you are not likely to find Java there anytime soon.
> Unless you want failure to be part of your lifestyle...

> Maciej Sobczak * http://www.inspirel.com

Not sure if my info is correct, don't remember where I read that but I think there are ATMs and medical equipment running under Java. Don't know if that is a wise choice.

Only a thought of mine.

Laurent


^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: C versus Ada (once again :-)), was: Re: F-22 ADA Programming
  2014-11-03 12:40                                       ` Florian Weimer
@ 2014-11-03 21:58                                         ` Shark8
  2014-11-03 22:28                                           ` Dmitry A. Kazakov
  2014-11-04 13:42                                           ` Florian Weimer
  0 siblings, 2 replies; 97+ messages in thread
From: Shark8 @ 2014-11-03 21:58 UTC (permalink / raw)


On 03-Nov-14 05:40, Florian Weimer wrote:
> * Simon Clubley:
>
>> As I keep saying in one way or another:
>>
>> 	Ada: nice language, lousy compiler situation.
>
> If you are trying to parallelize your programs for performance
> reasons, Ada (as standardized) is not such a nice language anymore
> because it lacks a modern memory model (which reflects the variations
> of existing hardware) and access to various forms of atomic
> instructions with well-defined properties.
>

Isn't the atomic instruction thing properly recognized as platform 
dependent? If that's the case, then should it be part of Ada, or would 
it be acceptable to have a machine-language (e.g. System.Machine_Code) 
insert for handling it in the implementation part of some package?

(Would such atomic instructions need to be incorporated at the Run-time 
level?)


^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: C versus Ada (once again :-)), was: Re: F-22 ADA Programming
  2014-11-03 21:58                                         ` Shark8
@ 2014-11-03 22:28                                           ` Dmitry A. Kazakov
  2014-11-04 13:42                                           ` Florian Weimer
  1 sibling, 0 replies; 97+ messages in thread
From: Dmitry A. Kazakov @ 2014-11-03 22:28 UTC (permalink / raw)


On Mon, 03 Nov 2014 14:58:06 -0700, Shark8 wrote:

> On 03-Nov-14 05:40, Florian Weimer wrote:
>> * Simon Clubley:
>>
>>> As I keep saying in one way or another:
>>>
>>> 	Ada: nice language, lousy compiler situation.
>>
>> If you are trying to parallelize your programs for performance
>> reasons, Ada (as standardized) is not such a nice language anymore
>> because it lacks a modern memory model (which reflects the variations
>> of existing hardware) and access to various forms of atomic
>> instructions with well-defined properties.
> 
> Isn't the atomic instruction thing properly recognized as platform 
> dependent?

Instruction is a wrong term, should be "atomic primitive" instead.

> If that's the case, then should it be part of Ada, or would 
> it be acceptable to have a machine-language (e.g. System.Machine_Code) 
> insert for handling it in the implementation part of some package?

No, that would be practically useless.

Atomic primitives must be machine-independent. That is, the compiler would
select the most appropriate implementation for.

For example, consider the atomic increment primitive (of some package
Interfaces type, e.g. Unsigned_64). When there is a machine instruction the
compiler uses it, otherwise it falls back to a protected operation or OS
calls.
 
> (Would such atomic instructions need to be incorporated at the Run-time 
> level?)

Only if the implementation is based on OS calls. E.g. using Windows API
function InterlockedIncrement.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: C versus Ada (once again :-)), was: Re: F-22 ADA Programming
  2014-11-03 12:07                                           ` Luke A. Guest
@ 2014-11-04  2:01                                             ` Simon Clubley
  0 siblings, 0 replies; 97+ messages in thread
From: Simon Clubley @ 2014-11-04  2:01 UTC (permalink / raw)


On 2014-11-03, Luke A  Guest <laguest@archeia.com> wrote:
> Simon Clubley <clubley@remove_me.eisner.decus.org-Earth.UFP> wrote:
>
>> Two good examples are ARM and PIC32. Luke's done some good work in
>
> I never got to pic32, but it's just nips and if mops have finally added the
> patches to GCC in the Fsf tree then it should be ok and at the same level
> as any other arch-elf target.
>

My mistake. :-) (Like I said, it's been a couple of years since I last
looked at your work). I do remember you saying you were looking at
targeting the PIC32 after your ARM work.

>> this area, but the last time I checked (a year or two ago) he was
>> having problems with things breaking between gcc versions and getting
>> gcc to build for these targets seemed way more fragile than it should
>> be.
>
> It's been a while for me. But it's always been a bitch and it shouldn't be.
>

You will get absolutely no argument from me on that one.

>
>> Are you saying it doesn't work ? (I'm currently getting into the world
>> of Android development and once I understand it enough using the supported
>> languages, I was going to have a look at Ada on Android).
>
> It should do. What you won't get are bindings to the Android API.
>

Thanks. That's quite a bit of the way down the road however; I'm
currently spending my "Android time" learning to write extensions for
Firefox Mobile to add functionality I miss from desktop Firefox.

BTW, there's one hell of a difference between the formal, present the
background and conceptual material upfront world of Ada, and the
cut and paste learn by example world of Firefox addons...

I must say I prefer the Ada approach as you get a solid grounding in
the material as hand. I guess doing lots of background reading before
designing and implementing something is considered "old fashioned"
these days however.

Simon.

-- 
Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
Microsoft: Bringing you 1980s technology to a 21st century world

^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: C versus Ada (once again :-)), was: Re: F-22 ADA Programming
  2014-11-03 21:58                                         ` Shark8
  2014-11-03 22:28                                           ` Dmitry A. Kazakov
@ 2014-11-04 13:42                                           ` Florian Weimer
  2014-11-04 15:01                                             ` G.B.
  1 sibling, 1 reply; 97+ messages in thread
From: Florian Weimer @ 2014-11-04 13:42 UTC (permalink / raw)


* Shark8:

>> If you are trying to parallelize your programs for performance
>> reasons, Ada (as standardized) is not such a nice language anymore
>> because it lacks a modern memory model (which reflects the variations
>> of existing hardware) and access to various forms of atomic
>> instructions with well-defined properties.
>>
>
> Isn't the atomic instruction thing properly recognized as platform
> dependent?

The actual implementation is platform-dependent, but the C11 memory
model abstracts over it.  You use the <stdatomic.h> functionality
which you need to implement your parallel algorithm, and the C
implementation will select something matching for the target
architecture (either an exact match, or a stronger (and slower)
variant).

> If that's the case, then should it be part of Ada, or would
> it be acceptable to have a machine-language (e.g. System.Machine_Code)
> insert for handling it in the implementation part of some package?

It's difficult to get that right because it needs a lot of knowledge
of the target architecture and its variations.  If you stick to the
C11 memory model (or C++11 variant, they are supposed to be
compatible), you only need to learn that, and the C implementation
will map it to the hardware.

> (Would such atomic instructions need to be incorporated at the
> Run-time level?)

Some systems need kernel calls for certain barriers, yes.  But Ada
code needs to issue these barriers today, so support already has to be
present.

The main challenge is to expose weaker (and therefore more efficient)
synchronization primitives.


^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: C versus Ada (once again :-)), was: Re: F-22 ADA Programming
  2014-11-04 13:42                                           ` Florian Weimer
@ 2014-11-04 15:01                                             ` G.B.
  2014-11-04 15:50                                               ` Florian Weimer
  0 siblings, 1 reply; 97+ messages in thread
From: G.B. @ 2014-11-04 15:01 UTC (permalink / raw)


On 04.11.14 14:42, Florian Weimer wrote:
> The main challenge is to expose weaker (and therefore more efficient)
> synchronization primitives.

In view of the work on parallel loops of current Ada
standardization: what algorithms will remain as
not expressible with the help of parallel loops?
So that they will need more than Volatile and a fast
Suspension_Object in order to be just as efficient?

^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: C versus Ada (once again :-)), was: Re: F-22 ADA Programming
  2014-11-04 15:01                                             ` G.B.
@ 2014-11-04 15:50                                               ` Florian Weimer
  0 siblings, 0 replies; 97+ messages in thread
From: Florian Weimer @ 2014-11-04 15:50 UTC (permalink / raw)


* G. B.:

> On 04.11.14 14:42, Florian Weimer wrote:
>> The main challenge is to expose weaker (and therefore more efficient)
>> synchronization primitives.
>
> In view of the work on parallel loops of current Ada
> standardization: what algorithms will remain as
> not expressible with the help of parallel loops?

Anything that merely updates some global datastructure instead
processing large chunks of it, e.g., a storage pool, or a concurrent
hash table used for session IDs in a multi-threaded server
application.

> So that they will need more than Volatile and a fast
> Suspension_Object in order to be just as efficient?

No, for large multiprocessors, you need weaker ordering constraints (I
think Ada's signaling between tasks implies sequentially consistent
ordering, which is the most expensive variant), and it's best to avoid
suspension objects and other heavyweight synchronization primitives as
far as possible.

^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-28 21:06               ` Jeffrey Carter
  2014-10-28 21:32                 ` Simon Clubley
  2014-10-28 21:37                 ` Adam Beneschan
@ 2014-11-08  4:45                 ` Randy Brukardt
  2014-11-08 23:43                   ` Shark8
  2 siblings, 1 reply; 97+ messages in thread
From: Randy Brukardt @ 2014-11-08  4:45 UTC (permalink / raw)


"Jeffrey Carter" <spam.jrcarter.not@spam.not.acm.org> wrote in message 
news:m2p0g5$4d0$1@dont-email.me...
...
> Denying one's own comfort or convenience for the greater good is generally 
> the
> essence of ethical problems. As such, rather than use an error- and
> security-vulnerability-filled browser, you should deny yourself the
> functionality while you write a better browser in Ada and give it away.

FYI,, I seriously considered doing that years ago. I built my own mail and 
web servers in Ada for this reason, and browsers were the next frontier. The 
effort of a passable rendering engine stopped me (I wasn't going to support 
Javascript or plugins of any kinds, as they were precisely what I wanted to 
avoid in the first place, so the effort there was irrelevant).

                                     Randy.


^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-30  8:56                                 ` Dmitry A. Kazakov
@ 2014-11-08  4:52                                   ` Randy Brukardt
  2014-11-08  8:12                                     ` Dmitry A. Kazakov
  0 siblings, 1 reply; 97+ messages in thread
From: Randy Brukardt @ 2014-11-08  4:52 UTC (permalink / raw)


"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message 
news:1i3ybg2vfpww7$.blbdxnclootv$.dlg@40tude.net...
...
> He possibly was. But I wrote about evidently criminal orders, which 
> justify
> actions like public disobedience. Using C++ is not criminal, not even
> amoral. It is only stupid. Stupidity is not a crime.

But why not? Why do we tolerate stupidity? It's the root of much of our 
(humanities') trouble...

                       Randy.


^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-11-08  4:52                                   ` Randy Brukardt
@ 2014-11-08  8:12                                     ` Dmitry A. Kazakov
  0 siblings, 0 replies; 97+ messages in thread
From: Dmitry A. Kazakov @ 2014-11-08  8:12 UTC (permalink / raw)


On Fri, 7 Nov 2014 22:52:30 -0600, Randy Brukardt wrote:

> "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message 
> news:1i3ybg2vfpww7$.blbdxnclootv$.dlg@40tude.net...
> ...
>> He possibly was. But I wrote about evidently criminal orders, which 
>> justify
>> actions like public disobedience. Using C++ is not criminal, not even
>> amoral. It is only stupid. Stupidity is not a crime.
> 
> But why not? Why do we tolerate stupidity? It's the root of much of our 
> (humanities') trouble...

Per definition. Stupidity and criminality are merely definitions of what
the society [presently] consider criminal and/or stupid. Criminal things
are fought by prosecution. Stupidity is rather lovingly fostered among
electorate, watchers, listeners, buyers etc... (:-))

But seriously, as history had shown many times, it is readiness not to
tolerate which brings us real, fat troubles.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-11-08  4:45                 ` Randy Brukardt
@ 2014-11-08 23:43                   ` Shark8
  2014-11-09  8:39                     ` Simon Wright
  0 siblings, 1 reply; 97+ messages in thread
From: Shark8 @ 2014-11-08 23:43 UTC (permalink / raw)


On 07-Nov-14 21:45, Randy Brukardt wrote:
> "Jeffrey Carter" <spam.jrcarter.not@spam.not.acm.org> wrote in message
> news:m2p0g5$4d0$1@dont-email.me...
> ...
>> Denying one's own comfort or convenience for the greater good is generally
>> the
>> essence of ethical problems. As such, rather than use an error- and
>> security-vulnerability-filled browser, you should deny yourself the
>> functionality while you write a better browser in Ada and give it away.
>
> FYI,, I seriously considered doing that years ago. I built my own mail and
> web servers in Ada for this reason, and browsers were the next frontier. The
> effort of a passable rendering engine stopped me (I wasn't going to support
> Javascript or plugins of any kinds, as they were precisely what I wanted to
> avoid in the first place, so the effort there was irrelevant).
>
>                                       Randy.

Ah, that's rather disappointing -- I should think a solid browser would 
be excellent, as for JavaScript I understand not wanting to write an 
engine for /that/... (I'd actually like to write a Flash-Player, but I 
keep running into little gotchas in the spec and getting discouraged) 
but I think that an Ada-based/Ada-like scripting language would be an 
excellent thing (esp. if it was type-/source-compatible w/ the backend 
[true] Ada) and provided facilities for DSA, modules, versioning on 
modules, and consistency-checks.


^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-11-08 23:43                   ` Shark8
@ 2014-11-09  8:39                     ` Simon Wright
  2014-11-09 20:53                       ` Shark8
  0 siblings, 1 reply; 97+ messages in thread
From: Simon Wright @ 2014-11-09  8:39 UTC (permalink / raw)


Shark8 <OneWingedShark@gmail.com> writes:

> I think that an Ada-based/Ada-like scripting language would be an
> excellent thing

http://sparforte.com ?


^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-11-09  8:39                     ` Simon Wright
@ 2014-11-09 20:53                       ` Shark8
  0 siblings, 0 replies; 97+ messages in thread
From: Shark8 @ 2014-11-09 20:53 UTC (permalink / raw)


On 09-Nov-14 01:39, Simon Wright wrote:
>> I think that an Ada-based/Ada-like scripting language would be an
>> >excellent thing
> http://sparforte.com  ?


I thought Sparforte was more a CLI/Shell[/OS-level] scripting language 
than a web-based one... I could be wrong; maybe I should check it out again.

^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-10-26 23:55     ` David Botton
@ 2014-11-14 22:54       ` rriehle
  2014-11-14 23:46         ` Dennis Lee Bieber
  2014-11-15 21:28         ` Maciej Sobczak
  0 siblings, 2 replies; 97+ messages in thread
From: rriehle @ 2014-11-14 22:54 UTC (permalink / raw)


On Sunday, October 26, 2014 4:55:40 PM UTC-7, David Botton wrote:
> > "Lack of Ada developers" is also a false complaint. 
> 
> There are overall very few developers when you are looking for "local" developers. I am not sure there is another Ada developer in all of South Florida I could hire if I needed :)
> 
> > Generally they want to hire lots of poor developers, since that maximizes profit on cost-plus contracts, and Ada  people tend not to fall into that category.
> 
> There is truth to this, but once they hired the handful of people we know they'd still have tons of seats to fill.
> 
> Also, not every project requires someone with the skill sets many of us have, projects of a large enough size may not justify that many senior level people.
> 
> David Botton

I recall from when I was actively teaching Ada that one large DoD contractor (one of the largest) decided to use C++ instead of Ada.  The reason?   We can hire C++ programmers right out of college.  This is rather strange.  Why would they think that recent  college graduates schooled in a clunky language such as C++, where they wrote mostly toy programs using features that we cannot allow (notice the long list of proscriptions for JSF), who need to be retaught how to use the language safely -- how can they think they are getting any benefit?   I used to ask they, "Why would you choose a programming language that is inherently error-prone and expect an outcome that is error-free?"  Answer: "Go away Richard.  We have made our decision."  

Ada is not that hard to learn.   Probably the most difficult thing to learn in Ada is the rules from Chapter Eight, Visibility Rules.  Those rules are what make Ada unique, and make it a powerful engineering-oriented tool for building dependable software.  Too often, I found, they just wanted to get code working as quickly as possible without too much thought to the dependability issues.  "We can find the problems during testing," is not a good approach to engineering.  Too often, when problems are discovered during testing, the design flaws need to be fixed with the equivalent of some kind of shim -- what I call a "software shim," reminiscent of putting a piece of folded napkin under a wobbly table, instead of creating a precise design from the beginning.   

Until we have software professionals who are also trained to think as-if they were engineers, they will not really appreciate Ada as we would hope they would.

^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-11-14 22:54       ` rriehle
@ 2014-11-14 23:46         ` Dennis Lee Bieber
  2014-11-15  6:43           ` wilson
  2014-11-15 21:28         ` Maciej Sobczak
  1 sibling, 1 reply; 97+ messages in thread
From: Dennis Lee Bieber @ 2014-11-14 23:46 UTC (permalink / raw)


On Fri, 14 Nov 2014 14:54:34 -0800 (PST), rriehle@itu.edu declaimed the
following:

>I recall from when I was actively teaching Ada that one large DoD contractor (one of the largest) decided to use C++ instead of Ada.  The reason?   We can hire C++ programmers right out of college.  This is rather strange.  Why would they think that recent  college graduates schooled in a clunky language such as C++, where they wrote mostly toy programs using features that we cannot allow (notice the long list of proscriptions for JSF), who need to be retaught how to use the language safely -- how can they think they are getting any benefit?   I used to ask they, "Why would you choose a programming language that is inherently error-prone and expect an outcome that is error-free?"  Answer: "Go away Richard.  We have made our decision."  
>

	Well... I was in a program where the "real-time" group (about 30
people, out of 130 in the department) did a study to determine what
language they would use when moving from PDP-11 assembly to a suite of
VAX-11 systems. I don't know what the real arguments were, but they
rejected VAX-11 assembly (fine, it is a different instruction set),
rejected F77 [remember those other 100 employees? we were all skilled in
VAX F77]... They did reject C! (yay, one win).

	They chose DEC Pascal to implement the ground-base real-time system!
Main argument -- they could find Pascal programmers coming out of college
(dates this effort, doesn't it?) Though what a bunch of Turbo-Pascal users
would be capable of on a multiprocessing OS I have no idea (I don't recall
any significant hiring taking place either).

	The decision made when I learned of the "study" I still submitted a
comment to the management emphasizing that we had a significant staff
skilled in F77 with DEC extensions (I once bent the I/O system to do
double-buffered 9-track tape input -- all using F77 constructs!). I also
emphasized that, as long as they were going to go the mile for Pascal, they
should have fallen onto their faces and picked up Ada which was designed
for the type of application they were making, and corrected the flaws of
Pascal.

	Ah well, probably the same contractor -- current initials of LM
-- 
	Wulfraed                 Dennis Lee Bieber         AF6VN
    wlfraed@ix.netcom.com    HTTP://wlfraed.home.netcom.com/

^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-11-14 23:46         ` Dennis Lee Bieber
@ 2014-11-15  6:43           ` wilson
  2014-11-15 17:49             ` Jeffrey Carter
  0 siblings, 1 reply; 97+ messages in thread
From: wilson @ 2014-11-15  6:43 UTC (permalink / raw)


On Fri, 14 Nov 2014 18:46:19 -0500, Dennis Lee Bieber  
<wlfraed@ix.netcom.com> wrote:

> On Fri, 14 Nov 2014 14:54:34 -0800 (PST), rriehle@itu.edu declaimed the
> following:
>
>> I recall from when I was actively teaching Ada that one large DoD  
>> contractor (one of the largest) decided to use C++ instead of Ada.  The  
>> reason?   We can hire C++ programmers right out of college.  This is  
>> rather strange.  Why would they think that recent  college graduates  
>> schooled in a clunky language such as C++, where they wrote mostly toy  
>> programs using features that we cannot allow (notice the long list of  
>> proscriptions for JSF), who need to be retaught how to use the language  
>> safely -- how can they think they are getting any benefit?   I used to  
>> ask they, "Why would you choose a programming language that is  
>> inherently error-prone and expect an outcome that is error-free?"   
>> Answer: "Go away Richard.  We have made our decision."
>>
>
> 	Well... I was in a program where the "real-time" group (about 30
> people, out of 130 in the department) did a study to determine what
> language they would use when moving from PDP-11 assembly to a suite of
> VAX-11 systems. I don't know what the real arguments were, but they
> rejected VAX-11 assembly (fine, it is a different instruction set),
> rejected F77 [remember those other 100 employees? we were all skilled in
> VAX F77]... They did reject C! (yay, one win).
>
> 	They chose DEC Pascal to implement the ground-base real-time system!
> Main argument -- they could find Pascal programmers coming out of college
> (dates this effort, doesn't it?) Though what a bunch of Turbo-Pascal  
> users
> would be capable of on a multiprocessing OS I have no idea (I don't  
> recall
> any significant hiring taking place either).
>
> 	The decision made when I learned of the "study" I still submitted a
> comment to the management emphasizing that we had a significant staff
> skilled in F77 with DEC extensions (I once bent the I/O system to do
> double-buffered 9-track tape input -- all using F77 constructs!). I also
> emphasized that, as long as they were going to go the mile for Pascal,  
> they
> should have fallen onto their faces and picked up Ada which was designed
> for the type of application they were making, and corrected the flaws of
> Pascal.
>
> 	Ah well, probably the same contractor -- current initials of LM


-- When I aaked a DOD contractor in the late 90s why they changed to C++  
the answer was:  We can hire C++ programmers from the local college, but  
they seem incapable of learning Ada.

I wonder how many other languages these "programmers" could learn.


^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-11-15  6:43           ` wilson
@ 2014-11-15 17:49             ` Jeffrey Carter
  0 siblings, 0 replies; 97+ messages in thread
From: Jeffrey Carter @ 2014-11-15 17:49 UTC (permalink / raw)


Do we see a pattern here?

On 11/14/2014 11:43 PM, wilson wrote:
> On Fri, 14 Nov 2014 18:46:19 -0500, Dennis Lee Bieber <wlfraed@ix.netcom.com>
> wrote:
> 
>> On Fri, 14 Nov 2014 14:54:34 -0800 (PST), rriehle@itu.edu declaimed the
>> following:
>>
>>> We can
>>> hire C++ programmers right out of college.
>>
>> Main argument -- they could find Pascal programmers coming out of college
> 
> We can hire C++ programmers from the local college

Cheap, inexperienced

> but they seem
> incapable of learning Ada.

and poor quality

-- 
Jeff Carter
"Gentlemen, you can't fight in here. This is the War Room!"
Dr. Strangelove
30


^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-11-14 22:54       ` rriehle
  2014-11-14 23:46         ` Dennis Lee Bieber
@ 2014-11-15 21:28         ` Maciej Sobczak
  2014-11-16  9:57           ` Jean François Martinez
  1 sibling, 1 reply; 97+ messages in thread
From: Maciej Sobczak @ 2014-11-15 21:28 UTC (permalink / raw)



> I recall from when I was actively teaching Ada that one large DoD contractor (one of the largest) decided to use C++ instead of Ada.  The reason?   We can hire C++ programmers right out of college.  This is rather strange.  Why would they think that recent  college graduates schooled in a clunky language such as C++, where they wrote mostly toy programs using features that we cannot allow (notice the long list of proscriptions for JSF), who need to be retaught how to use the language safely -- how can they think they are getting any benefit?

Good point, but to be fair you should note that it is not possible to pick fresh Ada graduates and put them right in the middle of the safety critical project, either. Do you think that JSF is long? What about "Guidance on the Use of Ada95 in the Development of High Integrity Systems" as a comparative example?
Let's try:

JSF: 141 pages, ~60p are actual rules
Ada guide: 111 pages, ~100 seem to contain actual rules

I don't claim that the above numbers are enough to justify the language choice, but certainly the picture is more complex than what you have described. I agree that fresh graduates have to be re-taught. But this also means that you need the best graduates you can find. Now, if you have a big group of C++ graduates and a very small group of Ada ones, which group is more likely (statistically) to include those best (in terms of, say, IQ or whatever other parameter) that you actually want to employ?
The statistics says that you should be looking in the bigger group and the real life seems to confirm: personally, in my country I know a couple of very good C++ programmers and I know *ZERO* good Ada programmers. Now, where should I be looking for good software engineers?

So, you really want to target the C++ graduates. Now, whether you will spend your (and theirs) costly time teaching them Ada or re-teaching them C++ is another question, but it is not surprising that managers expect the second option to be safer.


> I used to ask they, "Why would you choose a programming language that is inherently error-prone and expect an outcome that is error-free?"

Because in a safety-critical project it is not the language alone that is responsible for the error-free outcome. The whole point of re-teaching the graduates is to move out of that "inherently error-prone" zone.

-- 
Maciej Sobczak * http://www.msobczak.com * http://www.inspirel.com

^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-11-15 21:28         ` Maciej Sobczak
@ 2014-11-16  9:57           ` Jean François Martinez
  2014-11-16 22:26             ` Maciej Sobczak
  0 siblings, 1 reply; 97+ messages in thread
From: Jean François Martinez @ 2014-11-16  9:57 UTC (permalink / raw)


On Sat, 15 Nov 2014 13:28:57 -0800, Maciej Sobczak wrote:


> Because in a safety-critical project it is not the language alone that
> is responsible for the error-free outcome. The whole point of
> re-teaching the graduates is to move out of that "inherently
> error-prone" zone.

I remind you that well-known example of a teacher who required of his 
students the task of programming a network of model trains.  For five 
years no student or group students managed to produce a working solution  
despite the teacher doing an ever larger share of the work (over 50% in 
the last year).  That was in C.

Then he switched to Ada.  First year he got 50% of working solutions.  In 
later years he provided a tiny hardware abstraction (10% of the work) and 
success rate climbed to 90%.

Now let's think about that in terms of probability and statistical tests.
Let's take a conservative hypothesis of 5 groups per year, let's keep the 
50% rate of first year in Ada ignoring the 90% of later years, let's also 
ignore the fact the teacher provided the C students a far larger of the 
job.

Teacher is same using same teaching methods.  University is the same one 
and hasn't suddenly begun attracting far brighter students.

Now we for one side we have a sample of 25 (five per year for five per 
year) teams of students using C none of them managing to complete the 
project vs 25 teams of students using Ada, half of them managing to 
complete the job.

The probability of this being just statistical being due to chance is 
astronomically low.  Just for the fun, use the statistical tests about  
comparing two empirical mean.  Hypothesis of equality will be blown out 
of the water.

So it is either the ___average___ of students at that class became far 
better and brighter from one year to the next  thus explaining the higher 
success rate either the language made a difference.  

                               QED 

And we have no reason to think it was the students that changed.

---

Jean François Martinez



^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-11-16  9:57           ` Jean François Martinez
@ 2014-11-16 22:26             ` Maciej Sobczak
  2014-11-17  0:33               ` Jean François Martinez
  0 siblings, 1 reply; 97+ messages in thread
From: Maciej Sobczak @ 2014-11-16 22:26 UTC (permalink / raw)



> > Because in a safety-critical project it is not the language alone that
> > is responsible for the error-free outcome. The whole point of
> > re-teaching the graduates is to move out of that "inherently
> > error-prone" zone.
> 
> I remind you that well-known example of a teacher

John McCormick. The example is well-known, so I happen to know it. ;-)

I also happen to tell this story everywhere where I try to promote Ada. But it does not work. Why? ...

>                                QED 

... Perhaps because it says something about the language choice for the student project (short-term and completely decoupled from anything else that the student did or will do later on), but very little about the case of actual projects where all possible parameters are completely different, starting from "it was not us who started it" and finishing with "and what I will do with it after the project ends?".

> And we have no reason to think it was the students that changed.

Those students are now busy writing C++ or Java in the industry. Statistically, they even like it.
This is exactly the point that you got spot on: the students did not change. :-(

-- 
Maciej Sobczak * http://www.msobczak.com * http://www.inspirel.com

^ permalink raw reply	[flat|nested] 97+ messages in thread

* Re: F-22 ADA Programming
  2014-11-16 22:26             ` Maciej Sobczak
@ 2014-11-17  0:33               ` Jean François Martinez
  0 siblings, 0 replies; 97+ messages in thread
From: Jean François Martinez @ 2014-11-17  0:33 UTC (permalink / raw)


On Sun, 16 Nov 2014 14:26:50 -0800, Maciej Sobczak wrote:

>> > Because in a safety-critical project it is not the language alone
>> > that is responsible for the error-free outcome. The whole point of
>> > re-teaching the graduates is to move out of that "inherently
>> > error-prone" zone.
>> 
>> I remind you that well-known example of a teacher
> 
> John McCormick. The example is well-known, so I happen to know it. ;-)
> 

I never supposed you didn't know it.  :)  What I wanted was to bring your 
attention on the mathematical aspect of it: when you have two samples of 
size 25, one of them composed entirely of black balls and another one 
being 50% black balls and 50% white you can reject the hypothesis of 
Expected value being equal(since I don't know if English is your 
mathematical language http://en.wikipedia.org/wiki/Expected_value) and 
the difference between the empirical means being due to bad luck with the 
sampling

So Phase2_Student + Ada is blowing out of the water Phase1_Student + C 
that despite the fact I "cheated" (eg discarding the 90% success rates of 
following years) in order to favor the C side.  So since we have no 
reason to believe Phase2_Students are _that_ superior to the Phase_1 one, 
we can "simplify the equation by removing the student factor => The 
language made a difference.

I insist this is not one student (or team) getting a better result so we 
could argue he is just brighter.  It is a sample of at least 25 vs 
another sample of at least 25.  And we didn't pit students at a 
university attracting the best of  the best of the best in the world 
against one with average or mediocre students.  It 
was same university getting students of roughly same quality from one 
year to the other.

---

Jean François Martinez



^ permalink raw reply	[flat|nested] 97+ messages in thread

end of thread, other threads:[~2014-11-17  0:33 UTC | newest]

Thread overview: 97+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-10-26 18:31 F-22 ADA Programming nathandsash
2014-10-26 19:02 ` Martyn Pike
2014-10-26 21:20 ` David Botton
2014-10-26 23:24   ` Jeffrey Carter
2014-10-26 23:55     ` David Botton
2014-11-14 22:54       ` rriehle
2014-11-14 23:46         ` Dennis Lee Bieber
2014-11-15  6:43           ` wilson
2014-11-15 17:49             ` Jeffrey Carter
2014-11-15 21:28         ` Maciej Sobczak
2014-11-16  9:57           ` Jean François Martinez
2014-11-16 22:26             ` Maciej Sobczak
2014-11-17  0:33               ` Jean François Martinez
2014-10-27  0:13     ` Robert A Duff
2014-10-27  0:31       ` David Botton
2014-10-27 10:17         ` Georg Bauhaus
2014-10-27 10:47           ` J-P. Rosen
2014-10-27 15:06         ` Adam Beneschan
2014-10-27 22:32           ` Randy Brukardt
2014-10-27  6:28       ` Pascal Obry
2014-10-27 15:04     ` Adam Beneschan
2014-10-27 15:17       ` Björn Lundin
2014-10-27 15:41       ` Maciej Sobczak
2014-10-27 16:01         ` Robert A Duff
2014-10-27 20:16         ` Adam Beneschan
2014-10-28  8:45         ` Natasha Kerensikova
2014-10-28 11:58           ` Bill White
2014-10-28 14:56             ` Adam Beneschan
2014-10-28 19:36               ` Bill White
2014-10-28 18:29           ` Jeffrey Carter
2014-10-28 18:37             ` Adam Beneschan
2014-10-28 19:14               ` David Botton
2014-10-28 21:06               ` Jeffrey Carter
2014-10-28 21:32                 ` Simon Clubley
2014-10-28 21:37                 ` Adam Beneschan
2014-10-28 23:59                   ` Jeffrey Carter
2014-10-29  0:34                     ` Adam Beneschan
2014-10-29  5:24                       ` Jeffrey Carter
2014-10-29  8:37                         ` Dmitry A. Kazakov
2014-10-29 17:20                           ` Jeffrey Carter
2014-10-29 20:43                             ` Dmitry A. Kazakov
2014-10-29 20:55                               ` Jeffrey Carter
2014-10-29 21:40                               ` Georg Bauhaus
2014-10-30  8:56                                 ` Dmitry A. Kazakov
2014-11-08  4:52                                   ` Randy Brukardt
2014-11-08  8:12                                     ` Dmitry A. Kazakov
2014-10-30 15:38                             ` Maciej Sobczak
2014-10-30 15:49                               ` Alan Jump
2014-10-30 22:33                                 ` Dennis Lee Bieber
2014-10-30 23:13                                   ` Jeffrey Carter
2014-10-30 16:07                               ` Bill White
2014-10-30 22:37                                 ` Maciej Sobczak
2014-10-31  9:41                                   ` Georg Bauhaus
2014-10-31 12:51                                     ` Brad Moore
2014-11-01  3:03                                     ` C versus Ada (once again :-)), was: " Simon Clubley
2014-11-01 13:35                                       ` Georg Bauhaus
2014-11-03  1:54                                         ` Simon Clubley
2014-11-03  9:42                                           ` Georg Bauhaus
2014-11-03 12:07                                           ` Luke A. Guest
2014-11-04  2:01                                             ` Simon Clubley
2014-11-03 14:26                                           ` Brian Drummond
2014-11-01 13:46                                       ` Maciej Sobczak
2014-11-03  2:01                                         ` Simon Clubley
2014-11-03  9:10                                           ` Maciej Sobczak
2014-11-03 12:09                                           ` Luke A. Guest
2014-11-03 12:40                                       ` Florian Weimer
2014-11-03 21:58                                         ` Shark8
2014-11-03 22:28                                           ` Dmitry A. Kazakov
2014-11-04 13:42                                           ` Florian Weimer
2014-11-04 15:01                                             ` G.B.
2014-11-04 15:50                                               ` Florian Weimer
2014-10-31 10:11                                   ` Bill White
2014-10-31 12:52                                     ` Maciej Sobczak
2014-11-02 15:40                                       ` Bill White
2014-11-02 22:23                                         ` Maciej Sobczak
2014-11-02 22:52                                           ` Peter Chapin
2014-11-03  1:36                                           ` Simon Clubley
2014-11-03 19:04                                           ` Laurent
2014-10-31 13:24                               ` Jacob Sparre Andersen
2014-11-08  4:45                 ` Randy Brukardt
2014-11-08 23:43                   ` Shark8
2014-11-09  8:39                     ` Simon Wright
2014-11-09 20:53                       ` Shark8
2014-10-28 19:18             ` Simon Clubley
2014-10-27 16:34       ` David Botton
2014-10-27 16:51         ` brbarkstrom
2014-10-27 18:03           ` G.B.
2014-10-27 22:06             ` Simon Wright
2014-10-28  9:40               ` Georg Bauhaus
2014-10-27 20:06         ` Adam Beneschan
2014-10-27 20:21           ` David Botton
2014-10-28 11:34       ` tonyg
2014-10-27 17:01     ` Pascal Obry
2014-10-27  4:53 ` Jerry Petrey
2014-10-29  1:49   ` F-35 (was:F-22 ADA Programming) Robert Love
2014-10-30  9:01     ` Frédéric Praca
2014-10-30  9:07       ` Frédéric Praca

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox