tags:

views:

395

answers:

4

Why does Sun call their VM for CDC devices C Virtual Machine ? Isn't that confusing. I mean it appears that is a virtual machine for the C language, not java. On the mobility faq sun says:

FAQ question:

What is the difference between a Java virtual machine (JVM) and a C virtual machine (CVM)?

Answer:

The short answer is that CVM is a JVM. The longer answer is that CVM is a full-featured JVM designed for higher-end, emerging, next generation consumer electronic and embedded devices, that is, devices with a 32-bit processor and 2Mb+ of total memory. These devices include wireless communicators (such as devices running Symbian's EPOC OS), high-end PDAs (for example, devices running embedded Linux or Windows CE), residential gateways, automotive telematic systems, and screenphones.

Ref: http://developers.sun.com/mobility/configurations/questions/vmdiff/

It's really confusing. Or I'm missing the point????

A: 

I mean it appears that is a virtual machine for the C language, not java.

You are missing the point. The C in CVM does not stand for the C programming language. AFAIK, it stands for CDC; i.e. Connected Device Configuration. In other words, it is a JVM that is designed to run Java on a memory constrained device such a a mobile phone.

EDIT: And to those folks that Sun are saying that CVM means "C virtual machine", read the FAQ and its answer again. Sun are responding to people who mistakenly misinterpret CVM as "C virtual machine" by saying this is not the correct interpretation. But maybe they are not saying it emphatically enough for people who are used to getting all their information in sound-bites.

But, yes, Sun are notorious for their confusing Java product nomenclature. And this is (IMO) just another example. For example, if you do a Google search for "JVM Specification" you will see lots of hits that point directly or indirectly to the Java Virtual Machine Specification. But searching for "CVM specification" yields nothing relevant, because (AFAIK) there is no separate CVM spec.

In short, Sun have created an unnecessary acronym that is easy to ascribe an incorrect meaning to. That was (IMO) dumb on both counts. However, they didn't ascribe that meaning to it themselves.

Stephen C
That's the point of the question, calling it the C virtual machine os confusing, because it's *not* talking about C.
Jeffrey Aylesworth
*un*helpful. 15
just somebody
I think you are right, maybe it doesnt may any sense. :/But of all 26 letters they choosed the worst, since C is a language.Maybe, it's stands for Connected Device Configuration, the first C there? What you think?
Marcos Roriz
@Jeffrey - read the FAQ and answer again. Sun are clearly responding to a question (based on a false premise) ... not making a statement.
Stephen C
@Marcos - that's clearly what they are saying, in my opinion.
Stephen C
A: 

Maybe "C" is for "consumer"? Anyway, it's just marketing gibberish, it is really a JVM implementation.

GregS
woudn't be better to just use JVM, I mean Java is a know technology.
Marcos Roriz
A: 

Sun has several implementations of Java Virtual Machines, with different characteristica. Not all devices are capable of running the fullblown Hotspot in their desktop offering, and the money is also elsewhere.

Thorbjørn Ravn Andersen
A: 

I finally found the solution:

Note: CVM was once an acronym for "Compact Virtual Machine." Engineers at Sun Microsystems believed that people might confuse the "Compact" in CVM with the K in KVM, however, so now C doesn't stand for anything at all. The virtual machine is known simply as CVM.

http://developers.sun.com/mobility/configurations/articles/cdc/

Marcos Roriz