Market share is more important than engineering efficiency

Here’s a quick one — Do you know how many code-bases DB/2 has? The obvious answer, of course, is — or should be! — ONE , right? Well, it turns out that the actual answer is FOUR , one for each of their (major) product lines, viz, the AS/400 , MVS , and R/6000 (as well as one for VM , but more on that in a bit). As to “ Why? For gods sake, WHY SO MANY CODEBASES? ”, it really comes down to Mechanical Sympathy . Each of IBM’s hardware lines has dramatically different hardware/OS models. For example, the AS/400 line uses a seriously flat memory model, where memory and disk addresses are indistinguishable, and objects move transparently between them. What’s more, the whole system is capability based (pointers to an object in memory/disk include the security permissions necessary to get at them). The R/6000 line, OTOH, very much does not have this . And that takes us directly to the tradeoff betw...