9 Oct 2001 mslicker   » (Journeyer)

sej, I think you misunderstood my argument. My point of view comes from one who has vigorously persued the reuse path. I've outlined the problems that I've encountered in attempting reuse in a Unix/C system, specifically the GNU project. I don't think you can seperate the reuse problem from the context of the language/environment. My conclusion is that in the future we must pursue source based systems, with languages/environments that encourage reuse. These new systems will not be re-writes of the GNU system, they will be extremely focussed and within relm of a single programmer's understanding and modifing of the system. The source code should be immediately available, and compilation should procede in a uniform manner for all code in the system.

--- Update
sej, Perhaps I misunderstood your original message. First you call for more reuse, then you state you have no problem with multiple overlapping libraries as long as they stand on their own. Well, if they overlap in functionality then person has pretty much ignored reuse? The balance you speak of pretty much exists. There are people, with incredible persistence mind you, who will attempt to understand and extend the work of others. I was once one of these people. I assumed this huge barrier of entry to every project was just a fact of life. And so you must carve out your niche, choose your projects, with no hope of ever understanding the system.

Well, since then, I've been shown that learning curve needed for every project in the system is completly unecessary. In fact a single person can have complete understanding of entire system. This is not to say the learning curve is eliminated. The learning curve is understanding the system. Every thing else builds builds upon this knowledge.

Then you go on to suggest we "educate" students to understand and fix and extend others broken software. A question we should be asking is why is practically everybodies free software ridden with bugs? Is possible to release bug free software? Indeed it is. It is a magnificent thing to see too. When someone has understood the problem thoughly, and has executed the solution flawlessly. The possibility of doing this is only within reach when the total system complexity is of a certain level, because effecively to write bug free software you must understand the system completely. If the system is buggy it is impossible to write bug free software. So, I would prefer educating the students (BTW, I am a student) to look to the future. To see the mistakes we have made (and admit to them!!), and start looking at what ways we can produce better software. I think the problem lies mostly in former, admiting that what we produce is rubish, and starting anew. Not to produce the same system, with the assumtion that somehow our previously attempt flawed. But a radically different new system which critically analyzes the flaws in the previous system and addresses these problems directly. And I maintain, if we are to seriously address the problem of reuse, this system should have one uniform space. Not arbritrary barriers between kernel, library and applicaion.

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!