6

It seems to me that if you are writing in an interpreted language that it must be difficult to sell software, because anyone who buys it can edit it/change it/resell it without much difficulty.

How do you get around this? I have a couple of PHP apps that I'm reluctant to sell to people as it seems that it's too simple for them to change/read/edit/sell what I've produced.

Rich Bradshaw
  • 71,795
  • 44
  • 182
  • 241
  • Dupe: http://stackoverflow.com/questions/261638/how-do-i-protect-python-code – S.Lott Dec 04 '08 at 12:06
  • @Slott, you're a 12k rep, why don't *you* close it? :-) But seriously, I think this one might be a more general question (not Python-specific). My inclination is to leave it open (until someone harsher than me comes along). – paxdiablo Dec 04 '08 at 12:31
  • That's just something that rubs me the wrong way -- when people about 3K don't close questions that they list as duplicate. Someone else can always come back and re-open it, but at least use your reputation if you have it. This is similar but not a direct duplicate. – George Stocker Dec 04 '08 at 14:36
  • Hey, Rich, here's a bonus upvote to push you above the magic 3000 :-) – paxdiablo Dec 05 '08 at 02:25

10 Answers10

18

Hardly anyone sells code. We sell the ability to create, edit, support and understand the code.

Quibblesome
  • 25,225
  • 10
  • 61
  • 100
  • I recently got a couple hours freelance work for putting some VBA behind an Excel sheet! We are valuable for knowing how, not the end result. – Karl Dec 04 '08 at 12:46
  • 1
    But there's a difference between consulting and selling a licenced product. Unless I misunderstand, you guys are talking about consulting, and Rich Bradshaw is talking about licensing a product. – John MacIntyre Dec 04 '08 at 14:22
  • Not entirely unrelated. You just have to provide something with the license that can't be readily copied, such as support services (which may or may not include consulting). – Dave Sherohman Dec 04 '08 at 14:57
  • John, even licensed products aren't always selling the code. Pirating a product for business usually isn't a great idea because you'll always need support and extension. If your business relies on the product you'll be gimped when things go wrong. – Quibblesome Feb 26 '09 at 01:05
11

As a potential buyer of your application, I might find these features attractive:

  • The ability to change the code to suit my needs
  • The ability to read the code to better understand what it's doing

... and yes ...

  • The ability to sell my modifications

All three of those are features.

The third one might be a feature you can't afford to give me. Fix that through legal measures, not technical measures. That's what licensing is for. You could also sell more expensive licenses which do allow resale.

There are things you could do to remove the first two features, but bear in mind that in doing so you are reducing the overall value of your product to some people, and therefore its sale price.

For many people the primary reason for using Open Source software is not that it costs nothing -- it's that you get the source code.

slim
  • 40,215
  • 13
  • 94
  • 127
6

People sell the service of creating web sites all the time. Also, even a compiled language can be altered, it`s just more difficult.

Nerdfest
  • 1,675
  • 13
  • 20
5

Most of the time the user base does not understand how to make the changes or what to do with the scripts so you are really selling your knowledge of how to install and change the scripts.

David Allan Finch
  • 1,414
  • 8
  • 20
  • Let's hope the users know this. Considering the kind of questions one can read in PHP newsgroups, I guess many people want to save some buck. – stesch Dec 04 '08 at 13:46
  • A lot of people would like to save money by servicing there own car, but most still pay someone else to do it ;) – David Allan Finch Dec 04 '08 at 14:50
3

Don't sell the software, sell "licences".

I'll try to explain better, build the web app but provide hosting for it. this way your client will never get to "hold" the source code.

If you really must deliver the source code, Obfuscating is the way to go ;)

Sergio
  • 8,125
  • 10
  • 46
  • 77
  • 1
    Obfuscating is a pointless waste of time that rarely accomplishes anything more than being an annoyance. TrollTech, MySQL AB, and many other companies deliver unobfuscated source code and do quite well because of - not despite - doing so. – Dave Sherohman Dec 04 '08 at 15:00
  • Well, that is the concept of open source, is it not? We are not discussing open source software in here. – Sergio Dec 04 '08 at 15:09
3

Possible routes to go:

  • Translate to a bytecode, binary or an obfuscated format

For instance, Splunk is written mostly in Python, and distribute bytecode. The EVE online client uses Stackless Python to compile to an executable binary.

  • Host the solution yourself

Put up a website, charge for use.

  • License the software

They get the source, but cannot legally modify or redistribute the source.

  • Open source the solution

Anyone can change the code, but you are the de-facto authority on it, and you can earn money by selling support, consultancy and customization services.

You could also consider a combination of approaches. E.g., partition your solution into several stand alone packages, and then open source some of them, and sell bytecode versions of other parts. What you then sell is the complete solution, as well as other services, and some people may benefit and enhance other parts of the solution.

csl
  • 10,937
  • 5
  • 57
  • 89
2

Plenty of companies make money off of applications in interpreted languages and happily distribute the source code with them. Don't take this personally, but your program probably isn't going to be popular enough to have a large following of pirates. And anybody who would pirate your software probably isn't going to buy it in the first place. If they can't pirate it, they'll pirate somebody elses.

Whatever you do, please don't obfuscate your code. It's not an effective means of preventing infringement and it won't do anything other than make life miserable for you and your customers.

Jason Baker
  • 192,085
  • 135
  • 376
  • 510
2

Protecting your secret bits is getting more and more difficult.

IMHO, your solution really depends on your target market. If you are targeting business, just give them the code with a good license, and possibly some type of defect so you can determine who gave your code away if that ever happens. Businesses will mostly pay for your app just to stay compliant; it's not worth the legal hassles. And if an individual gets your app for free, that's probably a good thing, since they will try to convince their current and future employers to buy it.

If you are targeting individuals, and can do it as a web app (which you obviously are with PHP), do it as a hosted service, and either sell a monthly subscription or allow free access and find another way to monetize it.

If you definitely need to or want to distribute it to individuals for whatever reason, you can give it away for free, and try to monetize customizations, add-ins, & other support features.

This is a problem that's been discussed a lot, and a few hours’ worth of really focused googling should reveal all the current philosophies on this.

I hope this helps.

John MacIntyre
  • 12,910
  • 13
  • 67
  • 106
1

Obfuscation may be a good way to go

Daniel Silveira
  • 41,125
  • 36
  • 100
  • 121
0

With PHP you have the option of using the Zend Guard for PHP. I believe it compiles the source code in a way similar to what the php interpreter does, so it should also increase performance. Of course the price of $ 600 may be too much for your liking ;-)

Anyway, I see no reason why you shouldn't distribute your code with an open source license (see the Open Source Initiative for a list of licenses available). You can find one that prohibits your customer from redistributing your app.

EDIT:
As Novelocrat points out in his comment, a license that prohibits distribution is per definitionem not an Open Source license, the term Open Source refers to a lot more than just the availability of the source code. (See also the answers to this related question for further discussion).

Community
  • 1
  • 1
Treb
  • 19,903
  • 7
  • 54
  • 87
  • No, you can't find an open source license that prohibits redistribution. That's directly contrary to the first point of the Open Source definition. – Phil Miller May 13 '12 at 18:42