[prev] [thread] [next] [lurker] [Date index for 2005/05/26]
> As an aside - releatively recently Decades. > I've heard more than a few people > (both here and in other forums) complain that dependencies (and hence > shared libraries) Shared libraries are implementation, not design. Back in 1979 I was working with some other guys at Berkeley trying to run some software that came out of the Tufts software distribution. We couldn't get it working without a bunch of work because they included some of it as object files that you had to link in, and THOSE files depended on some custom system calls they'd put into PDP-11 UNIX. Not a "shared library" in sight. > are a bad idea, Well, not "are", but "can easily become". Especially if they're not identified. I've spent six week shaking down and integrating the dependencies in one package on Red Hat, and even when I decided to just duplicate the existing system it took two more weeks to put together an install script that actually worked on a virgin Red Hat system. > especially if they don't control them. If you control them, you're not dependent on them. The Excel compiler was not a dependency for the Excel team, even if it was a dependency for the Excel code. > I'm always intrigued to hear whether they advocate static libraries, or > just not-invented-here or whether they have a new, entirely shiny and > different way of doing things. I advocate IDENTIFYING dependencies and, WHERE POSSIBLE, eliminating them. That doesn't mean "don't use anything anyone else wrote", it means "write robustly portable code". One way of looking at portability is that portability is all about identifying dependencies and eliminating them. You isolate non-portable code behind wrappers, you #ifdef or otherwise selectiveley reference code or other objects you _may_not_be_able_to_depend_on_ being there, you provide hooks for extensions but you don't break if they're not used, you provide stubs or workarounds for missing functionality, and when you get new tools you leave the old mechanism as a fallback... at least until you _can_depend_on_ being able to use the new one everywhere.There's stuff above here
Generated at 21:00 on 27 May 2005 by mariachi 0.52