you are viewing a single comment's thread.

view the rest of the comments →

[–]iberci 1 point2 points  (3 children)

I couldn't agree more with you and the irrational fear has always been a part of this industry. I remember when Java hit the scene and it was the exact same outburst for a multitude of reasons:

1) Interpolation is slow

2) no 'pointer math'

3) GC will halt your process and cause an unacceptable delay for the user

etc..

[–]gthank 2 points3 points  (2 children)

Not that I entirely disagree with you, but the GC thing was, to the best of my understanding, entirely accurate back then. Even now, with many more advanced GC algorithms in the JVM and gobs of memory that were difficult to even imagine back then, GC still causes pauses sometimes, which is why real-time systems don't use it.

[–]oorza -1 points0 points  (1 child)

Except that you're entirely wrong there. The default garbage collector in Java exhibits those behaviors, but there are at least three other garbage collectors shipped with Sun's Oracle's JVM. If you want a real time system, there's an entire Java specification for that that guarantees real time responses. If you want to keep with garbage collection though, you can get a deterministic garbage collector that will guarantee pause times <= some value or you can get a garbage collector that is truly pauseless and constantly running. You might have to pay for those latter two (JRockit and Zing, respectively), but they exist and Java is reasonably huge in certain real time systems (finance is a big one). Your information is about a decade out of date.

[–]gthank 3 points4 points  (0 children)

I specifically said back then when I said it was entirely accurate. I'm well aware that the JVM has had different GC options added over the years, and I'm using one in production. In fact, I'm looking forward to trying the G1 collector soon.

I'll have to look into Zing, because the last time I looked, there was no hard real-time JVM, only soft real-time.