Unix: A Component Architecture?
seebs writes: "I wrote an article about Unix as a component architecture for the components 'zone' at IBM's developerWorks. They ran it. Here's an article (part four of a series) looking at how Unix has delivered on the promises of the object modules and component architectures that are so popular these days." This reminds me a lot of the book The Unix Philosophy.
The fact that unix's design is so module really is the reason it has been cloned so often. Windows and VMS on the other hand were designed reasonably ad hoc with massive sets of interfaces. Emulating the operating system is virtually impossible for these systems (my apologies to the wine folks who are braver than I).
Someone you trust is one of us.
my thoughts exactly! i went to the link thinking i would hear about how unix lacks a real component object model. instead i read a bunch of BS about how pipeing streams of data from one app to another is the ultimate tool.
unix badly needs something like COM. I would also agree that COM is flawed. I've spent the last 6 months at my job learning all the in's and out's, and you are right. it's very badly implemented.
-Jon
this is my sig.
I think the author of this article is failing to make an important distinction between tool chains and software components.
Unix unquestionably derives enormous power from tool chains, as described by the article. But a tool chain, or part of a tool chain, is not a component.
You COULD sort your database using sort, but you don't. You COULD select records using grep, but you don't. You COULD use a perl one-liner to total accounts in your general ledger, but you don't. The reason is that these routines need to be integrated into a software application, to prevent the mess of utilities that plague legacy applications.
The answer is components. These are not discrete tools; they cannot exist alone. A component is only meaningful when integrated into a larger application.
The author would have done a lot better to draw attention to the wealth of shared libraries available on Unix, yet even these are a poor approximatation of a reusable component model, despite their obvious value.
There are many good reasons to use COM, not the least of which being that COM offers geniunely reusable object oriented components. COM is, unfortunately, a good vision but a poor implementation. Still, it is somewhat better than DLLs (MS's equivalent of shared libraries).
The "perfect solution" is somewhere out there, not that we'll ever find it. But a step in the right direction would be a compromise between shared libraries and COM (read: shared object libraries), with effective yet simple bindings in a multitude of languages.
i-name =twylite [http://public.xdi.org/=twylite], see idcommons.net