James Grahn wrote:
 but I'd
appreciate some clarification as to what that objection is.   I don't
believe that any annotations or fancier tools will be necessary.

Are you suggesting type safety is NOT a necessary language feature in distributed code?

By adding a Generic JavaSpace API to River it suggests that Generics work as expected in Services and uphold type safety rules.

But is dropping type safety to eliminate some boilerplate code is an acceptable compromise?

How do we tell developers when they develop their services using Generics, the static compile time safety guarantee of generics doesn't exist in dynamically loaded code? They will of course expect type safety so this may come as a shock to some, how will this reflect on River?

The problem is that if we move forward now and support generics without type safety, it's going to be much harder to fix later.

I think we need to investigate solutions implementing type safety with Generics in dynamic code. Then you can forget about your corner cases, they are symptoms of unsafe type conversions that will vanish with the right solution.

I'm not saying don't use generics, please experiment, but they're not stable until type safety issues have been properly addressed. Until we address Generic type safety in dynamic code which Services are, we should say it's experimental.

I don't wish to sound discouraging, but I think ignoring the bigger picture is not the solution for River, I acknowledge that in your particular case you have figured out work arounds with some corner cases to be avoided, but the compromises made may not be acceptable for other service implementations.

I'm interested in OpenSpaces type safety, namely:

*Generics Support* – developers can use generics to avoid unnecessary casting and make their interaction with the space more type-safe.

How did they make OpenSpaces more type-safe using Generics?

Peter.


Reply via email to