Re: Difference between .NET and Java
From: Jeremy Deats' (jeremy_at_nospam.com)
Date: 07/08/04
- Next message: Jeremy Deats': "Re: Difference between .NET and Java"
- Previous message: marcus: "Re: Avoid multiple logon.."
- In reply to: Tony Morris: "Re: Difference between .NET and Java"
- Next in thread: Tony Morris: "Re: Difference between .NET and Java"
- Reply: Tony Morris: "Re: Difference between .NET and Java"
- Reply: Chris Smith: "Re: Difference between .NET and Java"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Thu, 08 Jul 2004 05:23:35 GMT
"Tony Morris" <not@telling.you> wrote in message
news:KK3Hc.83920$sj4.37082@news-server.bigpond.net.au...
> > Really? I'd like to know what those errors are? My Java2 knowledge is
> > limited so I'm not surprised, but what specificly did you find erronious
> > about my C#/.NET comments?
>
> "most Java2 programming is J2ME specific"
>
> Blatantly incorrect.
That was a typo on my part, what I intended to say there was "most of my
Java2 programming is J2ME specific", sorry.
>
> "one of our Java2 programmers told me that IBM has a
> Just-In-Time VM for Win32 that does do this, but it's commerical software
> and cost $$$ to license."
>
> The IBM VM is provided at no cost.
> The IBM VM has "done this" for many years as has the Sun VM.
> Don't trust anyone that claims to be a "Java2 programmer" - Java is a tool
> for software development, not an industry-preferred focal point of
> expertise - this is, of course, a generalisation. At least in my
experience,
> the ability to develop software and understand the processes and
techniques
> involved far exceeds the demand to have intimate knowledge of a particular
> language.
>
Where can I download this on IBM's site, it doesn't seem to be available.
> "The result of this is that .NET apps run faster
> than Java2 apps on Windows with the default Java2 VM provided by Sun."
>
> Blatantly incorrect and unsubstantiated.
>
> "Also, Microsoft intermediate language is opened for language developers
to
> build on (it's actually an Assembly Langauge that you can write in if
you'd
> like), so C#, VB.NET, COBOL.NET, J#, etc.. all are compiled into MIL
> (Microsoft Intermediate Language) if you wanted to create Pearl.NET you
> could."
>
> .NET is language independant (provided that language conforms to the
Common
> Language Runtime). .NET is compiled to MSIL - this is analogous to Java
> being compiled to VM bytecode, which is an open specification
> (http://java.sun.com/docs/books/vmspec/). One might go on to suggest that
> the Java VM is "language independant" in the same way .NET is - the only
> difference is that it is not marketed as such i.e. there is no technical
> constraint that prevents this from occurring. As I understand it, there
are
> other languages (not Java) that compile to VM bytecode (Jython for
example).
>
I've seen diagrams that show .NET being compiled to byte code prior to MSIL,
since I don't have this reference handy I'll just assume it was incorrect,
however my understanding of the JIT process used by .NET is quite a bit
different than the Java2 approach, see:
http://www.gamespp.com/csharp/usingNETJITCompiling.html
The dynamic caching of native code does make for faster execution (at least
according to our benchmarks) which is in part why our shop abandoned J2EE in
favor of C#/.NET I didn't conduct these test, so no I can't unsubstante
this.
Here is one study conducted by a third-party (funded by Microsoft most
likely so taken with a grain of salt):
http://www.gotdotnet.com/team/compare/middleware.aspx
> "The .NET VM (aka Common Language Runtime) was built primarly with the
Win32
> API in mind and is closely knit to the Windows platform."
>
> This is incorrect (but not as blatant as the earlier comments).
> The Common Language Runtime was not "built primarily with the Win32 API in
> mind." This is evident simply by reading the specification. In fact,
many
> people that I know agree with my speculation that the CLR was in fact
"built
> with Java in mind" - that is to say, there are some striking similarities
> between Java and the CLR and the fact that some of the "additional
features"
> provided by C# are not part of the CLR (a trivial example is the CLR
> equivalent to Java primitive types and the C# extended types). There are
no
> similarities between the CLR and the Win32 API. There are a lot of
> similarities between the .NET framework and the Win32 API - perhaps you
> meant that.
>
Actually what I ment to say was the .NET has Windows specific functionality
while Java2 (to the best of my knowledge) does not provide any OS specific
classes. Examples of Windows specific functionality in .NET are classes for
working with MSMQ, Windows Registry, Windows Remoting, EnterpriseServices
(for COM+ Interop).Some of this functionality is exposed though the Win32
API so the fact that Microsoft does provide .NET classes around these
Windows specific functions makes it OS specific to me. Microsoft has also
provided a number of optional .NET SDKs that wrap around even more native
APIs (e.g. Managed DirectX)
> "Getting past this the .NET class libraries provide a bit more
functionality
> than the class libraries provided by Sun (not much, just a bit though)."
>
> Agreed - but qualification would be nice.
>
> "this is most just utility items (e.g. in .NET if you want to convert from
> one
> data type to another their's a static Convert class that works like a
magic
> box)"
>
> But I wouldn't agree that this as an example - shall I qualify my
reasoning
> (would it benefit anybody?)?
>
> "there are things missing in .NET though (no Vector, but you can make
> one pretty easy)"
>
> There are things missing - in fact, there are a lot of collections types
> missing from both Java and .NET - Vector is not one that is missing from
> .NET - it is (speculatively) intentionally omitted since it is of a flawed
> design. The sooner the Java API Specification deprecates it, the better
> (personal opinion - not factual). .NET does have the equivalent of the
> java.util.List type - but there are some collection types strangely
missing
> from the .NET framework that appear in the Java API Specification -
"Vector"
> and list implementations are not one of them.
>
> "The primary advantage of .NET (comparing the C# language here to Java2)
is
> that .NET has Visual Studio.NET (so far I've seen no other IDE that can
> match VS.NET, yes I've tried WebSphere, Eclipse, Borland, Sun One, they
all
> fall short in some areas). "
>
> This is your personal opinion that I strongly disagree with. Suffice to
say
> that if I was to elaborate too much, I'd be violating my employment
contract
> with IBM. I will speculate that anyone who has enough experience with
both
> .NET and Java will disagree. VS .NET 2005 (currently beta) is only just
> introducing the concept of "Code Refactoring" for example. VS .NET falls
> short in a LOT of areas.
>
I'd argue the usefulness of code refactoring, but that is subjective..
IBM's current IDE product fall a bit short on delivering VS.NET style
"intellisense" functionality and code generation, but the context sensitive
help is another huge beneift that comes to mind. Not to mention the ease of
managing solutions, maybe it's just my lack of experience with other IDEs,
perhaps they should be more intuitive.
- Next message: Jeremy Deats': "Re: Difference between .NET and Java"
- Previous message: marcus: "Re: Avoid multiple logon.."
- In reply to: Tony Morris: "Re: Difference between .NET and Java"
- Next in thread: Tony Morris: "Re: Difference between .NET and Java"
- Reply: Tony Morris: "Re: Difference between .NET and Java"
- Reply: Chris Smith: "Re: Difference between .NET and Java"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|