# Two questions

**URL:** <https://rubytalk.org/t/two-questions/5602>\
**Category:** ruby-talk\
**Created:** [11 April 2003 15:28 UTC](https://rubytalk.org/t/two-questions/5602 "2003-04-11T15:28:55Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![Steve\_Adams](https://avatars.discourse-cdn.com/v4/letter/s/bbe5ce/32.png) [@Steve\_Adams](https://rubytalk.org/u/Steve_Adams)\
**Post date:** [11 April 2003 15:28 UTC](https://rubytalk.org/t/two-questions/5602/1 "2003-04-11T15:28:55Z")

</div>

What restrictions does the Ruby license place on the construction and sale  
of commercial products?

Is there a way to “compile” the developed Ruby code in a product so that the  
source code isn’t accessible to the end user?

Thanks.

---

<div class="post-metadata">

**Author:** ![Daniel\_Carrera](https://avatars.discourse-cdn.com/v4/letter/d/c67d28/32.png) [@Daniel\_Carrera](https://rubytalk.org/u/Daniel_Carrera)\
**Post date:** [11 April 2003 16:45 UTC](https://rubytalk.org/t/two-questions/5602/2 "2003-04-11T16:45:48Z")

</div>

> What restrictions does the Ruby license place on the construction and sale  
> of commercial products?

None really. It is an error to think that open source licenses prohibit  
commercial products.

Be it as it may, I suppose that you are referring to the ability to  
conceal the source code. Ruby comes with a dual license. One is the GPL  
and the other is an MIT-style license which (as I understand it) allows  
you to distribute a modified version of Ruby and keep the changes secret.

I can’t imagine why you’d want to do that. So I suppose that what you  
_really_ want is to write programs in Ruby and keep the source secret. In  
that case, you are (as far as I know) asking the wrong question. Ruby’s  
license applies only to Ruby’s source itself. It says absolutely nothing  
about the Ruby programs you write. There are no restrictions on that  
front whatsoever.

> Is there a way to “compile” the developed Ruby code in a product so that the  
> source code isn’t accessible to the end user?

If I may ask, why would you want to keep the user from the source? I’m  
curious.

The only way that (I am currently aware) of doing this is to use the  
Exerb package (it’s in RAA, I don’t have the exact page). Exerb will turn  
your Ruby code into a Windows executable. Exerb is going to make a very  
large executable.

I think that eventually Ruby will support the Parrot virtual machine. So  
there might be a “compiler” then.

I hope this helps,

> **···**
>
> ## On Sat, Apr 12, 2003 at 12:28:55AM +0900, Steve Adams wrote:
> 
> Daniel Carrera  
> Graduate Teaching Assistant. Math Dept.  
> University of Maryland. (301) 405-5137

---

<div class="post-metadata">

**Author:** ![Austin\_Ziegler2](https://avatars.discourse-cdn.com/v4/letter/a/ad7895/32.png) [@Austin\_Ziegler2](https://rubytalk.org/u/Austin_Ziegler2)\
**Post date:** [11 April 2003 16:56 UTC](https://rubytalk.org/t/two-questions/5602/3 "2003-04-11T16:56:48Z")

</div>

> What restrictions does the Ruby license place on the construction  
> and sale of commercial products?

None. Individual libraries may have more restrictions than others.

> Is there a way to “compile” the developed Ruby code in a product  
> so that the source code isn’t accessible to the end user?

No, not really. Even exerb (for Windows) leaves the code readable in  
the Windows binary (unless zlib is used, but I’ve never had luck  
with that at all).

-austin  
– Austin Ziegler, austin@halostatue.ca on 2003.04.11 at 12:55:08

> **···**
>
> On Sat, 12 Apr 2003 00:28:55 +0900, Steve Adams wrote:

---

<div class="post-metadata">

**Author:** ![Steve\_Adams](https://avatars.discourse-cdn.com/v4/letter/s/bbe5ce/32.png) [@Steve\_Adams](https://rubytalk.org/u/Steve_Adams)\
**Post date:** [11 April 2003 17:09 UTC](https://rubytalk.org/t/two-questions/5602/4 "2003-04-11T17:09:25Z")

</div>

Parts of the license are a bit vague about if commercial apps can be  
generated with the tools. This relates to the parts that weren’t  
written by Matz. My concern is, are there restriction on the  
distribution of the standard Ruby package (probably using EXERB)  
within commercial products. Hadn’t planned on any changes to  
Ruby itself.

Protection of the source code for the product being developed is  
a fairly standard thing for non-open source products.

“Daniel Carrera” [dcarrera@math.umd.edu](mailto:dcarrera@math.umd.edu) wrote in message  
news:20030411164542.GA1699@math.umd.edu…

> > What restrictions does the Ruby license place on the construction and  
> > sale  
> > of commercial products?
> 
> None really. It is an error to think that open source licenses prohibit  
> commercial products.
> 
> Be it as it may, I suppose that you are referring to the ability to  
> conceal the source code. Ruby comes with a dual license. One is the GPL  
> and the other is an MIT-style license which (as I understand it) allows  
> you to distribute a modified version of Ruby and keep the changes secret.
> 
> I can’t imagine why you’d want to do that. So I suppose that what you  
> _really_ want is to write programs in Ruby and keep the source secret. In  
> that case, you are (as far as I know) asking the wrong question. Ruby’s  
> license applies only to Ruby’s source itself. It says absolutely nothing  
> about the Ruby programs you write. There are no restrictions on that  
> front whatsoever.
> 
> > Is there a way to “compile” the developed Ruby code in a product so that  
> > the

> **···**
>
> > On Sat, Apr 12, 2003 at 12:28:55AM +0900, Steve Adams wrote:
> > 
> > > source code isn’t accessible to the end user?
> > 
> > If I may ask, why would you want to keep the user from the source? I’m  
> > curious.
> > 
> > The only way that (I am currently aware) of doing this is to use the  
> > Exerb package (it’s in RAA, I don’t have the exact page). Exerb will turn  
> > your Ruby code into a Windows executable. Exerb is going to make a very  
> > large executable.
> > 
> > I think that eventually Ruby will support the Parrot virtual machine. So  
> > there might be a “compiler” then.
> > 
> > ## I hope this helps,
> > 
> > Daniel Carrera  
> > Graduate Teaching Assistant. Math Dept.  
> > University of Maryland. (301) 405-5137

---

<div class="post-metadata">

**Author:** ![Berger\_Daniel2](https://avatars.discourse-cdn.com/v4/letter/b/9fc348/32.png) [@Berger\_Daniel2](https://rubytalk.org/u/Berger_Daniel2)\
**Post date:** [11 April 2003 17:11 UTC](https://rubytalk.org/t/two-questions/5602/5 "2003-04-11T17:11:39Z")

</div>

Austin Ziegler wrote:

> > What restrictions does the Ruby license place on the construction  
> > and sale of commercial products?
> 
> None. Individual libraries may have more restrictions than others.
> 
> > Is there a way to “compile” the developed Ruby code in a product  
> > so that the source code isn’t accessible to the end user?

Someone needs to port Acme::Bleach 😛

Regards,

Dan

> **···**
>
> > On Sat, 12 Apr 2003 00:28:55 +0900, Steve Adams wrote:
> 
> –  
> a = [74, 117, 115, 116, 32, 65, 110, 111, 116, 104, 101, 114, 32, 82]  
> a.push(117,98, 121, 32, 72, 97, 99, 107, 101, 114)  
> puts a.pack(“C\*”)

---

<div class="post-metadata">

**Author:** ![Bill\_Kelly](https://avatars.discourse-cdn.com/v4/letter/b/cc9497/32.png) [@Bill\_Kelly](https://rubytalk.org/u/Bill_Kelly)\
**Post date:** [11 April 2003 18:22 UTC](https://rubytalk.org/t/two-questions/5602/6 "2003-04-11T18:22:37Z")

</div>

> It is an error to think that open source licenses prohibit  
> commercial products.  
> […]  
> If I may ask, why would you want to keep the user from the source? I’m  
> curious.

Try making a living as a game developer…

Try making a living as an _independent_ game developer…

It isn’t a matter of _wanting_ to keep the source from the user.  
It is simply “an error” to think that many people pay for games  
when they can download an unprotected copy for free. (Sad, but  
very, very, very, very, . . . .true in my exp.)

I personally embrace id Software’s enlightened compromise: release  
a protected, closed-source version of the game. Work on next game  
for a few years. Release open source final version of previous  
game.

Regards,

Bill

> **···**
>
> From: “Daniel Carrera” [dcarrera@math.umd.edu](mailto:dcarrera@math.umd.edu)

---

<div class="post-metadata">

**Author:** ![Michael\_Campbell1](https://avatars.discourse-cdn.com/v4/letter/m/e274bd/32.png) [@Michael\_Campbell1](https://rubytalk.org/u/Michael_Campbell1)\
**Post date:** [11 April 2003 17:20 UTC](https://rubytalk.org/t/two-questions/5602/7 "2003-04-11T17:20:19Z")

</div>

> Protection of the source code for the product being developed is  
> a fairly standard thing for non-open source products.

True enough, but the question posed was “why do _YOU_ want to do that?”  
(emphasis mine). Is the answer, “because everyone else does”? that’s a fair  
answer mind you.

---

<div class="post-metadata">

**Author:** ![Austin\_Ziegler2](https://avatars.discourse-cdn.com/v4/letter/a/ad7895/32.png) [@Austin\_Ziegler2](https://rubytalk.org/u/Austin_Ziegler2)\
**Post date:** [11 April 2003 20:10 UTC](https://rubytalk.org/t/two-questions/5602/8 "2003-04-11T20:10:34Z")

</div>

> Parts of the license are a bit vague about if commercial apps can  
> be  
> generated with the tools. This relates to the parts that weren’t  
> written by Matz. My concern is, are there restriction on the  
> distribution of the standard Ruby package (probably using EXERB)  
> within commercial products. Hadn’t planned on any changes to  
> Ruby itself.

No. That’s still covered under the Ruby licence, which allows for an  
Artistic-style (though very loose) licence or GPL.

-austin  
– Austin Ziegler, austin@halostatue.ca on 2003.04.11 at 16:09:00

> **···**
>
> On Sat, 12 Apr 2003 02:09:25 +0900, Steve Adams wrote:

---

<div class="post-metadata">

**Author:** ![Yukihiro\_Matsumoto2](https://avatars.discourse-cdn.com/v4/letter/y/b9e5f3/32.png) [@Yukihiro\_Matsumoto2](https://rubytalk.org/u/Yukihiro_Matsumoto2)\
**Post date:** [12 April 2003 05:01 UTC](https://rubytalk.org/t/two-questions/5602/9 "2003-04-12T05:01:17Z")

</div>

Hi,

> Parts of the license are a bit vague about if commercial apps can be  
> generated with the tools. This relates to the parts that weren’t  
> written by Matz. My concern is, are there restriction on the  
> distribution of the standard Ruby package (probably using EXERB)  
> within commercial products. Hadn’t planned on any changes to  
> Ruby itself.

If you’re programs are written _in_ Ruby, I have no right nor control  
over them. If you’re programs embed Ruby in them (or using Exerb),  
you have to either

- ship unmodified Ruby source with your program

- mention how to get the Ruby source in the documentation of your  
program

> **···**
>
> In message “Re: Two questions” on 03/04/12, “Steve Adams” [adamss@ascinet.com](mailto:adamss@ascinet.com) writes:

---

<div class="post-metadata">

**Author:** ![Steve\_Adams](https://avatars.discourse-cdn.com/v4/letter/s/bbe5ce/32.png) [@Steve\_Adams](https://rubytalk.org/u/Steve_Adams)\
**Post date:** [11 April 2003 17:49 UTC](https://rubytalk.org/t/two-questions/5602/10 "2003-04-11T17:49:34Z")

</div>

Because it’s the requirement that I’ve been given.

“Mike Campbell” [michael\_s\_campbell@yahoo.com](mailto:michael_s_campbell@yahoo.com) wrote in message  
[news:NFBBKBEMGLGCIPPFGHOLIEIMDHAA.michael\_s\_campbell@yahoo.com](mailto:news:NFBBKBEMGLGCIPPFGHOLIEIMDHAA.michael_s_campbell@yahoo.com)…

> > Protection of the source code for the product being developed is  
> > a fairly standard thing for non-open source products.
> 
> True enough, but the question posed was “why do _YOU_ want to do that?”  
> (emphasis mine). Is the answer, “because everyone else does”? that’s a  
> fair

> **···**
>
> > answer mind you.

---

<div class="post-metadata">

**Author:** ![Eric\_Schwartz6](https://avatars.discourse-cdn.com/v4/letter/e/59ef9b/32.png) [@Eric\_Schwartz6](https://rubytalk.org/u/Eric_Schwartz6)\
**Post date:** [11 April 2003 18:29 UTC](https://rubytalk.org/t/two-questions/5602/11 "2003-04-11T18:29:47Z")

</div>

“Steve Adams” [adamss@ascinet.com](mailto:adamss@ascinet.com) writes:

> Because it’s the requirement that I’ve been given.

Push back, then. This question comes up all the time in clpm, and the  
standard answer there is, “You can’t do what you want to do.” I don’t  
see why Ruby is any different. At some point, you have to have plain  
text to feed into a Ruby interpreter, at which point all the  
obsfucating you’ve done is now completely useless.

If you’re afraid people will steal your code, then license it  
appropriately, and set severe penalties in your contract for copying.  
And don’t give it to people who will steal it-- if you can’t trust the  
people you do business with, it’s probably time to find new clients,  
or get in a new business.

-=Eric

> **···**
>
> –  
> Come to think of it, there are already a million monkeys on a million  
> typewriters, and Usenet is NOTHING like Shakespeare.  
> – Blair Houghton.

---

<div class="post-metadata">

**Author:** ![Steve\_Adams](https://avatars.discourse-cdn.com/v4/letter/s/bbe5ce/32.png) [@Steve\_Adams](https://rubytalk.org/u/Steve_Adams)\
**Post date:** [11 April 2003 18:29 UTC](https://rubytalk.org/t/two-questions/5602/12 "2003-04-11T18:29:53Z")

</div>

The standard answer is “Use something else other than Ruby.”. My hope  
had been that it would have supported some form of distribution other than  
pure source form. It’s been great for prototyping, but at this point I’ll  
have to  
use something else for the actual product.

“Eric Schwartz” [emschwar@pobox.com](mailto:emschwar@pobox.com) wrote in message  
news:eto7ka0rjbw.fsf@wormtongue.emschwar…

> **···**
>
> > “Steve Adams” [adamss@ascinet.com](mailto:adamss@ascinet.com) writes:
> > 
> > > Because it’s the requirement that I’ve been given.
> > 
> > Push back, then. This question comes up all the time in clpm, and the  
> > standard answer there is, “You can’t do what you want to do.” I don’t  
> > see why Ruby is any different. At some point, you have to have plain  
> > text to feed into a Ruby interpreter, at which point all the  
> > obsfucating you’ve done is now completely useless.
> > 
> > If you’re afraid people will steal your code, then license it  
> > appropriately, and set severe penalties in your contract for copying.  
> > And don’t give it to people who will steal it-- if you can’t trust the  
> > people you do business with, it’s probably time to find new clients,  
> > or get in a new business.
> > 
> > ## -=Eric
> > 
> > Come to think of it, there are already a million monkeys on a million  
> > typewriters, and Usenet is NOTHING like Shakespeare.  
> > – Blair Houghton.

---

<div class="post-metadata">

**Author:** ![Eric\_Schwartz6](https://avatars.discourse-cdn.com/v4/letter/e/59ef9b/32.png) [@Eric\_Schwartz6](https://rubytalk.org/u/Eric_Schwartz6)\
**Post date:** [11 April 2003 18:50 UTC](https://rubytalk.org/t/two-questions/5602/13 "2003-04-11T18:50:01Z")

</div>

“Steve Adams” [adamss@ascinet.com](mailto:adamss@ascinet.com) writes:

> The standard answer is “Use something else other than Ruby.”. My hope  
> had been that it would have supported some form of distribution other than  
> pure source form. It’s been great for prototyping, but at this point I’ll  
> have to  
> use something else for the actual product.

Feel free to point out that disassemblers are easy to come by, and  
work fairly well with C++ and Java; you’re not really much more  
‘secure’ using a compiled language than you are with Ruby. But  
politics is politics. :-\

-=Eric

> **···**
>
> –  
> Come to think of it, there are already a million monkeys on a million  
> typewriters, and Usenet is NOTHING like Shakespeare.  
> – Blair Houghton.

---

<div class="post-metadata">

**Author:** ![gabriele\_renzi4](https://avatars.discourse-cdn.com/v4/letter/g/e36b37/32.png) [@gabriele\_renzi4](https://rubytalk.org/u/gabriele_renzi4)\
**Post date:** [13 April 2003 16:34 UTC](https://rubytalk.org/t/two-questions/5602/14 "2003-04-13T16:34:46Z")

</div>

if they point you to java show them decafe and dj.  
Seeing them working is impressive.  
nobody mentioned bruby, you’ll have some kind of bytecode…

> **···**
>
> il Fri, 11 Apr 2003 14:24:17 -0400, “Steve Adams” [adamss@ascinet.com](mailto:adamss@ascinet.com) ha scritto::
> 
> > The standard answer is “Use something else other than Ruby.”. My hope  
> > had been that it would have supported some form of distribution other than  
> > pure source form. It’s been great for prototyping, but at this point I’ll  
> > have to  
> > use something else for the actual product.
