Microsoft had just bought Java!!
Maybe many people would hate me for this, but Java 1.5 looks a lot like some Microsoft guy got into Sun's facilities like an spy, won the confidence of everybody in there and, somehow, wash their brains with Microsoft philosophy. Then, the Java community implemented many things in this Java version. Lets review:
* New for loop: looks like the "for each whatever thing" of Microsoft. On the other side, this doesn't affect any existing code, but improves programmer's development time. Yes: sounds like a Microsoft slogan. However, in my opinion this new feature is a good one.
* Autoboxing and Auto-Unboxing: Works just like Visual Basic (is it allowed to put the word "Java" and "Visual Basic" on the same page?!!!!! Discusting!!)!!! Fortunately, for now this is only for the primitives types, as I said, for now...... What's next? Default property?!! I hope not!
* Varargs: Well, another C integration. For me, Varargs can be made with a single array param. I want to think that the compiler would detect any ambiguos call. For example, if you have a function called "fx1" that receives 2 String params, and then you have another function that overloads "fx1", but receives String varargs. When you call fx1("Hello","World!"); how does it know which one will call? OK, the compiler has a way to determinate this but, what if you had no made any sintaxis fail in your code? Compiler won't complain about any error. But in logic, you program may fail during execution time, and you could spend many hours looking for the error, when it was as simple as the compiler created the bytecode to point to the incorrect function. For me, overloading was a good way to avoid ambiguos calls or confusing code. Yes, this makes coding task easier, just like Microsoft would say.
The other new features are OK. I think the ones above are the Microsoft one's. Will we have in Java 1.6 something like plataform-dependent, default properties, get and set vars, macrofunctions or anything similar?

