Thanks. this is why I propose a group to work on a new file library may be starting from GNU + rio interface + URI. This can be a good item for pharo milestone 2. I will start to collect information (such as this email, GNU library, ....) Stef On Jul 30, 2008, at 8:29 PM, Lukas Renggli wrote:
because the interface of rio is looking good.
I agree, and I think it Rio goes in the right direction. I have some things to consider before including RIo in Pharo though:
- I read everything mentioned about the Null pattern and checked its use in Rio. This looks nice and probably makes sense in the context. I don't believe however that something like that should be part of a standard image. People won't understand it, beginners will be confused and it is highly incompatible with any other Smalltalk dialect.
- Rio prominently uses #doesNotUnderstand: for delegation (not only for the Null implementation). In my opinion this is a big no-go for any core-library. This looks like a design smell. It makes debugging and code understanding unnecessarily hard.
- Internally Rio uses string concatenation everywhere. For example to get the parent directory the path is split into two parts and a new object is created. What about paths that contain $/ as part of a file-name?
- Rio mixes meta-levels. For example the inst-vars 'recursive', 'rename' and 'binary' (temporary navigation settings) are on a completely different level than 'value' and 'stat' (the actual model object).
- Rio uses a string as the internal representation of the path (Why not a chain of parent directories?). When opening a Smalltalk image on a different platform a conversion is supposed to happen, however this is not implemented as far as I can see. I think a correct implementation will be complicated because for n platforms n^2 conversion methods have to be provided.
- Rio does not support relative paths. If you get the directory relative to the default path it simply stores the full absolute path. If I move the Smalltalk image around, Rio points to the wrong location.
- Rio uses several non-standard extensions that I don't know where they are coming from. I run across: Stream>>#<< and Stream>>#,
- Why copy the name of a Ruby framework?
Cheers, Lukas
-- Lukas Renggli http://www.lukas-renggli.ch
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project