I have participated in this thread about
LINQ for Java. There are some very good comments. I don't think that LINQ is perfect, but it is better than most alternatives. It is better than my proposal, Safe Query Objects [
PDF] (aka
Native Queries supported by
Db40), although the constraints were different. I was trying to see how to do a type-safe query language without any changes to Java. I think its a reasonable design. But if you allow yourself to change the language significantly, as Microsoft did, then you have to explore other possibilities.