Okay so I need to know a bit of Java and be able to build something if needed to help a friend so figured I should install the stuff to get it going.
Now, here's the first of not many plusses over .NET. I installed Eclipse by unzipping the archive and running it with an appropriate SDK installed.
It ran. I was impressed. Mostly by:
- The fact it wasn't as slow as treacle like all over Java IDE's I've had the dubious pleasure of trying out.
- The fact that it was obviously Visual Studio .NET with a few minor improvements like a most excellent colouring of the current line slightly different so you knew where you were even with wordwrap and/or a long line. Refactoring and code templates like what is coming out in Whidbey/Visual Studio .NET 2005 was also already in it and working well.
- My java app compiled and ran - the only difference between it and the equivalent C# app? For some stupid reason Java's ArrayList is in the java.utils namespace rather than a collections namespace.
- Eclipse looks correct on Windows XP. WHAT I hear you yell... Well, it's true. Visual Studio looks like it's on 2000 even if you change the theme, it's just poorer integration.
Now for the negatives I've noticed so far just playing around:
- No foreach on objects. This one is really getting to me. For just does not cut it!!!
- Threading doesn't use callbacks - you have to build a new thread class based on the parent class of Thread. Seems somewhat of a disconnect from keeping the code nice and modular.
- The string type is capitalised. Yes, I know this is petty.
- C# code looks nicer: Getters and setters are more neat and tidy.
- Where is delegation in Java? It just seems to be... missing.
- Interfaces seem to have been thought out more in C# - how do you prevent one being run if the object is addressed as its native type?
- Where are enums in Java? Also... absent without leave.
- I can't seem to find struct's either - how to you make a high speed primitive type?
- Where are the overloading features again? I can't find mention of most... Operator overloading for example.
- No versioned GAC.
- No attributes for methods.
All this is ignoring the multi-language capability of .NET, and the 'interesting' model of page generation of ASP.NET where objects exist between calls andPermalink 3 Comments