Michael Rueger wrote:
Damien Cassou wrote:

Rio is a *must* have for Pharo.

I politely disagree.

There isn't anything in Rio that isn't already or could easily be added to URIs. I'm also not a big fan (to say the least) of adding "convenience" methods (like the zip stuff in Rio).
IMHO convenience is the death of good design.


Michael

The basic way that RioKernel works is layered upon the VM primitives. The guts of the implementation is built upon one method... #select: selectBlock which calls #startAt: rioOrString recursively: beRecursive select: selectBlock into: results

I was quite pleased with the way this worked out being quite elegant, and so if you want to add this to URI's it would be better to implement URIs on top of Rio or RioKernel, than FileDirectory.

The zip stuff in rio is not "convenience" methods, it aims to transparently implement an alternate file system, a zip file. I havent got around to doing remote ftp file systems, but that should be achievable using the same approach.

The gzip mode implements an alternate file type, piping to and from compressed streams, again transparently.

The ultimate aim here, is to be able to hand a rio as a parameter into a tool, and that tool should be able to read and write to the file represented by the rio, irrespective of whether that rio represents a remote file, a gziped file or a file within a zip file. Its basically polymorphism in action, and I would like to think that that is good design.

Keith


_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to