Expanding Phobos from a flat hierachy

Robert jfanatiker at gmx.at
Wed Feb 6 04:02:29 PST 2013


On Wed, 2013-02-06 at 08:56 +0100, Don wrote:
> Eg, are there entire top-level branches which are obsolete? How 
> many stupid names are there (eg, "std.algorithm2") which were 

Well in order to avoid such "stupid" names, I think it would be a good
idea to keep the standard library small. Include only the things that
are important to be "standard" in order to ensure interoperability
between libraries.

Instead we should offer a central place for D libraries, like CPAN for
perl or http://pypi.python.org/pypi for python.

The benefits:
- The base installation stays small, which might be important for
everything that is not a PC.
- Versioning is easier, because every library can exist in multiple
versions, and every project can choose to which version it wants to
link. (For backwards compatiblity) -> No stupid names, if the libraries
are small, simply deprecate the complete library.



-> In fact such a central place is already on my todo list. I have the
idea of creating an infrastructure, where you can easily write D
scripts, which may import arbitrary libraries from the repository. A
tool like rdmd would then notice that the libraries are not installed
locally, so it does install them before running the script. (I think of
integration with http://openbuildservice.org/ for Linux based systems
and some custom installer for Windows.)

-> This way we would have a really convenient way for scripting in D and
it would be easy to toy around with an idea, before creating an actual
project.
-> So instead of creating a single monster standard library, just offer
a central place for D libraries and automatic dependency management.

I hope that I find the time soon to implement such a thing, but it will
be a huge amount of work and maybe this is the right occasion to ask,
whether anyone else thinks this would be a good idea.

Just some of my recent thoughts.

Best regards,

Robert



More information about the Digitalmars-d mailing list