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