On 18/03/11 09.52, Russel Winder wrote:
On Thu, 2011-03-17 at 20:44 +0000, Jason E. Aten wrote:
Please correct me if I'm wrong, but I observe that there doesn't appear
to be a package management system / standard repository for D libraries.
Or is there?
I'm talking about something as easy to use as R's CRAN,
install.packages("rforest")
or cpan for perl, ctan for latex, dpgk/apt for debian, cabal for Haskell/
Hackage, etc.
Note that every language-specific package manager conflicts directly
with every operating system package manager. Thus RubyGems, CPAN,
Cabal, Maven, Go, etc. conflicts with the package management of Debian,
Fedora, SUSE, FreeBSD, MacPorts, etc. leading to pain. Pain leads to
anger. Anger leads to hate. Hate leads to suffering.
If there's not a commonly utilized one currently, perhaps we could
"borrow" cabal, with a trivial port. cabal is Haskell's package manager.
Not only does having a standard package install system facilitate
adoption, it greatly facilitates code sharing and library maturation.
At the expense of easy system administration.
I guess the only up side of language specific package management is that
it enables people whose operating systems are not package structured to
do things sensibly. Alternatively Windows users could switch to a
sensible operating system ;-)
The worst thing is that dependency tracking is lost when the sysadm uses
another package system e.g CPAN. If the dependency problem could be
solved in an elegant way I think a sysadm would be ok with it.
Given that D has chosen to switch to Git for version control, doesn't
this imply that package management transported over DVCS is the way
forward. Go has certainly taken this route. It prioritizes Mercurial
but supports Bazaar and Git as well.
I like how Go uses git but there is room for improvements.
No reason the limit the protocols as long a it can be resonable
supported. It is just a place to download from. Put http, ftp, samba,
torrent, dropbox, facebook... in there as well :)
DSSS was actually a nice solution. Maybe it could be brought up to date
and improved to fit the needs?
/Jonas