> Well, its come to this. I hate programming, anytime I have to debug C,
> and especialy C++ I get headaches and kick small animals. But to hell
> with my sanity, what would it take to do a cleanroom implementation of
> QT? I currently have only the binary version of the library and havent
> seen any source to it. If anyone has some good pointers on information
> or 'the rules' of developing a non-commercial version of commercial
> sofware please point me to them. I'll prolly start with GTK as a base.
> Specifically, I need to know if I can look at things like A: the header
> files, B: The api definitions. I'd also be interested to know if any
> other teams are already working on this effort. Ahh, the sacrifices I
> make for my operating system.
Well I've seen an internal document here specifying what needs to be
,done what the source isn't available (is QT's ?). I suspect the process
for a product with source available
would be similar.
Essentially you need three teams of people who are not permitted to have
any contact with one another, except through official channels.
1. The spec team: These guys may know whatever they like about the
'target' (QT in this case). There job is to investigate the target in
whatever depth they deem necessary (close examination of the docs, and
other public materials, plus reverse engineering optionally). They
deliver a 'clean' spec to team 2. This spec may not contain any details
at all of any intellectual property belonging to the target's owners. It
should in effect look just like the spec the target was developed from.
2. The review team: Review the spec from team 1 to ensure it is really
clean. You need both lawyers and techies here. They are permitted
knowledge of the target product, and they feed their changes back to
team 1 untill the spec is deemed clean. The spec is passed to team 3 who
do the real work :-)
3. The clean team: These guys must have had no knowledge of or contact
with the target product, but they must be able to complete a project in
the domain. The biggest stumbling block is that it is hard to get hold
of people fitting the bill. They receive the spec and implement its
requirements. Any queries they have must be passed back to 1 through 2,
and the answers cleaned up before they get back to these guys. When they
are finished the result goes back to teams 1 and 2, who submit 'clean'
requests for changes untill the product is finished.
Oh and scrupulous logs must be kept of everything that happens,
especially inadvertant communication between teams. The aim of all this
fandango is to be able to present to a court a 'good faith attempt' not
to breach the target companies intellectual property rights.
I can see the main problem being implementing this in the rather more
chaotic world of internet-based free software development.
If you (or anyone else) really wants to go through with this, I would be
happy to join in.