I've spent about two solid work-days this week (one un-billable) attempting to find a way to refactor the VoIP project to eliminate some glaring structural problems related to the original spec that keep getting in the way of forward coding. Problem is, they are with core objects that affect pretty much every line of code written in the project. Every time I make even a minor structural change the number of changes through the project turns into something approximating rewriting the whole thing from scratch.
Speaking of rewriting from scratch; I've been examining the various projects... these things are huge. They make a project like OpenGL-ctypes look like a weekend lark. Even OpenGLContext isn't anywhere near as large as these accounting/billing/automation packages. It would be at least a person-year, likely 3 person-years to rewrite the whole thing to the same level using modern techniques.
Of course, if one were doing that, the packages would likely shrink in size and multiply in number. OpenGLContext probably would be almost as large if I were to include all of the packages that go into it, such as the VRML object model, the SimpleParse parser engine, and the TTFQuery font-extraction. On the other hand, OpenGLContext is a coherent problem-space, it's got one task that it accomplishes (rendering) and it doesn't do a lot other than that, the accounting packages have different use cases, security issues and weird corner cases that all lay on top of the basic structures. That stuff really bulks up the code and doesn't readily disappear into abstractions.
Anyway, time to get the day started, we're going to an IEEE talk this evening at Ryerson, so I need to get some work done before 5:00 or so.
Pingbacks are closed.