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.