Subject: Re: How I lost my faith (very long)
From: Erik Naggum <>
Date: Fri, 22 Feb 2002 22:06:31 GMT
Newsgroups: comp.lang.lisp
Message-ID: <>

* 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.