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