> > Look at what Sun says Java is not suitable for to get a short list. IIRC
> > they included stuff such as life support machinery in hospitals, air traffic
> > control, and nuclear reactors. Space Shuttle or manned-space-flight rocket
> I think this is primarily because Java is not a real-time language (as
> in specifiable bounded time for each operation) on account of Java
> insisting on providing garbage collection which is almost impossible to
> do efficiently in real time.

This is primarily because the code that makes up Java hasn't ever been
proven (in a maths sense) to work.  GCC comes with the following
disclaimer too:

this program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of

As for the real time nature of garbage collectors, Shevek and I (and some
others) wrote a paper together on this, so I could say a lot here.
Especially about how Perl is much more real time as it can do better at
allocating and deallocating the same bit of memory (as it instantly
knows when memory is free, unlike mark and sweep) and is a lot less likely
to cause page faults.  Of course, reference counting suffers from the
dreaded deep free problem so if you don't program carefully you can very
very easily shoot yourself in the time constraint foot too.

> > control logic probably should also be bug free.
> <cue story="the misplaced colon in a Fortran DO loop causing Apollo ??
> to crash" />

That's an implementation problem.  Control logic problems are ones like
'The spacecraft doors shall not be able to be opened manually and shall
remain in computer control incase human error causes the inside to be
depressurised' and then not realising that in some situations you need to
be able to open them both (e.g. internal fire, meteor strike, HAL going

Most problems are control logic problems.  The computer implementation 
ones make better reading though...



P.S. Scary thought: During a transatlantic flight on average cosmic 
radiation flips at least one bit of the control systems memory.

print "\n",map{my$a="\n"if(length$_>6);' 'x(36-length($_)/2)."$_\n$a"} (
   Name  => 'Mark Fowler',        Title => 'Technology Developer'      ,
   Firm  => 'Profero Ltd',        Web   => 'http://www.profero.com/'   ,
   Email => '[EMAIL PROTECTED]',   Phone => '+44 (0) 20 7700 9960'      )

Reply via email to