Re: Lost in J2ME

From: chris (chris_at_kiffer.eunet.be)
Date: 04/26/04


Date: Mon, 26 Apr 2004 21:04:37 +0200

Darryl L. Pierce wrote:

>> Stop confusing specifications with implementations, and stop trying to
>> invent precision where none exists. It gets annoying. :)
>
> Tell me, what is the designation for the virtual machine that ships with
> the J2RE?

The Java HotSpot Virtual Machine.
<http://java.sun.com/products/hotspot/docs/whitepaper/Java_Hotspot_v1.4.1/Java_HSpot_WP_v1.4.1_1002_1.html>
Sometimes the -client and -server versions are spoken of as two separate
VMs.

> Then tell me, what is the designation for the virtual machine
> that is defined by the CDC?

It doesn't really have one. The RI that ships with the CDC devkit is called
[J2ME] CDC HotSpot Implementation, alias CVM, alias Monty.
<http://java.sun.com/products/cdc-hi/overview.html>.
This is, as is stated on that page, "a fully compliant Java virtual
machine"; that is, it complies fully with the JVM Spec.

> Then tell me if they're the same virtual
> machine, please?

No, they are at least 2 different VMs: Monty is said to share no code with
its bigger brothers. (Why they're so proud of that I've no idea; but the
presentations from JavaOne made a big deal of it). Depending on how much
code is shared by the Client and Server HotSpot Virtual Machine(s), it may
or may not make sense to speak of 3 VMs.

> Point: If they are not the same, then Huy's whole statement is factually
> wrong, despite the hoops you may be jumping through now to claim that
> "JVM" refers to the CVM and that by claiming such claiming that CDC/PP is
> the J2SE minus some APIs, which is completely and utterly *WRONG*.

They are all different, but they all implement the same spec (The Java
Virtual Machine Specification), and they could all answer to the name of
"the JVM" in some context. Personally I prefer to talk of "the VM", because
(1) the Java part is usually understood, and (2) it's not a trademark.
Tradmarks make bad technical terms, because the owners are wont to play
Humpty Dumpty with them.

There is no difference between the VM spec for J2ME CDC and that for J2SE.
As far as the class libraries are concerned, if a given package is
implemented in a particular CDC profile then it is implemented with exactly
the same API as in J2SE. So if you proceed on the "completely and utterly
*WRONG*" assumption that CDC/PP is the J2SE minus some APIs your
applications will work; your customers will be happy; revenue will flow,
shareholder value will be enhanced, and you will never know just how
"completely and utterly *WRONG*" your assumptions were.

Life is hard sometimes. :)

-- 
Chris Gray      chris@kiffer.eunet.be
/k/ Embedded Java Solutions


Relevant Pages

  • Re: Cant view
    ... Sometimes there's a corrupt file in the cache and one must go to Tools | ... You can test whether Java is working on your machine at the following sites: ... Look at the Virtual Machine settings in Internet ...
    (microsoft.public.windows.inetexplorer.ie6.browser)
  • Re: Runescape...Exception Access Violation
    ... "An unexpected error has been detected by HotSpot Virtual Machine" ... The applet or application that you were running may contain programming errors or bugs that caused the JVM to crash. ... You may be running an older version of the Java Runtime Environment which contains bugs that can cause the JVM to crash. ...
    (microsoft.public.windowsxp.games)
  • Re: Lost in J2ME
    ... >> mean a virtual machine for the Java platform. ... an executable that simulates a platform for executing ...
    (comp.lang.java.programmer)
  • Re: Microsoft Java Virtual Machine
    ... > Online games are usually developed using Flash, Java, or Virtual Machine. ... > The most likely solution to a problem with an online game is to install, ... > to avoid the conflicts between the Sun Java system and Microsoft's Virtual ...
    (microsoft.public.games)
  • Re: Lost in J2ME
    ... The CDC is a superset of CLDC ... for them for a number of years) and the group working on that is separate ... > WebSphere Micro Environment contains a production-ready Java Powered? ...
    (comp.lang.java.programmer)