What Makes A Programming Language Good

Adam D. Ruppe destructionator at gmail.com
Wed Jan 19 15:54:52 PST 2011


Jesse Phillips wrote:
> You can have the author release packaged libraries for developers
> to use and the author should do this. So this begs the question of
> what is the repository for?

It's so you have a variety of libraries available at once with
minimal hassle when you are originally writing something.

I really don't care about those libraries' implementation details.
I just want it so when I type "import something.lib;" in my
program it actually works. If something.lib's author wants to
use other.thing, great, I just don't want to think about it
anymore than I think about his private classes or functions.


> Why is the tool going out to different URLs and downloading files
> when you are supposed to use the pre-built lib?

The second level of downloads is an implementation detail,
aiming to provide the illusion of a pre-built lib when the
author didn't actually provide one.

The first level of downloads (the things you actually import in
your own program) are there for your own convenience. It's
supposed to make this huge ecosystem of third party libraries
available with the same kind of ease you get with Phobos. You
just write "import std.coolness;" and it works. No downloading
anything, no adding things to the command line.

I want third party modules to be equally available. But, just
like you don't care if Phobos uses zlib 1.3.x internally or
whatever, you shouldn't care if third party modules do either.
Phobos comes with "batteries included"; so should everything else.


> Having a standard way for which things are built, having easy
> access to all relevant libraries, and knowing you can find most
> of what you need in one place. Those are the reasons.

We agree here. The difference is I'm only interested in the top
most layer - the modules I import myself. I couldn't care less
about what those other modules import. In my mind, they are
just like private functions - not my problem.


More information about the Digitalmars-d mailing list