It is funny, because when you see other big languages -- which are
working very well -- like Perl, they all try to avoid embedding libraries!

The only real needs is to have something that automatically
download/build/install dependency!

AND WE HAVE IT: godi!

Or if you want things more distro based: debian...

This is a fascinating discussion because it hits at one of the core problems I have with OCaml.  Almost all of my work is done on systems that are not connected to any sort of network and all software that I install on the systems has to be approved.  I have no choice but to burn CD/DVD's with modules to install.

I personally also do the static linking against any library that doesn't come standard with the operating system.  Typically the ONLY libraries that I don't statically link are libc (I don't write UI applications so X isn't an issue).

In the world I work in, we are actually moving away from system shared libraries because we cannot count on each of the different installations doing their system maintenance properly.  This has led us into DLL hell on many of the systems we install to.  Because we don't have any administrator access to these machines, and NEVER will, we simply distribute EVERYTHING we need, sometimes source, sometimes compiled binaries for the platforms we support.

(Java applications tend to do this)

Godi would be very nice if I could figure out how to create a custom Godi repository that I could burn onto a CD and then point my Godi installer to it.  I seem to recall going through and looking through Godi a year or so ago to figure this out but ran out of time and patience.  Godi would have to be able to assemble the repository for me based on a top level set of requirements (run down the dependency chain) or the situation hasn't improved at all compared to distributing the modules ourselves.

At some level I think that what this really points to is a lack of a very large standard library.  One of the arguments often made by programmers that I'm trying to introduce to OCaml is that the standard library sucks compared to what they're used to.  They've gotten used to Java and Ruby and being able to quickly and easily do sophisticated string operations (the Standard string doesn't have many of the functions we commonly use so we end up using Extlib),  network operations, (sockets are a start, but just that), and XML processing.  While there are many packages out there to do these things we've all gotten used to languages that "come with it."

Take it or leave it, just my $.02 from trying to introduce OCaml into an environment where we write network applications (including but not limited to web services) that have to run on very tightly controlled systems.  (I know I'm in the huge minority of programmers)