From: val@news.ccutah.edu (Val Kartchner)
Subject: Re: Ada's (in)visibility in the engineering community
Organization: University of Utah Computer Center
X-Newsreader: Tin 1.1 PL3
Date: Mon, 12 Oct 92 19:36:24 GMT

This is a summary of this subthread, which could be called "What is
'real-time'?":

Here is the original posting which started this subthread:
: "Ada was not developed by Ichbiah, Firth, et. al as the result of
: a conscious engineering effort.  In fact, Ada was hacked together
: by a couple of guys who needed a real-time OS for their PDP-8.  The
: real-time OS was needed so they could play games, and do a little
: programming on the side..."

To which, Randy.Baer@f310.n3603.z1.FIDONET.ORG (Randy Baer) later replies:
:         Sounds like the same story about how UNIX was developed.

But my reply was (summarized):
: In article <1992Sep25.210409.23219@fcom.cc.utah.edu> val@news.ccutah.edu
:...
:A major superiority claim can be made on behalf of C's real-time ability
:over Ada's real-time ability in that families of commerically viable
:(meaning actually FAST) operating systems have been written using C.
:...

To which, sakkinen@jyu.fi (Markku Sakkinen) wrote:
: Please, tell us even _one_ real-time feature of C !

To which, I repied (this is a summary but with ":" for clarity):
: Sited three SPECIFIC English language dictionary definitions of "real-time".
:
: Since, Ada's definition is different than these usages, I asked four
: questions (which are repeated verbatum):
:
:   1 - What is the definition of "real-time" which Ada uses?
:
:   2 - Why does Ada consider it necessary to redefine "real-time"?
:
:   3 - How does this reason differ from the reason that Apple and IBM have
:       for redefining "multimedia" to fit what their products do?
:
:   4 - In light of the English definitions of "real-time", name _one_
:       real-time feature of Ada not present in C.

To which there were five followups (to date) addressing the definitions that
I posted, but none addressed the questions that I had.  Three of the followups
said that my definitions were not valid, but failed to attempt to correct
them as I had asked.  The two followups that addressed the deficiencies in
the English definitions follow:

1 - emery@Dr_No.mitre.org (David Emery) wrote:
: The "conventional" meaning of real-time is a system that must respond
: to external events within (usually restrictive) timing constraints.
: My workstation and text editor are not real-time in this sense,
: because the only thing that happens when I don't get an adequate
: response is that I get mad.  Nothing goes boom or falls out of the
: sky.

This still does equate to "speed".  This was the point that I was trying to
make by siting operating systems and such.  While (mostly) no physical damage
will be done, the operating system MUST get that character out of the input
register before the next one comes or that character will be lost.  And it
must consistently do this for EVERY person who is logged in, or the system
will be judged "flakey" or worse.

2 - rlk@VisiCom.COM (Bob Kitzberger)
: No, we don't need to know what common English usage is.  Go ask the folks in
: comp.realtime for their definition; you'll find that "fast enough" is
: usually the speed requirement, not "real fast".
:
: One of the major components of real-time systems is support for concurrency.
: Ada does have language support for concurrency, to be improved upon in Ada9x.
: C/C++ do not have _language_ for it.  While you may validly argue that
: concurrency doesn't belong in the language but belongs in the OS, (and
: I'd be very sympathetic to that point of view) you can't argue that
: C/C++ have _language_  support for concurrency.

"Speed" (again) with the addition of "concurrency".  "Concurrency" has no
direct language support in C.  Standard tasking libraries are currently
being considered for C++.  Since this isn't [yet] a standard, this isn't
[yet] language support for concurrency.  Nevertheless, C demonstrates
concurrency by example.  (What else are those commercial operating systems
written in C?)

emery@Dr_No.mitre.org (David Emery) wrote:
: .... Although most of the commercial real-time operating
: systems (e.g. Lynx) are written in C or assembler, there is a large
: body of real-time embedded code that is written in Ada, operating
: system and all.  Boeing has many commercial examples that fly now.
:
: Furthermore, the BiiN operating system (which provided a System V
: interface) was itself written in Ada, with a C binding!  (It is fair
: to note that BiiN was not sucessful, but my observation was that Ada
: was not the cause of the problem.  The problem with BiiN was lack of
: marketing.  Now, 5 years after its death, I'd still like to have a
: system with the functionality of the BiiN system, particularly its
: network object orientation.)

I appologize for my remark about it being laughable to implement a
general-purpose, interactive operating system in Ada.  I had no idea that
someone had actually done it (BiiN).  There are probably others out there too.
No need to bring them up.

I tried to find the FAQ in comp.realtime, but it's not currently available
(in comp.realtime or news.announce) at my news site.  So, for lack of a
complete third-party definition for "real-time", let's just agree to disagree.

                                -=:[ VAL ]:=-
--
|===== The previous was my opinion -- val@csulx.weber.edu =====///============|
| "AMIGA: The computer for the creative mind." (tm) Commodore /// Weber State |
| "Macintosh: The computer for the rest of us."(tm) Apple \\\///  University  |
|============== "I think, therefore I AMiga." =============\///=== Ogden, UT =|