On Thu, 28 Sep 2006 03:27:44 -0700, gregarican wrote:

> I realize that Ruby 1.8.x code can be at best only obfuscated, not
> compiled. So obviously created a closed source product with Ruby would
> be out of the question. Even a Ruby 2.0 YARV bytecode-compiled product
> could be reverse engineered, as is the case with Python offerings. But
> just because something is commercial doesn't _necessarily_ mean that
> it's closed source, does it?

Ruby can't even be really effectively obfuscated (at least not as
effectively as Java), because it depends on things being named the same
for duck typing to work. In Java, you can rename any method in the
inheritance chain that isn't defined in the parent class, you also get
overloading to help with the obfuscation so you start by renaming
functions to as many overloads of "a" as possible, then to as many
overloads of "b" as possible and so forth. In Ruby, you don't have the
naming heuristic, nor do you have the ability to create many overloads of
the same function.

Even Java bytecode can be decompiled, and I suppose a hypothetical
native-compiled Ruby program would have a lot more information in it than
a native-compiled Java or C++ program, and you could still do a good job
of reverse-engineering a Ruby program.

--Ken

-- 
Ken Bloom. PhD candidate. Linguistic Cognition Laboratory.
Department of Computer Science. Illinois Institute of Technology.
http://www.iit.edu/~kbloom1/
I've added a signing subkey to my GPG key. Please update your keyring.