[prev in list] [next in list] [prev in thread] [next in thread] 

List:       ruby-talk
Subject:    Practical considerations for licensing software written with dynamic/non-compiled
From:       Matt Pelletier <pelletierm () eastmedia ! net>
Date:       2005-04-15 9:14:52
Message-ID: 425F8555.8010003 () eastmedia ! net
[Download RAW message or body]

Hello all. I'm looking for feedback on the following:

What options does one have, as a company that produces software that is 
distributed directly to clients/VARs, when that software is built with a 
platform/architecture that uses a dynamic (non-compiled) language, and 
further, when that platform and/or language is open-source? This 
question qualifies for Rails and Ruby, but also it could hold for PHP, 
Perl, etc.

I'm interested not just in the general legal considerations (like 
licensing, intellectual property rights), but also practical 
considerations. For example, I could get an airtight licensing contract 
written for me, but if I have to hand the software to a client or 
vendor, they could easily turn around and get a team to re-sell it under 
another name (Pear PC anyone?). At least with designer bag knockoffs 
there is the latent pride on the part of the consumer of having the 
*real-thing* (albeit at 10x the cost). With software, if it walks like a 
duck and talks like a duck... who cares if it's a rip-off? I could force 
the use of keys or certificates, but these are easily cracked even when 
the software is written in C++. This is less likely to happen in the 
ever-litigious US, but it's a major concern for any company working 
internationally, where well-trained techies, cheap labor, and loose 
laws/enforcement abound.

If we wrote software in assembly it would still be a concern, but when 
there is little-to-no reverse-engineering needed for languages that 
don't need to be compiled in the first place, it affects decision-making 
when selecting platforms/languages, which is rather unfortunate. With 
Java/.NET you can download a decompiler and have source code exported in 
a day. You can obfuscate, but that's a small comfort; anyone with time 
and interest can figure that out. With dynamic languages, all the hard 
work is done for you.

If you are operating as an ASP (a la 37 signals with Basecamp), this 
isn't much of an issue. However, if you have to give your software to 
*anyone*, whether a client to run on their own network, or to a 3rd 
party in general, what are your options?

This isn't really a concern when dealing with smaller projects for 
smaller clients, where the compensation is based on project time, even 
if license it to them (as opposed to letting them own it). In those 
cases, PHP (and from this point forward RoR!) is usually the best 
choice, for all the reasons that we love (quick development, simple 
changes / customization). But when you're licensing software that you 
own, the value - which at face value is the feature set and 
maintenance/support services - ultimately boils down to the source code, 
and needs to be protected to the fullest possible extent. Yes there are 
business models where the value is strictly your support (Red Hat, at 
least at first), but that's not really what I'm asking about (though I 
welcome the comments).

This is something I've been curious about for some time, but PHP et al 
have never been attractive alternatives for larger projects. RoR is 
compelling enough that these concerns have escalated.

Any comments / sites / experience are welcome. Thanks!

Matt


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic