And trust me, libtool is replaceable, all it takes an agreement about a compiler and loader flag for producing shared libraries and you suddenly don't need it at all.
And trust me, libtool is replaceable, all it takes an agreement about a compiler and loader flag for producing shared libraries and you suddenly don't need it at all.
That's why things like libtool or autoconf evolved (or, better, were "iteratively designed") to be able to grow and encompass varying and different goals.
We understand the pitfalls and complications, and can come up with some solutions on how to handle them in a forward-thinking way.
If things break in the future, we can revisit this then.
In the meantime, libtool is one of the most ridiculous time-sinks I've ever had the displeasure of working with.
http://publib.boulder.ibm.com/infocenter/comphelp/v7v91/inde...
Anyway, I get the impression that for the original example of libtool, cathedral vs bazaar is the wrong question to be asking. [1] The problem isn't one of design or implementation. It seems a problem of distribution. I posit you could build a simplified, cross-platform library linker via either a centralised or distributed process. The question is rather, could you get everyone to agree to actually use it? Considering the success of clang, I think you'd stand a reasonable chance. (speaking of which, clang doesn't exactly stand out as a pure-bred bazaar-model example; neither is GCC for that matter)
Actually, I think that's what's wrong with this whole thread and the article that triggers it. I'm fed up as anyone with the layers of crap that we're building our software on. I seem to spend most of my time yak shaving because of some legacy decision, not contributing new stuff. In fact, my main output seems to be adapters for crappy interfaces. So while I find myself nodding along with the original essay, I think cathedral vs bazaar has nothing to do with the quality of the code we use all the time. It's a question of having the resources and balls to replace the layers of crap when necessary instead of carrying on piling more of them. Whether or not that's possible is mainly a question of whether the systems you absolutely need to retain are open or not. (and open source software can still be developed cathedral-style - I'm pretty sure ESR considered GNU to be cathedral software)
As an aside, when was the last time the format of .a/.so/.dylib/.lib/.dll files drastically changed on the respective operating system? We change even prevailing processor architecture a lot more often than that!
[1] I'll have to admit ignorance on the specific detail on the problem that libtool solves (inelegantly). I hope that doesn't derail my argument too much.
Of course not! We should try to get as much of what we are doing right. We also must realize we are not as clever as we think we are (or would like to be). Cathedrals are monuments to imaginary deities. As such, they aren't subject to the laws of reality. Our efforts should, OTOH, be guided by what's real and measurable and take into account that what we "know" but can't measure is nothing more than an educated guess.
My fear is that the awful hack-on-hack-ad-infinitum we do have at least binds us together, even if it is in misery. I'm not at all uncomfortable with replacing libtool, and I'm certain a very good job could be made. But I can hear 18 m68k afficianados crying out in pain that the new toolchain doesn't work on their NetBSD system, or the guy who wrote his own C compiler that needs some extra rules feeling totally shafted because now he was to write M4 and "M5," which for some reason he cannot stand any more than M4 even thought it looks nothing alike.
We stand unified. Not by good things. But by the woe we all suffer. To those out there seeking to crush that & make better, I wish you the best! Please keep in mind a simple mantra as you go about inventing the future, do no harm. Libtool maybe awful but it's how distributions are made.
phkamp, sorry for missing the reply. M4 is ugly, libtool takes forever, everything in it is a hack. It's proven to be an at least adequately flexible hack that has kept *nix unified, more or less. I respect that, but I'm not a systems programmer that gets burned by it on a regular basis either, and I don't mind that my OpenWRT compiles of all packages take 32 hours and it's all libtool's fault.