[prev] [thread] [next] [lurker] [Date index for 2005/04/23]
On Sat, Apr 23, 2005 at 09:50:41AM -0500, Peter da Silva wrote: > Dependencies are bad. Tools to resolve dependencies are only good when the > dependencies are necessary. Tools to MANAGE dependencies and let you see > what they are so you can avoid them when you don't need them are rare. Hell, > it's often hard to even SEE what the dependencies are, particularly in open > source software. Dependencies might be bad but ya know what's worse? Everybody reinventing the wheel 20 times over and each getting it wrong in subtly different ways AND hard coding their bug into the software. Oh look, ANOTHER half assed regex-based HTML parser that breaks when you throw anything complex at it. Here's one that tries to send mail with /usr/lib/sendmail. Oh look, this one gets the leap year calculation wrong. This one can only one handle one date format. Oh goody, ANOTHER templating language to learn! I want to patch the tests on this one but its using some crappy home-rolled testing library. Great, ANOTHER POD parser that gets tripped up by complex POD. I've seen it all. I hate it. Modules and dependencies suck less. If nothing else at least you only have to install them once, its automatable and the bugs are in one place. They introduce new hate but overall hate is reduced. > So what I see is a perl script to do something useful, the guy who used it > wanted to do something and there was a CPAN module that did a lot of other > stuff but also seemed to be a bit easier way of doing whatever he wanted than > writing a couple dozen lines of code himself. So he uses it. He never sees > that that module pulls in 20 others, and then it says "SillyJokes::Unicorns > needs Perl5.0003.34 and you're using perl5.0003.16" and the next thing I > know it's pulled down perl5.0004.12, and built that... > > HATE The problem of the CPAN shell pulling down perl been fixed for quite some time. I hated it, too. > So I go in to the original program, and find that it's using some XML parser > to grep a fixed format web page for a chunk of text that doesn't even include > any HTML, and I replace it with a regexp, and the resulting code is 20 times > faster. > > HATE This is partially a consequence of Perl's weak dependency system. You depend on something or you don't. RPM has a similar problem. A new system is being introduced via Module::Build with a much more rich dependency system (modeled on uncoincidentally dpkg) including things like "recommends" which lets you avoid the problem of installing the universe just because you *might* need something. Similar to the way you can very easily install something like XEmacs under Debian without having X. This system is not all in place yet. Perl has the additional issue that we've traditionally avoided bundling modules together into great big wads like Java does. It boils down to the shared vs static libraries debate which I'm not going to get into. At least now the tools exist to wad a Perl application's dependencies together using PAR. All its implementation hate aside, its the only language that's usefully solved the problem of automatic dependency installation and upgrade at the language level! Most languages don't even try or they have some crappy web site (RAA, Vaults of Pernasis, CodeZoo) or they just smash as much as they can into the base distribution (Java, PHP) or they let individual operating system vendors figure it out (C). Anyhow, that's Perl-specific hates. We're talking about Apple. > Most commercial operating systems and many applications have mechanisms to > automatically update themselves. I ALWAYS turn these off sooner or later, > because all too often I have had the "new, improved" version break things. > > Developers do stupid things, sometimes. They remove functionality. They break > functionality they don't care about. They change configuration files. They > don't necessarily want the same thing out of their software that I do. > > Would you want to be automatically updated to something like Netscape 6? > What if you want to keep the functionality that was dropped in later versions > of Gnomeapps, and you're not a geek who can edit the config files? If the new version sucks then reinstall the old version. What's worse? Manually checking and upgrading 100 pieces of software every week/month? Or doing it automatically and having to rollback one application every once in a while? Or maybe you just let everything get dusty. Keep in mind this is a desktop machine, not a server. What's going to consume more of your time in the long run? And if you don't like the new version is fucked, what's the alternative? Use the old version forever? Do you still use Netscape 4? No, if newer versions continue to be fucked you're going to dump the app entirely and switch to something else. Looking at this MacUpdate Desktop thing it looks like it has per-version ratings so you can get an idea if its going to be a lousy update before you let it update. You can't avoid upgrading forever. This is hateful but it is less hateful than dealing with having to work with and write for ancient versions of software. > > No complex packaging system or registry is required because Apple already > > has such a system, the .app bundle. It could have been something as simple > > as an extra file in the .app directory describing where to check for and > > download the latest version. > > The version number is already there in every .app directory. There's already > third party tools that promise to take care of you, using their own databases > or the ones at MacUpdate or Versiontracker. I think Macupdate sells one. I paid $1500 for this machine and operating system and (if I actually paid for upgrades) $140 for each OS upgrade. I shouldn't have to pay another $40/year for a basic packaging system. A $300 PC with a free OS can manage it. Why not Apple? Yes, I expect to get my money's worth. Otherwise, that MacUpdate Desktop looks like what I want. Thank you. > Apple has made a painful task trivial, without forcing people like me to work > like people like you, AND there's software for people like you. It's a MUCH > less hateful solution than Debian or CPAN or even FreeBSD Ports. There's no forcing you to work like me. You can allow automation without forcing automation. The dmgs would still be downloadable by hand if you really wanted to, same as they are now. Same as how you can grab all the stuff provided by Software Update by hand if you really wanted to do that. I miscast the order of the upgrade algorithm. Currently it is not O(n) (ie. worst case is N) it is omega(n). The BEST case is n. I want theta(1) with O(n). Average case upgrading should be one step. Worst (or in your case, desired) case its n. Which is, I guess, the point. If you don't want to do automatic upgrades fine, but don't stop me from doing it. And especially don't let me have a taste (Software Update) and then not do it for everything.There's stuff above here
Generated at 02:00 on 03 May 2005 by mariachi 0.52