Linked by Thom Holwerda on Thu 28th May 2009 19:17 UTC
OSNews, Generic OSes Ask OSNews is apparently quite popular among you guys; the questions just keep on coming in. Since David took on the first two, we decided to let me handle this one - it's an area I've personally covered before on OSNews: file system layouts. One of our readers, a Linux veteran, studied the GoboLinux effort to introduce a new filesystem layout, and wondered: "Why not adopt the more sensible file system from GoboLinux as the new LSB standard?"
Thread beginning with comment 366397
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[5]: Comment by kaiwai
by DoctorD on Mon 1st Jun 2009 00:01 UTC in reply to "RE[4]: Comment by kaiwai"
DoctorD
Member since:
2009-03-08

Quick little anecdote on this topic - yesterday I downloaded Handbrake for Fedora. I noticed the download page had only source or Ubuntu packages, and it wasn't packaged in the Fedora repos already. I also noticed the Ubuntu binary packages were much, much larger than the source - that's odd, I thought.

So I downloaded the source, read the docs, started it building and watched in fascinated horror as it downloaded and built its own private copies of ffmpeg (which isn't _so_ unusual, as they're crappy about doing stable releases, and snapshots are frequently not compatible with each other), a52dec, faac, faad, lame, libdca, libdvdread, libmkv, libmp4v2, libogg, libsamplerate, libtheora, libvorbis, mpeg2dec, x264 and xvidcore.

I did _not_ think to myself "wow, how convenient! Now this app is a neat little independent ball I can stick wherever I like!"

I thought...well, firstly I thought "sheesh, I'm lucky I live in Canada or this thing would've just caused me unwittingly to infringe on several dozen patents with no warning whatsoever". _Then_ I thought "good God, what a hideous ball of...hideousness." Then I thought "I feel sorry for the sucker who has to manage that build script and pile of patches. No wonder there hasn't been a release for months and they haven't built packages for Ubuntu 9.04 yet." Then I thought "What a horrible mess my system would be if every app that dealt with multimedia built its own copies of all those libraries instead of just using the system ones." Then I gave the whole thing up for a bad job, didn't install it, and left it alone.

Jeez.


Perhaps you should look for one damn thing in your 4 paragraph rant that is of concern to -anyone- but coders obsessed with avoiding code duplication. Any one thing whatsoever. It would certainly help all those uninitiated types who download handbrake know what a big mistake they're making.

The -only- ideal you seem to adhere to is avoiding code duplication across the board. Which is why you ended up with an awful 4-paragraph experience. This in turn doesn't benefit most people in any real way. You could instead simply drag handbrake to your applications folder, and be done with it.

Give me a 5mb hard drive and I'll stick with your route. Avoiding code duplication at the cost of everything else might make sense in that sort of situation.

Now consider this. My applications folder contains 55 items. It takes up ~0.01532615 of my total hard drive space (even taking into account the actual binary disc space and not advertised disc space). Roughly one and a half percent of the total. When actual software doesn't even make a substantial impact on your hard drive in the first place, what does it even matter? Next time I install an app, I'm not going to lose any sleep over what code may have been duplicated.

Edited 2009-06-01 00:03 UTC

Reply Parent Score: 1

RE[6]: Comment by kaiwai
by AdamW on Mon 1st Jun 2009 02:07 in reply to "RE[5]: Comment by kaiwai"
AdamW Member since:
2005-07-06

The point of avoiding duplication has nothing to do with hard disk space. There are two major reasons:

1) So that, when you fix a bug in some code, it's fixed for _every app that uses that code_. This is even more important when the bug is in fact in a security issue. If every damn app on your system had a private copy of libpng, every single one would have to be patched when a vulnerability was discovered in libpng. How does that make any sense?

2) Saves on _memory_. Not hard disk space. Memory. Far more important. If every app has its own private libraries, then even if all ten apps you're running use the same, say, ten libraries, you'll get ten copies of each library loaded into memory. Owch. If they all use the system copies, you'll have only _one_ copy of each library loaded into memory.

This is why shared resources are important. And that's why you can't just forget about them and make every application its own little bundle.

Reply Parent Score: 2