From ... Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!newsfeeds.belnet.be!news.belnet.be!news2.kpn.net!news.kpn.net!nslave.kpnqwest.net!nloc.kpnqwest.net!nmaster.kpnqwest.net!nreader3.kpnqwest.net.POSTED!not-for-mail Newsgroups: comp.lang.lisp Subject: Re: How I lost my faith (very long) References: <930E878945B43884.73D527D49882D2C3.525984B971F40DCF@lp.airnews.net> <3223367723455944@naggum.net> Mail-Copies-To: never From: Erik Naggum Message-ID: <3223404395381782@naggum.net> Organization: Naggum Software, Oslo, Norway Lines: 26 User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.1 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Fri, 22 Feb 2002 22:06:31 GMT X-Complaints-To: newsmaster@KPNQwest.no X-Trace: nreader3.kpnqwest.net 1014415591 193.71.199.50 (Fri, 22 Feb 2002 23:06:31 MET) NNTP-Posting-Date: Fri, 22 Feb 2002 23:06:31 MET Xref: archiver1.google.com comp.lang.lisp:27219 * Thomas F. Burdick | For distributing libraries as binaries to protect your IP, I don't think | the JVM is a good model. I don't know if you've tried disassembling JVM | bytecodes before, but in my limited experience (and from what I've heard | from others, it's typical), it's pretty simple to go from bytecodes back | to Java. If you were concerned with your IP, you could run the bytecodes | through an obfuscater, but then you can do that with source code, too. I did not have JVM specifically in mind, but my code is rife with design comments and the choice of lexically scoped variable namaes that capture a lot of the meaning of the algorithm. If I use macros, I do so in order to make the code easier to read. I spect comments and lexical variable names to have vanished in the virtual machine "binary", and all macros to have been expanded. Thus, whether it can be "restored" to source or not, I do not believe it will be nearly as usable to another programmer as the source code itself. In order to disassemble code back to readable source, you need a tremendous amount of what is usually known as debug information that I see no reason to impart to a purchaser of a particular library -- I would instead expect the library to be thoroughly debugged before shipping -- an expectation that generally does not hold for Open Source where the vendor has bet on the free labor of its users to iron out its bugs. // -- In a fight against something, the fight has value, victory has none. In a fight for something, the fight is a loss, victory merely relief.