On Thu, Oct 13, 2005 at 03:01:29PM -0400, Rob Kinyon wrote: > > I think this is an opportune time for me to express that I think the > > ability to close-source a module is important. I love open source, > > and I couldn't imagine writing anything by myself that I wouldn't > > share. But in order for Perl to be taken seriously as a commercial > > client-side language, it must be possible to close the source. I > > started writing a game with a few friends last year, and as we were > > picking our implementation strategy, using Perl as the primary > > "sequencing engine" for non-time-critical tasks was immediately > > discounted when I commented that anybody can look at your perl source > > if they want to. > > I'd be interested in finding out how this is reasonably feasible for, > given that you just said a disassembler for Parrot is going to be > relatively simple due to the level of introspection Perl is going to > require.
When I added the original encryption mechanism for perl (in early perl 3 days) I knew that it would not be an absolute ban to stop people from recreating my company's original source (and that was long before B::Deparse came along, of course). I certainly knew how to beat the encryption; and anyone with half a clue would know that it could be beaten. (Clue: perl has to be able to read the unencrypted code. It wasn't hard to find the right place in the perl source to insert a print statement that would dump out code that had been decrypted.) However, anyone who took the effort to recreate that source from encrypted form would *know* that any use of that decrypted source was not authorized by the copyright owners. This was considered by that company to be an adequate protection. Any infringement that did occur would clearly be a deliberate misuse and could be prosecuted with a reasonable assurance of success. (No such infringement was ever found - either anyone who considered it decided it would be too much work, or no-one was interested enough to consider it, or quite possibly there were one or more instances where it was decrypted for the challenge of "beating" the encryption but not in any way that lead to an obvious competitive misuse.) Just because you can't make locking perfect does not mean it has no value. --