ashdjones said:
Think about the road you're heading down: ie. a new layer of dependency hell. Is this fun for a user? You'll be effectively breaking the uniformity of drag-drop-execute in regard to PND files. It just adds headaches for people as they try to keep track of it all.
Having a Mono.pnd maintained by a single person (in the case of Mono, I will attempt to do this) which .NET based PND's can depend on seems to be a perfect way of avoiding dependency hell. I also think it makes things as easy as possible for the user.
I think you may have been responding to the first half of my post (although you didn't quote it) about including smaller dependencies within individual game PND's. This does make your PND's larger (so I suggest is only for small libs) but it actually avoids dependency hell as it means that your application is being shipped with exactly the library version it has been built and tested against. Therefore, no dependency issue and it is as easy as possible for the user (i.e. they dran and drop their PND and it just works).
ashdjones said:
To conserve SD space, why not this:
An application, possibly as part of the firmware will scan an SD card and look at the contents of all the PND files. It will take any duplicate libraries and place them in Another PND/Mounted Folder or whatever (which is the whole point of this topic anyway) and remove the one from the PND.
Perhaps this can be presented a Free-Space creating utility that pops up when an SD card gets full?
This could actually cause a form of dependency hell. What happens if a developer needs a particular library built in a special way (maybe with options that are not usually compiled in, or experimental features that should not be available system-wide) and so builds their own version and includes it in their PND. This tool would then delete the custom library and point the developers application at a generic version, probably not ending well. Plus remember that most developers who include dependencies inside their PND will statically compile against them so this space-saving tool would probably not find many matches anyway.
Of course, including generic dependencied inside indivitual game/application PND's is wasteful of space. And so I would hope to see the common dependency sets spun off into some common PND's anyway. Obviously this includes Mono and Java, but also SDL extras, Allegro etc.