Hi,

First of all, sorry for breaking the thread, but I had some trouble with
my mail provider, and couldn't hit the "reply" button.

To the point...

I think there are some things that are simply not solved by abstraction.
Some problems are concrete problems that need concrete solutions,
filesystem access is one of them, IMNSHO.

I pretty much think 

if ($*OS ~~ POSIX) { ... }
elsif ($*OS ~~ Win32) { ... }

is much saner than trying to deal with an enormous API that would be the
result of the attempt to get a sane abstraction of all the different
possible scenarios, and that would end up having backward-incompatible
changes after a while because of some use case scenario that wasn't
adrressed.

On the other hand, we really could think on having chmod, chown etc in
the POSIX module, and have the POSIX module imported (where chmod would
be in the default exports) by the prelude when in a posix machine, the
same for the Win32 or whatever counterpart.

Of course it would be very much interesting to have the "open"
implemented by the POSIX module with the same API as the "open"
implemented by the Win32 module. But I'm pretty much sure that's not the
case for chown and chmod, and I don't think an abstract API is worth the
trouble for 99% of the cases.

But note that this doesn't stop the people in the 1% case to write the
abstraction API, I just think it doesn't need to be the only way to
access the features, and it certainly doesn't need to be loaded in the
prelude.

daniel

Reply via email to