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. -- http://mail.python.org/mailman/listinfo/python-list