Ah, back to the land of the living or maybe just a little closer..
I just got back from a month long vacation in Ireland. Call me an escapist -- its probably true. And now I hope to get back to some real work. My immediate plans are to "product-ize" Xmldoom and attempt to make some money off of it. Very unlikely considering that it is a totally unknown project with absolutely no community around it. Which is why my next steps include writting user documentation. If I can attract users, I can get developers and then maybe some popularity.
Last year I e-mailed with Richard Stallman about the moral and philosophical implications of dual-licensing a product as GPL for free and proprietary for a fee. I figured that if anyone would find fault it would be Richard. Surprisingly, he thought that this was not contrary to the ethos of Free Software. I like to think of it as taxing proprietary software -- if only to help me sleep at night.
So the plan is allow anyone to build applications with Xmldoom under the GPL but if someone wants to make a non-GPL program out of it I rape them with license fees. Unfortunately, there are a number of problems with this:
- Code Generation: Albeit the support for generating client code in Xmldoom is broken (in favor of using the runtime engine), it could be used to circumvent the GPL. Since the output code will carry the same license as the input code, Xmldoom becomes a pass-through entity and can't restrict its uses to Free Software.
- Web Applications: My current primary use of Xmldoom is for web applications. Having the code used by the WWW doesn't constitute "distribution" in the GPL, thus allowing the user to license their app under any license they desire.
- Non-GPL Runtime Engines: This is a problem similar to the GCC vs GCC-XML issue. The GCC guys don't like GCC-XML because it could allow a proprietary application to use the C++ parsing abilities of GCC to compile code without abiding the GPL. Xmldoom allows you (via the command line tool) to compile the input XML definition into a 'compiled' format that the runtime engine can use. This is useful for me because only one compiler need exist but I could easily write a runtime engine in any programming language I choose. This is bad because someone could write a proprietary runtime engine for their application again avoiding the GPL. Of course, currently only one runtime engine exists so we're safe for now.
These are all roughly symptoms of the same disease but they affect the sustainable Free Software status of this project as well as my ability to profit from it. Maybe its time I write Richard another letter ...