From: Bill Z. <wrz...@po...> - 2005-03-17 02:55:51
|
Joe Emenaker wrote: > The only way, that I can see, that would cause it to break another > synthdriver is if that synthdriver *accounted* for the bug with its > own code. But two wrongs don't make a right. I bug in a checksum > method is a mistake. Trying to solve the problem by tweaking *other* > parts of the synthdriver (instead of the checksum method) is *also* a > mistake. > No no, you have it backwards: What if the synths themselves are buggy? What if someone tweaks the common driver to work around bugs in their synth, but that triggers bugs in someone else's synth? Bah, there's no arguable point here. The problem is one of maintaining 50+ synth drivers and more. I'm inclined to think that the drivers should be kept seperate so that hacking on one driver doesn't break the other 49. But if there's common code, it should be pulled out to a common place. > Well, I think the XML driver will. It's going to need (or want) to be > able to choose checksum methods with a text string. > True, but the XML driver is a completely seperate problem.. > More importantly, the problem I'm trying to solve is one of long-term > code maintenance. > I'm also trying to solve future code-bloat. I'm looking forward to the > day when JSL has support for 1,000+ devices. Those are seperate problems too. We're using Java on Gigahertz class machines; bloat is not a problem. Trust me on this, bloat is *really* not a problem. Even with 1000 synth drivers, the overhead of Java will completely dwarf this little project. Now maintainence *is* a problem, and bloat that makes maintenance difficult is *definitely* a problem. Specifically: > Even if we are lucky and *every* developer in the entire future of JSL > writes flawless checksum methods, then our best possible outcome is > needlessly-bloated code and a lot of duplicated effort. 1000 duplicate checksummers is *not* a problem as far as code size is concerned. But what about maintenance? Well, how do you modify code that affects multiple synths that you don't own? How do you maintain this code without having all 1000 synths around you? This is why I keep pushing for isolated code. I think it's important that hacking on a driver not affect any other driver. I also think common code should be placed in a common location, but in this case, we should only do that when someone can tell us *definitively* that two synths are identical. -Bill |