LWN.net Logo

Kamp: A Generation Lost in the Bazaar

Kamp: A Generation Lost in the Bazaar

Posted Aug 21, 2012 23:04 UTC (Tue) by neilbrown (subscriber, #359)
In reply to: Kamp: A Generation Lost in the Bazaar by intgr
Parent article: Kamp: A Generation Lost in the Bazaar

You make an excellent point.

There are occasionally opportunities to do some refactoring to impose some design on something that has become an ad-hoc collection of features. And sometimes, these opportunities are turned into realities. And that is great.

However I don't think of this as 'design' in the way the original article was using the term. It is more of a case of "struggle along with no real guiding force until the weight of the mess becomes unbearable and then make the effort to clean it up".

That is the sort of design that can scale. It doesn't need just one person. It allows lots of work to be done in parallel and then while there is lots of working code and lots of examples to draw from, an improved design can be drafted and existing code moved over to it - slowly and by lots of people.

It is "A priori" design that people seem to value, but doesn't really scale. "post hoc" design can scale to some extent and is what you see happening in wifi and ARM (And lots of other places).

Of course a consequence of "post hoc" design is that lots of things will never get redesigned because the weight of the ugliness never gets high enough. Maybe that is where autotools is. It is ugly, but not quite ugly enough to force a re-write. The cost/benefit is still too high.

So while there are islands of good design in Linux, they can be expected to degrade over time unless someone puts consistent work into cleaning up. It's the constant battle between energy and entropy.


(Log in to post comments)

Kamp: A Generation Lost in the Bazaar

Posted Aug 22, 2012 8:13 UTC (Wed) by tnoo (subscriber, #20427) [Link]

I would claim that this is the only way to move forward. Evolution is just more efficient than intelligent design (sorry for using these expressions in the software context). It is not possible to design a sane interface for the mess that actually existing hardware is, and that will include future hardware. Similarly for any aspect of the kernel under real-world loads and use cases.

Getting some working implementation, and then abstract from it, while benchmarking alternative, more elegant solutions, is the only process that works if the problem is not fully understood, or is hard.

Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds