matz / ruby-lang.org (Yukihiro Matsumoto) writes:

> |I have a vision for the libraries in 2.0 which I'm sure will never see
> |the light of day.
> 
> I think the builtin libraries for scripting languages should provide
> "illusion" of portablility.  Feature set should not dangle in the wind
> on each platforms.  So, we have to "polish" the abstract model for the
> libraries, not separate them platform to platfrom, at least for basic
> feature set.  I chose UNIX model, and it might be too close to UNIX.

I think everyone agrees on the first point - we should provide
portability. And to 95% of the scripts out there, the kind of basic
facilities I was suggesting _are_ portable: reading and writing files,
running external commands through #system, and so on.

But file modes, ACL lists, symbolic links, and the like are not
portable, and never will be. They can be emulated to greater or lesser
extents, but you always lose something in that emulation.

So, to my mind, we actually achieve _better_ portability by providing
a common set of functions that we guarantee work across all platforms,
and then by providing platform-specific personalities for the less
commonly used features that are platform-specific.

I think Ruby has an opportunity here to show other languages just
_how_ to be a portable scripting language. Let's not just blindly
follow Perl into the "Unix everywhere" model, but instead let's think
about what's best for our users.


Regards


Dave