Lies and Java: the Pause Thing

Thursday, September 28, 2006 1:56 pm. “Java” is a language product of some prominence, mostly because of relentless promotion from its creator Sun Microsystems. To give an idea of its significance in the Wonderful World of Computers, Java is why Microsoft had to cook-up .NET....

... As an important computer obsessive, I actually haven’t done much with Java, but I’ve used it enough to think I was mildly familiar with the thing. ... Until, recently, when some pitiful magazine admitted the language stops now and then for seconds at a time while it engages in an arcane activity known as “garbage collection”. ... That’s “stops” as in, whatever you thought you were doing — editing something, running your giant corporation, responding to some wretched teller machine’s query, perhaps many queries — coming to a complete halt and doing nothing for a quite noticeable time. ... That is, not executing your complicated tasks in microseconds or less....

Of Course I Know Everything: The Color Computer

You understand, I knew about garbage collection, in general; I just sort-of innocently figured that, since Java was so important and all, someone, over the weary years, had figured-out how, at the least, to ameliorate this stopping for seconds at a time thing....

(... Let’s flashback ...) Long, long, ago (1980?) I had a cute little Radio Shack Color Computer, with the latest 6809 microprocessor and (Microsoft) Color Basic. And I wrote my own wonderful text editor in Color Basic, so I could edit documents with a television “terminal”, just like a real computer. And I could save and restore my documents on cassette tapes; and print them on my teletype! ... So beautiful. ... But my precious text editor, sadly, stopped every now and then for seconds at a time — which could be annoying when I thought I was typing insightful thoughts! — because it, too, had to garbage collect, just like the space-age Java! (... Fade to now....)

Other Voices

Then Network Computing (9/21/06, page 29) also admitted this pause thing had been going on and, indeed, that “financial services companies and government agencies ... as well as other organizations ... are reluctant to move from their C/C++-based apps” because of it!

... Who knew?! ... I have read hundreds, if not thousands, of Java in the Enterprise blah blah blah articles and, until the last month or so, never knew this minor detail! ... Even ’though all this time “organizations” were “reluctant” to use this junk because it came to a grinding halt now and then without warning! ... Jeez, how could these important magazines and numerous other technical sources fail to mention this very significant aspect of using the important advanced Java product/environment??!!

Lying Scum

Network Computing could fail to mention it because they’ve been lying; consistently, repeatedly, one could say compulsively, for years and years. The only reason they were forced to mention it was because an advertiser had perfected a software gadget that supposedly — for $10K and up, to be sure — would fix the problem!

... But wait, Mr. Businessman! ... Step away from that check book! ... Consider: here is an industry magazine that pretty-much admits it’s been, at the very least, covering-up this minor drawback in a major product category for years; why on earth should you believe them now!? ... I mean, maybe it fixes the unscheduled halts, but then melts the server once a week? ... Who can tell? ... Certainly not a reader of Network Computing....

... I am reminded of Keyboard magazine a few years back when, to its credit, it printed an indignant complaint about a review of an electronic piano: Keyboard failed to note obvious register flaws between octaves. Their response was particularly ingenious: they protested that, while the defect was indeed present, all electronic pianos exhibited this behavior — so it’s unimportant! ... I like it; plausible, short and sweet, and obviously misleading....

General Theory of Mendacity

These regrettable techy discrepancies are obviously not limited to Network Computing. I think the Java hiccup is a remarkable example, but it demonstrates a general certainty:

Technical consumers must assume any information in an advertising-supported publication is, at least, misleading.

I blog about the upside of this elsewhere; but the downside is here and now, and it is basically the reason that all advertising-based technical publications will cease within a few years. Because, of course, we have a choice now, and even if the web is riddled with advertising, it is still relatively easy to find more truthful information about stuff. ... Although I must admit I’ve never seen the Java Pause thing mentioned there either (even years later!). ... Even when I use the insider magic phrase “java garbage collection”, google turns-up erudite discussions — although to be sure enough of them are about “tuning” garbage collection that a reasonable person would probably be, correctly, alarmed....

Ok, so the web isn’t perfect; the magazines are definitely lying, and getting paid for it....

Round-up the Usual Suspects

And how about the revered .NET? ... It, also, has garbage collection; I guess it, too, will have unscheduled stops for seconds at a time if the “financial services companies and government agencies [and] other organizations” are foolish-enough to depend on it, won’t it? ... Are they, too, “reluctant to move ... their C/C++-based apps” to .NET because of that? ... Could be....

Update Friday, June 12, 2009: Omerta

Even the revered Wikipedia preserves the gangster code of silence, lest one of those stupid customer people discover something bad about a technology the geek community might still make a few buck$ with. ... All the article says is

... the point when the garbage is actually collected can be unpredictable, leading to small delays scattered through a session. This can be prohibitive in real-time environments such as device drivers.

Right; not good for all those .NET device drivers. ... And of course the delays aren’t one or two seconds like those foolish bankers believed; just small (with no qualification) delays scattered through a session. Not all at once when it runs out of RAM — that never happens; but actually we’re not going to write anything about it anyway because it’s so unimportant — and it could cost us money. ... Where I come from — apparently an obscure and unique place — that’s called “lying”....

And everywhere I searched for “garbage collection delay” “java GC delay” etc. there was equal silence, evasion — except of course here! ... In these pages I usually joke about how “you read it here last”, but this may be the first place on the web you’ll see this frightening and unpalatable truth — and it’s likely to remain that way! ... I edited the Wikipedia article, specifically whining about the total silence about actual delay times; that the article was, therefore, propaganda rather than information — and the edit disappeared in less than a day! ... I guess I’m a traitor to my tribe; or maybe I never was a geek — like that, anyway. ... It’s really shameful....

And oh yes ... this relentless omerta suggests to me that these GC delays are a serious problem, today, and must occur much more often and be much worse than even I thought. ... That’s interesting. ... Of course it may have something to do with Java and .NET heading off into that final sunset from which none return....