comp.lang.ada
 help / color / mirror / Atom feed
* who said Java can't be used for realtime !
@ 1998-11-26  0:00 bill_k
  1998-11-27  0:00 ` Brian Rogoff
                   ` (4 more replies)
  0 siblings, 5 replies; 8+ messages in thread
From: bill_k @ 1998-11-26  0:00 UTC (permalink / raw)



see http://www.java.sun.com/features/1998/11/fishtank.html

about 60% into the above page we read:

"Even for a real-time system, it was better to let the system just garbage
collect when it needed to instead of trying to predict when you thought it
was a good time. The system just responded better that way." 

OK, so this is it. Java can also do realtime just fine, even with GC !

any rebuttle from the Ada fans?

bill.




^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: who said Java can't be used for realtime !
  1998-11-26  0:00 who said Java can't be used for realtime ! bill_k
@ 1998-11-27  0:00 ` Brian Rogoff
  1998-11-27  0:00 ` Roga Danar
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 8+ messages in thread
From: Brian Rogoff @ 1998-11-27  0:00 UTC (permalink / raw)


On 26 Nov 1998 bill_k@moonlight_entreprise.nospam.com wrote:
> see http://www.java.sun.com/features/1998/11/fishtank.html
> 
> about 60% into the above page we read:
> 
> "Even for a real-time system, it was better to let the system just garbage
> collect when it needed to instead of trying to predict when you thought it
> was a good time. The system just responded better that way." 

Obviously the system being described is not a HARD real time system, where 
HARD refers to the predictability of the response times. "Real time" is 
unfortunately a haeavily overloaded concept these days. Hard real time 
garbage collection is still something of a research topic. "Soft" real
time systems, i.e., those which are "fast enough", can certainly use GC;
Ericsson, the Swedish telecommunications company, has been using the
functional programming language Erlang to program telecom systems. 
Read about it at http://www.erlang.se/erlang/sure/main/products/

-- Brian
 





^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: who said Java can't be used for realtime !
  1998-11-26  0:00 who said Java can't be used for realtime ! bill_k
  1998-11-27  0:00 ` Brian Rogoff
@ 1998-11-27  0:00 ` Roga Danar
  1998-11-30  0:00 ` Jeff Carter
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 8+ messages in thread
From: Roga Danar @ 1998-11-27  0:00 UTC (permalink / raw)
  To: bill_k

GC aside, a Java application can never reach the speed of an true executable.
Therefore, any system needing very small contraints (FMS, Weapon systems
etc...) would not be appropriate for Java.

Java clearly can have it's uses in embedded systems that run in more "human"
time contraints because humans will never be faster than Java can run ;->

A cogent reponse from a true Ada fan.

-- Michael

bill_k@moonlight_entreprise.nospam.com wrote:

> see http://www.java.sun.com/features/1998/11/fishtank.html
>
> about 60% into the above page we read:
>
> "Even for a real-time system, it was better to let the system just garbage
> collect when it needed to instead of trying to predict when you thought it
> was a good time. The system just responded better that way."
>
> OK, so this is it. Java can also do realtime just fine, even with GC !
>
> any rebuttle from the Ada fans?
>
> bill.

--







^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: who said Java can't be used for realtime !
  1998-11-26  0:00 who said Java can't be used for realtime ! bill_k
  1998-11-27  0:00 ` Brian Rogoff
  1998-11-27  0:00 ` Roga Danar
@ 1998-11-30  0:00 ` Jeff Carter
  1998-11-30  0:00 ` Roy Grimm
  1998-12-04  0:00 ` Marin David Condic
  4 siblings, 0 replies; 8+ messages in thread
From: Jeff Carter @ 1998-11-30  0:00 UTC (permalink / raw)


bill_k@moonlight_entreprise.nospam.com wrote:
> ...
> any rebuttle from the Ada fans?
> ...

I can spell "rebuttal". 
-- 
Jeff Carter: carter commercial-at innocon [period | full stop] com
"I blow my nose on you."
Monty Python & the Holy Grail




^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: who said Java can't be used for realtime !
  1998-11-26  0:00 who said Java can't be used for realtime ! bill_k
                   ` (2 preceding siblings ...)
  1998-11-30  0:00 ` Jeff Carter
@ 1998-11-30  0:00 ` Roy Grimm
  1998-11-30  0:00   ` whiter5195
  1998-12-04  0:00 ` Marin David Condic
  4 siblings, 1 reply; 8+ messages in thread
From: Roy Grimm @ 1998-11-30  0:00 UTC (permalink / raw)


bill_k@moonlight_entreprise.nospam.com wrote:
> 
> see http://www.java.sun.com/features/1998/11/fishtank.html
> 
> about 60% into the above page we read:
> 
> "Even for a real-time system, it was better to let the system just
> garbage collect when it needed to instead of trying to predict when
> you thought it was a good time. The system just responded better that
> way."
> 
> OK, so this is it. Java can also do realtime just fine, even with GC !
> 
> any rebuttle from the Ada fans?
> 
> bill.

Hmmm...  Nice demo.  Works well having virtual fish swimming around
randomly.  Not too demanding.  Of course, you have to take into
consideration that the program probably runs on a system that has quite
a bit more processing horsepower than it needs and it probably only
reacts to a few simple inputs from a keyboard (or other similar input
device).  And really, what happens when the program gets delayed a few
hundred miliseconds when the garbage is collected?  Not much.

Now, consider trying to implement a program in Java with said garbage
collection in another environment.  You need to make a weather radar for
a plane that detects windshear realtime and announces that windshear as
soon as it's detected so the pilot can take appropriate action.  If you
don't report windshear fast enough, the plane can crash into the ground,
killing hundreds of people.

Oh, but that's not all.  There are significant weight, space, power
consumption and heat generation restrictions placed on the computer you
have to build to run your software.  This is a very real consideration
when you factor in all the electronics in an airplane and how much power
they consume in both electricity and heat dissipation needs.  So, your
hardware guys use old generation processors that weigh less, use less
electricity and generate less heat.  Unfortunately for you, they're not
the speed demons that run in today's PCs and high end workstations.

But wait, there's more.  The same restrictions for the processor apply
to everything in the system.  You have less program space, less RAM and
no hard drive.  Now you have to write a program whos size is measured in
kilobytes instead of megabytes.  And your heap space is usually minimal,
if it exists at all.

Now, I know what you're saying.  You're not so sure full blown Java can
perform under these circumstances.  But we're just getting started.  You
get to write all your software so that it passes RTCA D0-178B Level A
certification.  That means that every line of code has been linked to
design documentation and the corresponding requirements.  And, you get
test every line of code using full MCDC coverage so that you know for a
fact that every reqirement is fullfilled and no unexpected behavior is
evidenced.  For this kind of coverage, there can be little
non-deterministic behavior in your code.  This includes most recursion
(that which exists must be finitely bounded), dynamic allocation, and
yes even garbage collection.  'cause that 200 milisecond delay may be
fine for virtual fish but when you've got strict timing requirements in
handling data, you don't have time to stop every once in a while to
collect garbage.  There is a very real possibility that you could miss
something important.  Important enough to cause a critical failure.


O.k.  I recognise that most applications are not written under these
strict guidelines.  If you've got a fast enough processor, enough RAM,
and loose enough requirements for your software, Java with garbage
collection would work in real time.

Also, I do know of an embedded Java processor that is being targeted for
the avionics industry.  I haven't used it personally but I understand
it's missing some of the non-deterministic features of the language so
that you can use it in a safety critical environment.


What it boils down to is that there is no one tool that will fit in
every situation.  Yes Java would work in real time in specific
situations.  In others, it wouldn't work at all.  Ada is a fine language
for doing many tasks but it's not the best for every task.  Would you
have only one tool in a tool box?  Certainly not.  While a crescent
wrench works well as a wrench and can substitue as a hammer in a pinch,
it's wholly inadequate for turning screws or chopping wood.  So too
Java, Ada, C/C++, Eiffel(did I spell that correctly?), assembler, Perl,
Tcl, COBOL, Lisp, Prolog, etc. ad nauseum each do well at particular
tasks.  They each can do things the others can, but they each excel at a
particular specialty.  Would you write an operating system in COBOL? 
Would you write a database server in assembler?  I certainly wouldn't.

Just my two cents
Roy A. Grimm

My views do not necessarily represent those of my employer.




^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: who said Java can't be used for realtime !
  1998-11-30  0:00 ` Roy Grimm
@ 1998-11-30  0:00   ` whiter5195
  1998-12-01  0:00     ` Roy Grimm
  0 siblings, 1 reply; 8+ messages in thread
From: whiter5195 @ 1998-11-30  0:00 UTC (permalink / raw)


In article <3662E25E.D8F60848@collins.rockwell.com>,
  Roy Grimm <ragrimm@collins.rockwell.com> wrote:

> Also, I do know of an embedded Java processor that is being targeted for
> the avionics industry.  I haven't used it personally but I understand
> it's missing some of the non-deterministic features of the language so
> that you can use it in a safety critical environment.

  What Roy failed to mention was that this Java bytecode processor
can be programmed in assembler(to get to the privileged
instructions), Java or Ada.  You don't have to use the high level
Java language to program a Java virtual machine.
_____________________________________________________________________
Robert S. White

-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/       Search, Read, Discuss, or Start Your Own    




^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: who said Java can't be used for realtime !
  1998-11-30  0:00   ` whiter5195
@ 1998-12-01  0:00     ` Roy Grimm
  0 siblings, 0 replies; 8+ messages in thread
From: Roy Grimm @ 1998-12-01  0:00 UTC (permalink / raw)


whiter5195@my-dejanews.com wrote:
> 
> In article <3662E25E.D8F60848@collins.rockwell.com>,
>   Roy Grimm <ragrimm@collins.rockwell.com> wrote:
> 
> > Also, I do know of an embedded Java processor that is being targeted for
> > the avionics industry.  I haven't used it personally but I understand
> > it's missing some of the non-deterministic features of the language so
> > that you can use it in a safety critical environment.
> 
>   What Roy failed to mention was that this Java bytecode processor
> can be programmed in assembler(to get to the privileged
> instructions), Java or Ada.  You don't have to use the high level
> Java language to program a Java virtual machine.
> _____________________________________________________________________
> Robert S. White

I didn't mention it because I really don't know much more about the
processor than it's an in house development of Rockwell's AAMP processor
line.  There was an article about it in EE Times a while back, and some
of the managers around here have mentioned possibly using it.

Roy Grimm

My opinions do not necessarily reflect those of my employer




^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: who said Java can't be used for realtime !
  1998-11-26  0:00 who said Java can't be used for realtime ! bill_k
                   ` (3 preceding siblings ...)
  1998-11-30  0:00 ` Roy Grimm
@ 1998-12-04  0:00 ` Marin David Condic
  4 siblings, 0 replies; 8+ messages in thread
From: Marin David Condic @ 1998-12-04  0:00 UTC (permalink / raw)


You'll have to define what you mean by "Real-Time Systems". I know lots
of people who think that a workstation based application which has to
respond to user's mouse-clicks in some acceptable amount of time is
"Real-Time". Then you've got systems that have to monitor and adjust
some real world electromechanical contraption where response time has to
be measured in milliseconds - or even microseconds - and stopping to
collect the garbage is just not an acceptable thing to do.

Java can be used for real-time if you are very careful about what you
call real-time. But that's like saying that Unix is "user-friendly" only
its very picky about who its friends are.

MDC

bill_k@moonlight_entreprise.nospam.com wrote:
> 
> see http://www.java.sun.com/features/1998/11/fishtank.html
> 
> about 60% into the above page we read:
> 
> "Even for a real-time system, it was better to let the system just garbage
> collect when it needed to instead of trying to predict when you thought it
> was a good time. The system just responded better that way."
> 
> OK, so this is it. Java can also do realtime just fine, even with GC !
> 
> any rebuttle from the Ada fans?
> 
> bill.

-- 
Marin D. Condic
Real Time & Embedded Systems, Propulsion Systems Analysis
United Technologies, Pratt & Whitney, Large Military Engines
M/S 731-95, P.O.B. 109600, West Palm Beach, FL, 33410-9600
Ph: 561.796.8997         Fx: 561.796.4669

"The reasonable man adapts himself to the world; the unreasonable one
persists in trying to adapt the world to himself. Therefore all progress
depends on the unreasonable man."

        --  G.B. Shaw




^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~1998-12-04  0:00 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1998-11-26  0:00 who said Java can't be used for realtime ! bill_k
1998-11-27  0:00 ` Brian Rogoff
1998-11-27  0:00 ` Roga Danar
1998-11-30  0:00 ` Jeff Carter
1998-11-30  0:00 ` Roy Grimm
1998-11-30  0:00   ` whiter5195
1998-12-01  0:00     ` Roy Grimm
1998-12-04  0:00 ` Marin David Condic

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox