A nice picture of (dependency) hell
disfunksioneel.blogspot.com
disfunksioneel.blogspot.com
Would it be better if there wasn't the reuse? Or if the system was less functional?
Sorry if you felt cheated by the title :)
Reuse works great on a small scale, but otherwise requires a lot of discipline both from the provider (who must refrain from interface changes, or have support for multiple versions from day one), and the consumer (who should be very considerate on which packages and features he uses).
Disk space has now become so cheap that there's really no tenable excuse for shipping your software with "some assembly required" and "batteries not included" labels. Which is why pretty much every major platform has quit doing it. The lone holdouts are linux distributions. And even they betray their implicit agreement that it's bad design when they resort to employing ungainly feats of contortionism known as "package management systems" in an effort to duct tape over the problem.
Linking everything statically works usually quite well, except if you use libraries that make some assumptions about being dynamically linked (e.g. GTK+).
The benefit is that you have one big EXE file for which you don't even need an installer. Also, it is usually smaller than the previous bunch of DLLs because static linking omits code that won't be called anyway. You can even run an EXE packer [2] on your result, making it even small and easier to deploy. The total memory usage, however, stays the same, of course.
The downside is that you need a good build system for that.
You might want to try to do some automatic force-based layouting instead for the most dependent-on packages would be easier to see.
Maybe I can give more connected packages a larger angle to occupy?
My assumption is that this is multiple dependency networks being displayed but that the networks are not all interdependent - eg: dev/ruby does not require dev/perl or vice versa.
It's an interesting exercise, but it needs justification to define it as representing "dependency hell" and not just a visualization of a complex system.
Also, to be read in a Crocodile Dundee voice, that's not a dependency, this is a dependency: http://thedailywtf.com/Articles/Enterprise-Dependency-The-Ne...
I recall Vim being marked as requiring Perl, Python and a half dozen other heavyweights (in PLD distro) simply because it had some optional support for those. Attempting to recover half-upgraded, half-broken system over slow connnection really sucked.
You're joking, right? When I set up a server, I want to set it up and be done with it.
Can you make any suggestions as to how I can make it better?