Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: Comparison of Java, C# for development on Windows and future for them

Re: Comparison of Java, C# for development on Windows and future for them

From: Mark Thornton <m.p.thornton_at_ntlworld.com>
Date: Sat, 11 Jan 2003 20:41:58 -0000
Message-ID: <avpvin$ik56a$1@ID-139894.news.dfncis.de>

"Chad Myers" <cmyers_at_N0.SP.4M.austin.rr.com> wrote in message news:HaXT9.20185$aG4.943111_at_twister.austin.rr.com...

> > > The main argument is that MSIL is actually compiled, it's not
> > > interpreted, so it doesn't have to emulate some system services
> > > like the JVM does (though I'm not sure modern JVMs do this or
> > > not).
> >
> > Since java 1.2 java uses a Just In Time compiler.
>
> Yeah, but it's not quite the same thing from what I understand.
>
> Apparently this isn't up for debate because I haven't heard anyone
> (even Gosling who never lets MS get away with anything) criticize
> MS' statements in this regard. Java is interpreted (and has a JIT
> which improves performance), whereas .NET is compiled and the
> compiled version is cached so future runnings of the program go
> faster.

I think the reason for Microsoft's stance here is not so much technical but political. Interpreting has got a bad press (not justified by its current use in Java) so Microsoft have chosen to avoid the image problem by always compiling. The Java specification doesn't say whether an implementation is interpreted or compiled or both, and accordingly there are implementations which are pure interpreters as well as those that are pure compilers. There are even some which cache the code between executions (just as .NET can). All you can say about Java (as opposed to a specific implementation) is that it is designed so that it can be interpreted without unnecessary difficulty. The current Sun JVM's run in 'mixed' mode where little used/short running code is interpreted, but any methods with significant use are compiled.

In summary .NET has chosen not to allow an implementation technique which is useful in some contexts (very small devices), while Java implementers can compile just as .NET does or interpret if that is more appropriate for a given task, or use any suitable mix.

Mark Thornton Received on Sat Jan 11 2003 - 14:41:58 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US