Monday, June 12, 2006

It isn't about AutoBoxing

I was just reading the latest Dr Dobbs, and there is an article about Java 5/6 and performance. One of the items mentioned was AutoBoxing. This reminded me how this is yet another case where Java copied the wrong thing from C#. C# has AutoBoxing and ain't it cool! Lets be like cool C# and have AutoBoxing too! Arrrgg. I think the problem is that a lot of people collude 2 aspects of C#/CLR. On one hand, there is AutoBoxing. The side effect of that is that 'int' is equivalent to 'System.Int32'. The second part is what is so powerful. I really find it frustrating that I can't do things like 2.toString(). Why do I have to type Integer.MAX_VALUE, rather than int.MAX_VALUE?

To me, this is just another example of how Java is still playing catch-up to C#. I love Java's cross-platform-ness, and I generally find that Eclipse is an amazingly productive IDE, but if I still find myself missing features from C# on a daily basis. I've mentioned some of these before, but the short list of features I miss are:
  • IFDEF - C# gets this correct. C++ macros are dangerous, but basic IFDEFs are ultimately a requirement of every project I've ever used.
  • Struct - I want arrays of structures, not arrays of references to objects
  • Enumerations - Fixed in Java 1.5 (mostly) but most corporate environments will still be targeting 1.4 for years to come.
Since writing my original rant, NetBeans' profiler has been released and is justification to have NetBeans installed on any Java developer's machine. I vastly prefer Eclipse over NetBeans, but for profiling, NetBeans' profiler is competitive with a lot of the commercial offerings costing hundreds of dollars.

I've never tracked the JSR process. Are there any JSR's for IFDEF or Struct? If not, I tihnk it is time for me to try and stir something up.


Post a Comment

<< Home