David Berlind of ZDNet started a discussion (follow up) about OpenDocumentFormat (ODF) Software Development Kit (SDK). He concentrated on the value of a SDK for ODF. His analysis and the analysis IBM Bob Sutor make sense to me. Bob Sutor argues that any ODF SDK should be open-sourced. With open source, I believe he meant an SDK that can be used both in open source and proprietory software environment. This is a very important point for a lot of closed source developer. In the context of promoting the use of ODF, I believe this is a valid and very important point.
While I agree that at present there is no SDK for ODF that can simultenously satisfy the need of both open-source and close source developer, I believe some sort of SDK is available if you are on the open source path.
There are a few big open source software with ODF support, namely, OpenOffice.org, KOffice and AbiWord, to name a few. All these software developers are not your traditional “fresh-out-of-college” people who intermingle ODF calling routine with their UI routines etc. Their source code is likely to strictly separate ODF calling routines with others. Therefore the part of these software dealing with ODF should be easily extractable and used as a SDK. Therefore, arguably, a form of SDK is already available, especially if you are working on an open source project. All you need to do is to extract it and make sure the final SDK product is in compliance with the open source license you received the original source code from. As OpenOffice.org’s LGPL license for its source code looks to be a good starting point for developing a ODF SDK, I will assume any developer’s start with a LGPLed copy of ODF code.
Thus, the first and foremost implication is that extracting the SDK this way will mean at least the part dealing with ODF must be made open source. This, does not, however, mean that all your source code is open source, as a good software architect can ensure that there is sufficient separation between the ODF SDK you developed, and your own proprietory code. One need not even go out of the way to create such an architecture, because such an architecture should/would had been created to deal with the software one is developing. Having said that, I can see and understand that some developers will like to keep any work they done with ODF private. Therefore, this approach does not work well with all proprietory software vendor, something a true ODF SDK should do.
The biggest snag with creating such an SDK is any modification must be contributed back under LGPL. This means any divergence you take from the straight-and-narrow ODF must be contributed back. Again, no problem with open source software because developers do not mind other people using their ODF derivatives. But for closed source developer this is a problem, and this negated one potential advantage of ODF, at least according to them, the rights to create proprietory derivatives. Any closed source developer who goes down this route is probably one who wants “free lunch” and is not interested in open format. Condemning them outright is a bit overzealous: There are cases to be made where proprietory derivatives makes sense. Nonetheless, this means any SDK derived from existing Open Source ODF stack is not suitable to be labelled as the official “ODF SDK”
Is there any alternatives source of ODF SDK. One obvious one is the one IBM is using to support ODF on its Workspace product. IBM’s competency means it should be easy to extract a SDK from it should IBM agrees to do so. Of course, the decision is IBM and IBM’s alone. It would not be a bad starting point.
Having discussed the subject of ODF SDK, it dawned on me that one weakness of ODF’s OASIS standardization process is that no one was thinking about an “Official SDK”. I think this is mistake.