On July 6th, 2016, Van Snyder submitted:
|----------------------------------------------------------------------------|
|"In 1976, my group was asked by DoD to review the five levels of requirements|
|for what became Ada. We recommended that the language provide facilities |
|for real variables to have units of measure, and that the compiler check for |
|consistency. Col. Whittaker essentially answered "Huh? Why would a |
|language intended explicitly for high-reliability programming need that?" |
| |
|In 1986 I proposed it informally for Fortran. I couldn't get funding to |
|join X3J3, so it went nowhere. |
| |
|In 2004, I proposed a work item for what became Fortran 2008. Within the US |
|ANSI/INCITS committee (J3), it was favorably received, with 2 disliking it, |
|eight liking it, and three loving it. It was inscrutably assigned a |
|difficulty commensurate with coarrays, even thought essentially no code |
|generation is involved, and was eventually dropped from consideration in |
|favor of projects that were considered to be easier. |
| |
|Starting in 2006, I proposed a work item called a "Technical Specification" |
|(TS) as an ISO/IEC JTC1/SC22/WG5 project. A TS has a separate schedule from |
|a standard revision. The project was rejected. I proposed it several times |
|again, and it has been repeatedly rejected. |
| |
|The reasons given by the vendors are |
| |
|(1) it's too hard (it isn't -- I've laid out a roadmap for how to do it, and |
|nobody commented on it), and |
| |
|(2) nobody's asked us for it directly (but the standards committees have |
|been asked). |
| |
|Nobody has had the courage to say why they didn't like it, perhaps because |
|they're afraid that would allow me to address the objections. |
| |
|We lost a $300 million project (Mars Climate Orbiter) because of a mistake |
|involving units, that would have been caught and automatically corrected if |
|the facilities I propose had been available and used. |
| |
|I spend in aggregate about two weeks per year -- a day here, a day there -- |
|hunting for and correcting mistakes involving units, usually when somebody |
|gives me a subprogram to incorporate into my code, with arguments identified |
|as something like "height," "latitude," and "pressure." Is the height |
|geocentric or geodetic? Is it meters, kilometers, miles, average Earth |
|radii, ...? Is the latitude geocentric or geodetic? Radians or degrees? |
|Is the pressure PSIA, PSIG, mmHg, hectopascals, bars, ...? |
| |
|If anybody is interested to read the proposal, it's at |
|ftp://ftp.nag.co.uk/sc22wg5/N1951-N2000/N1969.pdf. A newer version, with |
|only trivial differences, will shortly be available from the ISO/IEC |
|JTC1/SC22/WG5 page on the ISO livelink site, but I have no idea how to |
|specify it. The paper number will be N2113. |
| |
|I don't think I'm alone. Does anybody else have this problem? Does anybody |
|else care about software reliability? Would anybody else like to have |
|assistance from the programming language? Maybe if you spoke up, the |
|"nobody asked us for it" excuse wouldn't carry much weight." |
|-----------------------------------------------------------------------------|
Dear Van Snyder and everyone else who cares about engineering:
Unfortunately I do not have the time to spare which this discussion
deserves.
Van Snyder already knows that Ada is good.
Van Snyder already knows that Ada compilers exist.
Van Snyder already knows that persons who produce compilers which are
intended to be Fortran compilers are unskilled.
(By the way, do any of you know what is happening with SPEC CPUv6? An
Ada submission by me was accepted during Step 1 many years ago. (SPEC
did not kant to accept a submission in a language other than Fortran
or C++ or C, but I successfully pointed out that a rule of SPEC CPUv6
is that the best version must be submitted, and the best version is in
Ada.) I still did not hear when Step 2 will be started, if ever.)
Sincerely,
Nicholas Collin Paul de Gloucester
|