Open source - good or trojan horse?

    I immediately want to narrow the scope - the conversation is about selling a software product (php + MySQL).
    The question is (pro) give the source code?

    Arguments in favor of closed source.
    - The vast majority of customers need the product to work and the source code is not needed.
    - With closed code it’s easier to implement those. support - the client will not get into where he doesn’t need it and will not give rise to new unique errors that you can figure out.
    - It's harder to steal the source code. More precisely, it can be obtained, but it’s difficult to redo something serious in this “source” - it’s maximum to break the protection and make minor corrections.
    - There is some hope of the developer that the closed code will save from the resale of his product by dashing people.
    - There is a slight hope that they will buy the product, because they will not be able to “break” it, or they will be afraid to use the “broken one”.
    - The people (our people :)) are used to the fact that if the code is open, then it’s free!

    Arguments in favor of open source.
    - Sometimes a client just wants to be able to look at the code. That is, it’s not necessary to even have it, but for such an opportunity. It can be paranoid security in a good way or just fighters for some rights.
    - The client has the opportunity to make changes, and very serious ones. Until the loss of compatibility with subsequent versions of the product (although this is already possible in the negative).
    - There are no problems with the closed code decoder. It's no secret that such problems are encountered (the absence of Zenda and others like him, some local glitches, etc.).
    - There is an opportunity to build a community of developers who bought, say, a development license with access to open source.

    Add some specifics.
    The question of "open source" is of interest in connection with the "in-house" discussion about the development of one of our products (CNCat). We went through different stages (open source, Zend) and now we are performing obfruscation (replacing variable names with meaningless ones) and easy encryption. When we gave the product in open source and gave it for free, many people tried the code and based on it made their products without any links to us. That was a little disappointing and now I do not want to get burned on it again.
    However, the correct positioning of open code (API, support, control, etc.) can give us an influx of third-party developers of new features, powerful feedback, debugging - in general, a new impetus.

    So I want to get some additional arguments or thoughts on this issue. How would you behave as a client, as a developer (of course, it is desirable that you are one, so as not to unfounded)? Maybe there are some well-established theories in the world and approaches proven by practice (like the free version is closed, bought is open)?

    Also popular now: