Fog Creek Software
Discussion Board

A profitable alternative to open source

How about selling software with source code included?

It seems to me that this approach makes the most sense. The developer makes money on every copy of the software. The user has access to the source code and can make slight modifications if necessary.

The KEY IDEA is that a user has an incentive to report bug fixes and patches to the developer because she does not want the hassle of maintaining them with every new release of the software. This takes care of most users. As for the tiny minority who do contribute substantial code, I'm sure they and the developer can work out a revenue sharing arrangement.

anonymous developer
Tuesday, July 27, 2004

I think Joel does this with Fogbugz & certain open source licensing allows you to do this. (GNU maybe?)
Tuesday, July 27, 2004

Joel has to do this with FogBUGZ. It is written in ASP, so can only be distrubuted as source code.

Tuesday, July 27, 2004

Speaking of which, I always wondered if there's a serious performance hit between calling a compile binary (eg. written in C/C++) as opposed to running scripts whose interpreter is already loaded (either because it's loaded as a module when the www server starts, or it's compiled inside the www server itself)?

Are there major technical reasons why we write web apps in scripts instead of compiled languages?

Tuesday, July 27, 2004

We sell our source code as an (expensive) option.  Then we make a fortune charging extra support to the companies that break our code.

Tuesday, July 27, 2004

"We sell our source code as an (expensive) option.  Then we make a fortune charging extra support to the companies that break our code."

Good call.

In our company, my boss has sold many of his asp applications out.  And we have a clause that requires the clients to pass us back copies of their changes if they want support to continue.

Because if they break it, we've got to have an idea of how it happened.

Tuesday, July 27, 2004


At least for PHP on UNIX, there is a performance gain to using a compiled language as a CGI.  I started using C first because my job was paying me to do it, and then because I was having trouble with hosted site admins playing with the PHP configuration.  When I compared the two using Apache Benchmark, I was very happy to see that I actually got a performance gain.

This gain might go away with PHP5 though.  There have been changes to the internal memory model that are likely to help resource usage.

Clay Dowling
Tuesday, July 27, 2004

Playing with the source code of a commercial app is like buying a car and then fiddling with the engine to get it to work because it skips a beat every now and then or something.  Thank god software is the only thing that comes "severely" tainted with bugs in some cases.

In my opinion, if I am going to spend a ton of money on software and then commit time to finding/fixing bugs because such bugs slow down or stop my work, I might as well go with open source. There are some very high quality alternatives out there!

my op
Tuesday, July 27, 2004

I remember that when Bell Northern sold a packet switched data network to the Federal Reserve Bank, the Feds got a copy of the source code; but they (the customers) weren't allowed to change the source code (doing so would void their support contract).

Christopher Wells
Tuesday, July 27, 2004

Alternatively, you could write in the contract that the source code is kept with an escrow, in case the company goes under, or, in a one-man shop, you get run over by a car. Combined with showing your customers that you are using well-known tools to develop (ie. they won't have much trouble hiring a company to take over in case of trouble), that should solve the issue.

That's what my dad told a customer once who was worried about what would happen to the applications if the company went out of business

Tuesday, July 27, 2004

The Sleepycat model might work pretty well. The code is freely available.  Apps linking against it can't be distributed unless the source code is made freely and easily available.  If you don't want to do that, you pay Sleepycat for a license.  The license cost isn't that bad, in that it is cheaper than paying somebody to write and support a high availability, reliable ISAM storage engine for you. For me, with a software package that was only lightly distributed, distributing the source was a lot more practical.

Clay Dowling
Tuesday, July 27, 2004

" you could write in the contract that the source code is kept with an escrow, in case the company goes under"

My understanding is that this is a VERY common practice.

(Still a good idea, just not a NOVEL idea)

Mr. Analogy
Tuesday, July 27, 2004

Your suggestion is more about breaking the tradition of distributing open source software free of charge than taking issue with the idea of distributing source code, of course, because surely you know that there is nothing in any of the various licenses that prevents open source software from being sold. It has simply been distributed free or for the cost of media like CDs for long enough that free of charge is often associated with free software.

It sounds like the idea of people making software because they enjoy doing so and distributing it gratis is quite disturbing to you, so that we must find proper, profiteering "alternatives." People can continue to make high-quality software that's distributed cheaply and with source, and you can figure out how to rip people off with buzzword-compliant "solutions." There's room for everyone in the pool, mac. :)

Tuesday, July 27, 2004


I don't have a problem with people writing and releasing free software at all :)  I'm merely suggesting that they could charge for the software, and in some cases, even make a living off it. The obstacle is that the open-source 'movement' currently has a lot of momentum, and releasing code under an OS licence has become the default choice.

anonymous developer
Tuesday, July 27, 2004

If you can help it, place as much of your application into meaningful and reusable DLLs. Offer your users to use it. If you properly engineer your software you should be able to separate the business logic from the utility libraries, that way you could decide what you want to license/show-source and to whom. You may license the utility libraries (say in a POS software, the printer library) to printer makers so they can study it. You may want to license the business logic to VARs. You may want to make available the docs for the DLLs (and info on the scripting engine) to the power users. By making this arrangement you get some of these customization needs/need to see requests met without everyone seeing everything for no apparant good reason. You should make it easy for the end users to build the end library by itself using Visual C++ without any problem and plug in any updates they've made. Use some kind of plug-in architecture. However there should be a mechanism for to your software to report to your head office that the application in question is no longer "kosher" and all warantees are null and void (if the customization warants it). You may also want to write a license that makes it easy for you to buy the innovations made available by your user base so that any cool updates made to your software has a chance of making it back into the original software.

Li-fan Chen
Tuesday, July 27, 2004

In response to the original question "How about selling software with source code included?"

At least one company that I know of, Dan Appleman's Desaware, is including complete source code with the components that they sell:
"Desaware Universal .NET and Universal COM: Two great bundles with complete source!
In speaking extensively with our customers, we found that not only was source code the top request of our current customers, lack of source code was the primary obstacle that was preventing some companies from adopting components (ours, or anyone else's). Releasing source code demonstrates our commitment to guaranteeing long term support for our products."

I don't believe that Desaware's licensing terms would allow you to take their source code and sell (or give away) your own identical components in direct competition with Desaware, but getting the source code with the components protects the purchaser if the vendor goes out of business or decides to drop the product, as well as allowing for modifications or bug fixes by any purchaser interested in doing so.

Philip Dickerson
Tuesday, July 27, 2004

Fred, yes, sometimes scripts can run faster than compiled programs because the interpreter is already loaded. Run time vs startup time is something to consider as well - in unix, if the executable is already running as another process, new instances of it will share the code segments and merely create their own stack and heap.

With something like Perl, it is frequently faster than C because Larry Wall is a better C programmer than most of us and also using Perl makes you do stuff like use a lot of hashes and other smart things that are not done by the average C programmer banging out a script.

Dennis Atkins
Tuesday, July 27, 2004

"It sounds like the idea of people making software because they enjoy doing so and distributing it gratis is quite disturbing to you"

Warren, do you write professional quality software for enjoyment only and distribute it free? Or do you just advocate that others do this?

Dennis Atkins
Tuesday, July 27, 2004

Open Source is not a software distribution method, its simply a licencing model.

The only common requirement with Open Source licences are that the source has to be available.  It doesn't have to be distributed with the package, it doesn't have to live on sourcesafe or some other public host.  It just has to be somewhere it can be downloaded from or requested from.

Bundling the source with a product requires some specific licencing language so that source can't then be used to produce derivative products and so that the originators aren't held to account to changes made to that source.

Simon Lucy
Wednesday, July 28, 2004

The Great Code C++ Beautifier works under this model.  I use it all the time, and I keep thinking it would be good to get the source code for a nominal fee ($19) to upgrade it a bit for some of the newer C++ features.

Thursday, July 29, 2004

*  Recent Topics

*  Fog Creek Home