The Free Software hardliner, the corporation, and the shotgun wedding
Posted by: Anonymous
on January 21, 2008 03:04 PM
[Quote]The classical Unix concept of small and simple components in a conceptual tool chain, held together by stark and self-documenting interfaces, probably wouldn't have given us OpenOffice.org Calc. Or Firefox. Or Evolution. But what is interesting about these prime examples of Free Software with corporate-monolith-suite-itis is this: they end up sporting plugin systems. To be really honest, a plugin system is actually at a very high level a scream for help, a way of saying, "This codebase is too beastly! We need to export a simplified interface for developers to be able to contribute more easily!" Plugin interfaces are admissions of guilt. They are unconscious confessions that it was a mistake to discard the tool chain architecture.[/Quote]
You obviously fail to understand software architecture. One architecture does not fit all solutions. The "Unix concept of small and simple components" is not necessarily the best solution for all things, and indeed can be quite horrendous for many people - except the Unix "elite" - but even it is just really a "plugin system", just one of way of creating such a system. (So by your own argument, the Unix way is an "admission of guilt".) Similarly, the monolithics of Windows, Office, etc are not the best way for every program, nor is the plug-in system like with Eclipse, Firefox, and others. Yet, each of these methods can be used to leverage different strengths for different tasks. The plug-in system of Eclipse, Firefox, Thunderbird and others works wonders because it enables a core competency in a single program (e.g. web browsing) to be extended to handle other tasks (e.g. web development) easily and in a way that the traditional Unix method of various small programs does not work well, if at all, and be far more flexible than the monolith of programs like MS Front Page or Visual Studios. (Yes, Visual Studios is extensible to a degree, but it is still basically a monolithic program.) Likewise, the Unix method for command-line tools is best as it lets you do a number of tasks with programs that are designed to perform specific, unrelated tasks through a basic common interface (stdin, stdout) - the strength is system management and administration, with the ease of scripting that comes with it. Yet, again, that fails for tasks like WYSIWYG office productivity where the monothic programs like OpenOffice, MS Office, MS Works, Apple iWorks, IBM Lotus Suite, etc. have worked wonders. Honestly - you need to learn about using the best tool for the job - and that applies to software architectures too, just as it does to licensing, code design, computer language choice, and many other aspects of software and the world at large.