Using Java could lead to death
Monday 2 January 2006 @ 5:12 pm

We all know that Microsoft doesn’t like Java. But did you know that Microsoft in their license agreement even warns users that Java technology is potentially deadly?

Yakov Fain discovered this when he was reading a Microsoft end-user license agreement:

The software product may contain support for programs written in Java. Java technology is not fault tolerant and is not designed, manufactured, or intended for use or resale as on-line control equipment in hazardous environments requiring fail-safe performance, such as in the operation of nuclear facilities, aircraft navigation or communication systems, air traffic control, direct life support machines , or weapon systems, in which the failure of Java technology could lead directly to death, personal injury, or severe physical or environmental damage.

See also the article on TheServerSide, one of the major J2EE community websites.

— By Jesper de Jong     PermaLink

10 Responses to “Using Java could lead to death”

  1. Aviad Ben Dov Says:

    This is Hilarious!

    Are they trying to imply, though, that their software IS fault tolerant?

  2. Gidi Morris Says:

    Obviously not.
    Its like me saying - “Aviad is a terrible potato”
    I’m not saying I am any better a portato, but Aviad is definatly a terrible potato.

  3. Romain Guy Says:

    I remember reading this on a small piece of paper included with my copy of Windows 98 :)

  4. JC Mann Says:

    This verbage is common in software licenses:

    Apple Quicktime
    Objectmatter
    Apple Webobject
    Filemaker
    Acez
    Macromedia

  5. Goldy Lukka Says:

    Hi,

    Something reminds me of my old days (around 1999-2000).

    Earlier days, the JDK 1.2 source code had the same sort of message. Looks like microsoft has picked the same message from there. Althought I guess the world deadly and death was missing. But they did caution not to use Java in nuclear, aircraft navigation etc.
    Just open the src.zip directory on JDK1.2 and see it in any .java file yourself.

    Regards,
    Goldy.

  6. Stuff Says:

    As far as I understood this, it was to do with Garbage Collection. Back in those days, MS language runtimes (like VB6) did not do garbage collection, but relied instead on reference pointer counting. This had the advantage that the behaviour of finalizers at runtime was predictable, or at least consistent, but had the disadvantage of circular references and memory leaks.

    Garbage collection, on the other hand, is not predictable in the same way, and can cause an application to hang at inopportune moments, and so was deemed unsuitable for critical applications.

    However, two caveats.
    1. I might have just made this up and later convinced myself it was the true explanation for the warning. I tend to do that sometimes.
    2. With modern MS .NET languages, Garbage Collection is present and is almost identical to Java.

  7. Huub van Thienen Says:

    Software for life-critical systems must be certified before it can be used. Certification is a rigorous process, in which both the development environment and the quality of the software itself are evaluated. Aviation software, for instance, must be developed according to the DO-178B standard.

    A DO-178B compliant development process yields not only the software itself, but also a huge amount of documents in which every aspect of the software and its development is described and recorded. This makes such processes very expensive, and not everyone is prepared to follow such standards.

    Even if you produce Java software in a DO-178B compliant process, you are still dependent on a JRE whose DO-178B compliance is not known (it probably is not). This impleis that the whole application (including your own compliant parts) is not compliant and can not be certified. I have always assumed that the legal implications of this fact are the reason for the texts in licenses.

    Memory management, whether it is based on garbage collection, reference counting (which I consider another grabage collection strategy) or (m)alloc/free-based approaches are always a source of bugs and require special attention in any life-critical development process. Many garbage collection strategies interfere with real-time requirements, so it is unlikely to find these on board of an airplane, but it is not impossible, nor is it forbidden by the regulations.

  8. Okke van 't Verlaat Says:

    And that is where realtime java comes in play. See this article about Java and DO178B
    (Thank you google for providing this link when searching for both keywords :-) )

  9. Gerard Mulder Says:

    Okke, I realy like the phrase: “Why Java is Superior to C and C++” in that article ;)

  10. Huub van Thienen Says:

    Yeah, sure, there is a lot to be said about the reasons for this “superiority” of Java, but first I would like to answer the question: “Is Java superior to C[++]?”. But that is worth a thread of its own.

    I already stumbled on the claim in the very first sentence of the article, that Java offers a two- to ten-fold productivity benefit over C[++]. I know from the literature that productivity of C is much higher than of C++, so comparing Java to both languages is silly. But I have never seen any support, neither in the literature nor in personal experience, for the assumption that Java allows a higher productivity.

Leave a Reply


Menu


Sha256 mining

Blog Categories

Browse by Date
January 2006
M T W T F S S
 1
2345678
9101112131415
16171819202122
23242526272829
3031EC

Upcoming Events

Monthly Archives

Recent Comments

Links


XML Feeds Option


Get Firefox  Powered by WordPress

code validations
Valid RSS 2.0  Valid Atom 0.3
Valid W3C XHTML 1.0  Valid W3C CSS