> I agree. I think we need to look holistically at the code base. I > honestly don't know what the best approach is. It sounds easy to say, > let's just modularize it. I am not sure the current code base makes that > possible in any meaningful way. The code is so abstract and intertwined, > it may take MUCH longer to modularize the code than it would to start over. > On the other hand, I am not sure that starting over is feasible either. I > really don't know.
This is why I think it would be better to just attack it with the delete key. There are only a few files that actually do work, so I don't think we need to abandon the existing code. Everything simply has several levels of interfaces which are completely unnecessary, just flattening the model library and removing the unused options (in-memory delta store, in-memory search store, no-op federation system!) would let us see the codebase in a much clearer light for (what I think should be) fairly minimal effort. (My example flattening case would be the ConversationX -> ObservableConversationX -> WaveletBasedConversationX pattern X={nil, Blip, Thread, View}. And there are similar things for the {Mutable, Observer, Readable}Document, etc.) Hopefully at that point, the code base is small enough (or we are better informed), so can see whether to simply abandon. Ali