The “what is a JavaSpace debate” rages on………….
Fundamentally, I don’t see this as being an exercise in pragmatists vs purists. It’s a difference in engineering philosophy/taste. Personally, I see a JavaSpace as well, errr, a JavaSpace. There are lots of things you can do with it:
- Co-ordination mechanisms
- Systems of co-operating entities for e.g. locking, queues etc
- Compute Servers
- Messaging
- Caching
Note that all of these things can be built on top of JavaSpaces. This leads to two different schools of thought:
- Make all these different things a part of a JavaSpaces implementation
- Make all these things layered frameworks that live on top of JavaSpaces
Arguments for the first option are often on the basis of improving performance or “making JavaSpaces more useful”. But JavaSpaces is already useful, acting as good simple underpinnings for all these different things.
And this is why I personally prefer the second option. I’m a minimalist, I like my JavaSpaces nice and simple and I like being able to construct cleanly layered frameworks on top of JavaSpaces. This allows me to have nicely separated responsibilities at each layer leading to (IMHO) better, more understandable, more maintainable design in my systems. I also like to avoid building such layers on top of JavaSpaces if there’s something out there already that can do the job better in a specific scenario.
[ Yep, read that paragraph again and realize that I am both pragmatist and purist. How annoying that I cannot be easily pigeon-holed as one or the other! ]
There’s no accounting for taste but let’s be clear that it has nothing to do with being pragmatic or purist. It seems like Cameron also has a taste for minimalism……
Technorati Tags: design, engineering, philosophy
Entries (RSS)