views:

54

answers:

2

Does platform mean the OS or the CLR,JVM & like that??

I heard that CLR & JVM differs from OS to OS..

So what different versions of JVM & also of CLR is availabe right now in market?

(I think CLR is having only 1 version that is for windows only)

pls clarify my this confusion as much as possible...

+2  A: 

There are plenty of versions of the CLR:

  • Several different versions and service packs for Windows x86
  • The 64-bit CLR from v2 onwards
  • The Compact Framework (mostly for mobile devices and the XBox)
  • The CoreCLR (for Silverlight)
  • The micro-framework
  • The shared source Rotor implementation

Within the desktop framework, there are two different garbage collectors - one aimed at servers, one for clients.

Those are just the Microsoft implementations... then there's Mono and any other 3rd party ones.

I'm less familiar with what JVMs are available, but there are several different versions of HotSpot, and other companies produce JVMs too (e.g. JRockit)

Jon Skeet
Rotor is shared source, Mono is open source.
Matthew Flaschen
@Matthew: Thanks, duly fixed.
Jon Skeet
+1  A: 

What does platform means ?

The answer really depends on the context on the "platform" word. But when you speak about the java platform, most of the time it's about the JVM + JRE + JDK, it's the whole Java Pack.

Why the JVM differs from OS to OS ?

Why can't you simply use the Windows Sun's JVM on your linux, well first thing Linux and Windows don't execute binaries files the same way, so you must have two different binary versions. Plus you can't really access files or interact with the system the same way on the two OS.

What versions of the JVM are available ?

  • Sun's JVM (oracle's now)
  • IcedTea JVM
  • KVM (for JME)
  • CVM (JME too)
  • Apache Harmony
  • Oracle JRockit
  • And a lot more

Why so many versions of the JVM ?

Simply because the java platform is basically a bunch of specifications on "How to run Java applications". So anybody can create its own valid JVM as long as it respects the specifications.

And about .NET ?

See @Jon Skeet's answer :)


Resources :

Colin Hebert