Re: Software Engineering Ethics

From: Colin Paul Gloster (Colin_Paul_Gloster_at_ACM.org)
Date: 02/27/05


Date: Sun, 27 Feb 2005 17:57:25 +0100

On Sat, 8 Jan 2005, Jeffrey Carter wrote:

"I've seen some ads for a position converting an Ada application to C++. [..]

[..]
Isn't anyone who takes this job automatically in breach of these principles?"

In many cases, yes.

I once met a lecturer who refused to lecture C++ due to his conscience.

We often come up against resistance from people whose appreciation of the
issues is almost non-existent...

On 2005 February 9th Colin Paul Gloster sent to Person X:

"[..]

Colin Paul Gloster said: "I recommend RAVENSCAR instead."

[..Person X] responded:

" C is preferable for several reasons. To mention a few, the
language is better
known by the project members than ADA, the available code base for that
platform in C is extensive while scarce in ADA and, last but not least,
the
ADA development tools for the Atmel microcontroller are unstable. Quoting
some of the references about the GNAT compiler available for this target:

"WARNING: This is still fairly experimental and only supports Ada 95
programming in an library less environment. A typical Ada run time system
is
practically non-existant (and will probably never be). You should look at
the
AVR-Ada project home page for more informations. The goal of the AVR-Ada
project is make the gcc based Ada compiler GNAT available for the AVR
microcontrollers. Although the compiler and the library have considerably
improved in the last few months they still have some problems. Do not base
a
commercial project on this tool chain. Or if you do, do it at your own
risk :-)."

[..]"

There are not however several good technical reasons to not use Ada,
though I confess to not having been aware of AVR-Ada immaturity not least
of all because I have not used tools targeting Atmel hardware yet.
However, in fairness not everything from an Ada 95 runtime system is
needed and today on AVR-Ada.Sourceforge.net/rts.html it is claimed:

"GNAT Run Time System for AVR

Only a few files from the run time library exist. See the directory
rts/adainclude.

Future versions of AVR-Ada should extend the possibilities of the
provided RTS. This might include:

* Ada exceptions. There is already support for setjmp/longjmp in AVR-libc,
but I don't know how useful are exceptions in embedded systems.
* simple tasking (like in the Ravenscar profile). This should probably be
built on top of a small scheduler like AvrX.
Don't count on anything appearing in the near future!"

and if we compare like with like, exceptions are absent from C and even
G++ for Atmel does not support exceptions (
WWW.NonGNU.org/avr-libc/user-manual/FAQ.html#faq_cplusplus ), and C does
not have tasking but it is possible to get operating systems which can
be used with C with tasking for Atmel microcontrollers.

A colleague said to me on 2005 January 26th:

"[..] how ever you should be
carefull with the avr-c library since some of the functions might act
a bit buggy. for example the printf functions isn't to be trusted.

[..]"

Unfortunately [.. a manager] said to me on 2005 February 7th that he
would prefer that I do not use the "optimal" (his word) language but use C
instead even though it is not planned that others write parts of the
software which I am to write and even though documentation about C has not
been submitted for Critical Design Review yet. So I will use C, but Ada is
better and RAVENSCAR better still (but not yet available for Atmel).

Colin Paul Gloster claimed: "UML is not good."

[..Person X] responded:

"[..] and for such purpose
is widely used in the software industry practically as the standard
approach."

UML is a notation, not an approach.

Popularity has little to do with perfection nor to checking whether a
predecessor was superior and already mature. Not that it will be practical
to use a formal specification language with people in the YES2 project, in
your spare time please see e.g. "30 Things that go wrong in object
modelling with UML 1.3",
WWW.DCS.Shef.ac.UK/vt/publications/by_title/publications_3.html "

Even the GNU C compiler (which instead of the commercial compilers, is
to be used) has some problems, e.g.:
http://lists.GNU.org/archive/html/avr-gcc-list/2005-01/msg00195.html
and is not ANSI C compliant; yet Person X had the cheek after 2005
February 9th to say to another manager that my preferred language's
compiler is unstable (and to me that I ramble on).



Relevant Pages

  • Re: Current status of Ada?
    ... learning and using this great language. ... The reason why compilers maker can't make their compiler totally free ... I agree with you that most of the links you can find on Ada websites ... AdaCore has contributed a free gnat compiler to ...
    (comp.lang.ada)
  • Re: Software Engineering Ethics
    ... comment to [..the manager who did not want the "optimal" Ada solution in ... On 2005 February 9th Colin Paul Gloster sent to Person X: ... ADA development tools for the Atmel microcontroller are unstable. ... project is make the gcc based Ada compiler GNAT available for the AVR ...
    (comp.lang.ada)
  • Re: Ravenscar-compliant bounded buffer
    ... the mid 1980's most compiler are FRONT_END compilers aka ... any system build around GNAT will contain the C code that GNAT ... The XGC Ada which is based on GNAT and uses C for its Real Time ... with VAXes for data processing applications. ...
    (comp.lang.ada)
  • Re: 7E7 Flight Controls Electronics
    ... Given that people had choices and Ada ... the 800 or so programming languages in use by the DoD, ... DoD1 was expected to provide a 'language of last resort', ... need modifications to a compiler to support particular requirements, ...
    (comp.lang.ada)
  • Re: Distributed Computing in Ada
    ... no shared memory. ... Ada tasks /can/ share memory, ... The problem is that the compiler can't know which variables are shared. ... The unit of distribution ...
    (comp.lang.ada)