Depends.
Posted Oct 11, 2006 6:04 UTC (Wed) by
jd (guest, #26381)
In reply to:
Making sense of the One Laptop Per Child proprietary software row (Jem Report) by elicriffield
Parent article:
Making sense of the One Laptop Per Child proprietary software row (Jem Report)
Typically, I believe people do a "clean-room" version in circumstances like this. In other words, person A signs the NDA for the source code and writes a formal specification of what it does. No code, no exposure of code, just a specification. Person B, who has neither signed the NDA nor seen the source code, then writes a driver based on the specification.
This is usually tolerated by companies, as it (a) keeps their intellectual property safe, (b) adds extra customers for the hardware - where the money is anyway, and (c) doesn't expose their code to any meaningful peer-review.
This is also usually tolerated by Open Source developers, as the clean-room implementation is (a) unburdened, (b) semantically identical to the original (although not syntactically identical), (c) much more likely to be correct and feature-complete than if a hostile company picks and chooses what to put in a published specification. (I shouldn't need to name names here.)
Although not often mentioned as a feature, clean-rooming can lead to cleaner code, as there's less risk of cruft or architectural defects caused by the inevitable failures of communication between hardware and software divisions of a corporation. For this reason alone, ancient and crufty code is almost always better re-engineered by clean-rooming it than attempting to fix.
(
Log in to post comments)