The OpenDoc sources were on the developer CDs at the time as well. It wasn&#x27;t really Open Source and as far as I recall you couldn&#x27;t change and redistribute it, but it could be quite handy for debugging as well as for seeing how everything fit together.<p>One of the biggest difficulties with OpenDoc development was the marriage to IBM&#x27;s System Object Model (SOM) because C++ didn&#x27;t support the required level of dynamism. That meant everything interfacing with OpenDoc components—which was ideally supposed to be everything!—had to round-trip through an IDL layer with a bunch of machine-generated glue code. Theoretically &quot;direct-to-SOM&quot; compilers were coming, where a class could be annotated and get SOM API &amp; ABI compatibility, but I don&#x27;t recall if one ever shipped for the Mac.<p>OpenDoc would have been far leaner and more comfortable to develop for if it had embraced a dynamic language like Objective-C, instead of immediately reaching for maximum language agnosticism and an IDL. Everyone who demanded cross-platform wasn&#x27;t really going to develop for it anyway, and giving in to that just slowed it down.<p>(Incidentally, Dylan had the same problem: The &quot;It needs infix syntax for me to even look at it!&quot; developers were never going to use it anyway because it wasn&#x27;t and never would be C, so the people working on it shouldn&#x27;t have squandered multiple years of effort trying to please them instead of improving the tight, simple Lisp-syntax version.)