Ok, as far as I can tell, there are two groups of thought on API. I'm not seeing either group being particularly moved by the other side. I'm going to summarize what, I think, are roughly the two sets of positions. After that, frankly, I'm not sure what to do. I think more email dialog on this isn't really serving much purpose. I have a long rant about how modularity is good and so on, but I think I've tried to make my point clear and either I'm not expressing myself well or we just disagree. Either way, there seems little point in sending it. Here are the summaries:
Group 1: All of our code amounts to an API The GUI, the CLI, and the backend all live in the same gate so it's reasonable to check all changes made to all functions The problem we've been having is essentially a social one which is best solved through better testing, diligence in code reviews and discipline when writing the code in the first place By the time an adequate API is in place, it will duplicate the object structure of the back-end anyway The solution is to (as Tom said) improve exception handling, move UI stuff, move logic into the back end, improve documentation Group 2: API's have a different level of stability and assurance than general code Having a public API will improve our internal development as well as make it easier for people who aren't on the team to develop their own front-ends If we have a public API, we need to use it Modular software design is good because it makes development and testing easier The problem is a social one, but the solution isn't, because the amount of contact and communication needed is large in order to enforce API discipline with the code as structured now Giving a small number of methods/classes/objects API status and localizing them into a small number of locations makes it much easier to watch for changes to the API and provides a single location of documentation on appropriate use Separating interface from implementation is a good thing Giving people fewer ways to shoot themselves in the foot is a good thing I've presented each group's position as best as I can. I hope everyone thinks I've presented their position fairly, that was my intent, but I'm sure I've made omissions on both sides, and I apologize for those. Fundamentally, I think there's a disagreement on what makes good software design, and I don't think I'm going to change anyone's opinion on that in the next few days. So how do we go forward? This is important because a) we told the GUI team we'd have an API for them and if we want it being used by november, this needs to move quickly b) I thought this was a high priority item in terms making the code safe. Should we meet in person next week so that we can at least make a decision and move forward? Brock _______________________________________________ pkg-discuss mailing list [email protected] http://mail.opensolaris.org/mailman/listinfo/pkg-discuss
