> 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