Two questions

Steven D'Aprano steve at REMOVEMEcyber.com.au
Thu Jun 2 23:38:59 EDT 2005


Andrew Dalke wrote:


> Steven D'Aprano wrote:
> 
>>I can think of a number of reasons why somebody might want to hide their
>>code. In no particular order:
> 
> 
>>(3) You have create an incredibly valuable piece of code that will be
>>worth millions, but only if nobody can see the source code. Yeah right.
> 
> 
>  - id software makes a lot of money licensing their 3D FPS engine

The existence of one or two or a thousand profitable 
software packages out of the millions in existence does 
not invalidate my skepticism that some random piece of 
software will directly make money for the developer. 
Even assuming that the money-making ability would be 
lost if the source code was available, which is not a 
given (id software open-sources old versions of their 
rendering engines, and MySQL is quite profitable and 
their software is available source code and all).

Software rarely makes money for the developers 
directly. The odds are against any developer, hence my 
skepticism.

>  - stock market trading companies make money in part by having
>     specialized software to help with market trading, forecasts, etc.

You are mixing up a number of seperate issues here.

If the trading company keeps the software in-house, 
then the issue of making the source code available is 
irrelevent since they don't distribute the object code 
either.

If they distribute the software externally, then they 
almost certainly have more protection from licence 
agreements and copyright than they get from merely 
hiding the source. If they even do hide the source 
code, which is not a given.

As for the issue of them making money, I'm not 
suggesting that software can't make money for a 
business. I work for a business that makes money from 
Linux, Apache, perl, Python and other FOSS in the same 
way that a carpenter makes money from a hammer: they 
are tools that we use to provide products and services 
that we sell for profit.

In-house use of market forecasting software falls into 
the "carpenter's hammer" category, not the "make money 
by selling software" category.

As for selling forecasting software, well, you haven't 
demonstrated that making the source code available 
would harm the ability to make money from it. Firstly, 
very often the value of the software is not the 
algorithms they use (curve fitting software and 
extrapolation algorithms are hardly secret), but the 
data used by the algorithm. So long as you keep the 
financial data proprietary, keeping the source code 
secret adds nothing.

Secondly, even if the software is rubbish, and the 
forecasts give results no better than chance, doesn't 
mean the company can't make money selling it. Look at 
the popularity of "systems" for predicting lottery numbers.

>>(8) You are programming a game or puzzle, and you don't want players to
>>cheat by reading the source code. Consider pulling out the information
>>they need to cheat and putting it in an encrypted data file instead.
> 
> 
>   But code is data ...

A pedantic point that doesn't add anything to the 
discussion :-) Not all the data in a puzzle allows the 
player to cheat, does it? Case in point: knowing how 
Solitaire draws the cards on the screen doesn't help 
you win any games.

>>There may be other reasons for wanting to keep the code secret. Some of
>>them might even be good reasons, for some value of "good".
> 
> 
>   You are the US government developing software to design/test the
>   next generation nuclear weapons system and don't want any other
>   country to use it.  (GnuNuke?)

Then don't distribute the software, object or source code.


>   You are a student working on a take-home example and you aren't
>   allowed to work with/help anyone else

Er, I don't see how this is supposed to work. An 
example of what? How does keeping the source code 
secret prevent the student from working with others?


>>If you really what to hide your code, you might like to think about
>>using C-extensions instead.
> 
> 
> Or go the Amazon/EBay/Google approach and provide only client access
> to your code.

Yes, good point. That's another way of telling your 
customers under what circumstances they are allowed to 
use the software. And who knows, if your software is 
valuable enough and unique enough, they may even be 
prepared to work the way you want them to work instead 
of the way they want to work.


-- 
Steven.




More information about the Python-list mailing list