Python for air traffic control?

Roman Suzi rnd at onego.ru
Mon Jul 2 01:38:35 EDT 2001


On Sun, 1 Jul 2001, Bruce Sass wrote:

> On Sun, 1 Jul 2001, Magnus Lie Hetland wrote:
> 
> > "Russ" <18k11tm001 at sneakemail.com> wrote in message
> > news:bebbba07.0106291642.6c799d15 at posting.google.com...
> > > I am thinking about using Python for a unique safety-critical
> > > application in air traffic control. It will monitor a few hundred
> <...>
> > Just an amusing parallel... A snippet from the current JDK
> > (Java) license:
> >
> > --- begin ---
> > 8.1 Licensee acknowledges that Licensed Software may contain errors
> > and is not designed or intended for use in the design, construction,
> > operation or maintenance of any nuclear facility ("High Risk
> > Activities"). Sun disclaims any express or implied warranty
> > of fitness for such uses. Licensee represents and warrants to Sun
> > that it will not use, distribute or license the Licensed Software for
> > High Risk Activities.
> > ---- end ----

;-)

Does Microsoft license says something similar?
BSOD at nuclear plant could be more than metaphora...
 
> You see the same sort of thing with electronics components, the
> manufacturer doesn't want to be responsible when someone's
> home-brewed-from-off-the-shelf-parts EKG experiment goes wrong.
> 
> Has Python made a list of software approved for air traffic-control
> use, or is there no such thing for atc software?

I think it is not a problem of Python or other software:
whatever you use, just make it doubled or tripled!

For example, have different OSes with different programs
in different languages.

When programming critical system, I have found that simpler
things work better:

- database could fail while filesystem mapped database will work
- small independent scripts fail much less frequently than
monolithic apps (and failures are more easily tracked down)
- CLUI programs with web-interface work better than GUI programs

(by better I mean availability)

Do not forget human error factor. Check user input.

If your system is built of isolated cells with lots of try-except
it could float whatever happens to it's parts.

Also, do not forget to design your app in a way that allows you
to modify you application at runtime. 
This could be done by making app a set of scripts/programms
or by using Python abilities to reload modules at runtime.

*

Said this, I think core Python is ideal for this sort of app:
you can mend it at runtime and logic of the app is made simpler
by the Python syntax. (Code could be easily revised by 
specialists other than programmers, for example:

for plane1 in planes:
  for plane2 in planes:
    if plane1 != plane2:
      if distance(plane1, plane2) < safe_distance:
        alert_operator("....")

will be understandable to any English language reader.

Sincerely yours, Roman A.Suzi
-- 
 - Petrozavodsk - Karelia - Russia - mailto:rnd at onego.ru -
 





More information about the Python-list mailing list