On Sat, Aug 2, 2014 at 12:28 AM, Nicholas Cole <nicholas.c...@gmail.com> wrote: > Actually, that's not right. RiscOS had and OS X has (I'm sure the > others do as well) a concept that is similar to a shared library. But > the joy of an application bundle is that installing an application > does not scatter its own files all over the file-system, putting > configuration files here, binary resources there, library files > somewhere else, executable files somewhere else again.
Shared libraries are a code execution model. The question is, how do you locate them? Let's suppose I write a program that requires the Nettle cryptography library. I can't depend on you already having that on your system; you might, but I can't depend on it. What do I do? Do I include it in my application bundle, or do I have some small record that says "and by the way, I need libnettle"? Including it in the application bundle means there'll be duplicates everywhere, possibly of slightly different versions. Not including it means there needs to be some kind of system for resolving dependencies, which is exactly what apt-get, yum, pacman, and so on are for. The installer has basically three choices. 1) Install libnettle inside the application directory 2) Install libnettle to some system library directory 3) Don't install libnettle, and demand that someone else (perhaps the user, or the system package manager) install it. Option 1 results in duplications. (Unless one application is allowed to access a library in another application's directory, which is a HORRIBLE mess.) Option 2 is exactly what you're complaining about, scattering files all over the FS. And option 3 is what package managers are for. What are you advocating? ChrisA -- https://mail.python.org/mailman/listinfo/python-list