M
Matt Pelletier
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
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