14 Aug 2000 nymia   » (Master)

11:11 PM

Currently playing with some sample programs that I downloaded from this site. I must say these programs are very good for making kernels.

11:57 AM

Speculation

One thing I noticed with COM's IUnknown is the QueryInterface member function. COM specification details say interfaces totally decouple objects from each other, objects pass information by means of wires connected to each other. But, I think COM has made a mistake when it used refids to query an interface, this method resulted to an effect that made clients know who its objects are. Same problem again: a web of inseparable objects.

12:45 AM

Have been playing Atheos' libgui and so far I'm getting a lot of compile errors. It looks like libgui is heavily dependent on a win32 version of gcc, plus, some of the header files seem to point to a win32 include directory. My guess is thatlibgui was developed initially from a DOS based compiler. And coverting it over to linux would require a herculean task. I dunno, I'll find out as soon as they start talking about the things I reported.

1:40 AM

Code Reuse Rant( please ignore )

On another topic, all this research I've been doing only made me realize that code reuse is still far from being a real solution. Looking at some of the major milestones, like how K&R had their version of code reuse by means of built-in and user-defined libraries, one might think that libraries was the solution, Unfortunately it wasn't because most programs had the tendency of becoming monolithic.

Then comes Stroustrup's inheritance which was supposed to cure the monolithic disease by means modularization using classes, forcing developers to reuse code by coupling objects together forming a heirarchy or web of classes. Well, I think it wasn't the solution too since it only made classes interdependent making it impossible to divide the classes into smaller pieces.

Then comes MS with their version of COM which was supposed to improve code reuse by means of contract programming. Well, I think it failed too for the same reason that its achilles heel was the interface that bind the components. A bad interface design could really make components pretty much have the same problems as interdependent classes. Also, component techonology somehow raised the learning curve to a level where it takes a newbie about 6 to 12 months to learn all the interfaces and classes. Then it would take years of practice just to become a COM expert.

There's a new one called factoring which was supposed to cure interface design problems. This one is still relatively new on my radar, so I'll just skip this one until I get more information.

Somehow, with all these variety of approach in achieving code reuse are IMHO, still not enough to be even treated as a practical solution. I'll be waiting for that day when code reuse will just be as easy as a walk in the park.

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!