Re: Difference between .NET and Java

From: Jeremy Deats' (jeremy_at_nospam.com)
Date: 07/08/04


Date: Thu, 08 Jul 2004 05:27:40 GMT

Since you work for IBM doesn't that make you a bit biased?

-Jeremy

"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.
>
> "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.
>
> "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).
>
> "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.
>
> "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.
>
> "The other advantage is ASP.NET which has stolen
> the best concepts of JSP, PHP, ColdFusion, and borrowed from classic ASP."
>
> This comment only suggests a lack of understanding of the J2EE
architecture
> and design intentions - I can't really write a book about why this
statement
> is completely incorrect - I have pizzas cooking.
>
> "Java's primary advantage is that you have your choice of third-party
tools"
>
> Again, blatantly incorrect, but would require a book to explain why (can
you
> smell something burning?). Anyone who has at least a mild experience with
> the Java 2 Programming Language will easily contradict this statement.
>
> "If you're doing Windows development use C# and .NET, if you're app has a
> chance to benefit from running on some other platform use J2EE."
>
> Unsubstantiated conclusion since all of your reasoning is incorrect and
> misleading.
> Good luck gaining the required knowledge and understanding that appears
> would be beneficial to you :)
>
> Pizza time.
>
> --
> Tony Morris
> http://xdweb.net/~dibblego/
>
>
>