Thread: Why Open Source?

  1. #1
    Registered User
    Join Date
    May 2009
    Posts
    64

    Why Open Source?

    What's the benefit of this? Are you one of these thousands of people who share your works to the open source community?

    I'm asking because most of the good software I know are open source. Why don't they just release the binary and keep the source code to them.

    Sarah

  2. #2
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    28,412
    Among other articles, you could read this essay on The Cathedral and the Bazaar.
    Quote Originally Posted by Bjarne Stroustrup (2000-10-14)
    I get maybe two dozen requests for help with some sort of programming or design problem every day. Most have more sense than to send me hundreds of lines of code. If they do, I ask them to find the smallest example that exhibits the problem and send me that. Mostly, they then find the error themselves. "Finding the smallest program that demonstrates the error" is a powerful debugging tool.
    Look up a C++ Reference and learn How To Ask Questions The Smart Way

  3. #3
    Registered User
    Join Date
    Dec 2006
    Location
    Canada
    Posts
    3,229
    If they were close sourced, they would have never became good.

    If you look at the Linux kernel for example, according to Wikipedia, Linus Torvalds, the original author, only wrote 2% of the code.

    There is no way he could have written the kernel as we know today all by himself.

    I'm guessing the same can be said for Firefox/OpenOffice/GIMP/other big and famous open source projects.

  4. #4
    Registered User
    Join Date
    May 2009
    Posts
    64
    @laserlight

    Thanks for that.

    @cyberfish

    Oh, I see.. But how do they update the codes if there are thousands of developer on that project? Sorry, I'm still new with it.

    I'm still deciding if I should open source my 3d rendering engine. Most of the people around told me I should open source it. :|

  5. #5
    Registered User
    Join Date
    Dec 2006
    Location
    Canada
    Posts
    3,229
    Version control systems, like SVN. Same with closed source projects with thousands of developers.

    Now obviously you can't give everyone write access to the repository... only relatively few developers have write access, and everyone else contributes in the form of patches. They send patches to people who have write access, who will commit the changes after reviewing them.

  6. #6
    Registered User
    Join Date
    May 2009
    Posts
    64
    Now I understand. Thank you very much. :*

    One thing that bothers me most is those people that might try to copy my engine. Sorry if I sound selfish or something but I'm pretty sure you know what I mean.

  7. #7
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    28,412
    Quote Originally Posted by sarah22
    One thing that bothers me most is those people that might try to copy my engine. Sorry if I sound selfish or something but I'm pretty sure you know what I mean.
    Legally, they would still be required to attribute their copy to you, unless you waive this requirement. If you want to make it more difficult for them to be able to use your project to start a successful rival project, then you need to cultivate a loyal user base, release under a reciprocal license like the GPL, and then have the energy (or willing co-developers) to incorporate whatever good changes your would-be rivals make to your code base in their fork of your project.

    Alternatively, you can be more trusting and release your project under a permissive license, in view that discerning users would not switch to a potential "closed source" rival, and if your would-be rivals release their fork as an open source project, you can once again copy back from them.
    Quote Originally Posted by Bjarne Stroustrup (2000-10-14)
    I get maybe two dozen requests for help with some sort of programming or design problem every day. Most have more sense than to send me hundreds of lines of code. If they do, I ask them to find the smallest example that exhibits the problem and send me that. Mostly, they then find the error themselves. "Finding the smallest program that demonstrates the error" is a powerful debugging tool.
    Look up a C++ Reference and learn How To Ask Questions The Smart Way

  8. #8
    Registered User
    Join Date
    Mar 2010
    Posts
    11
    Quote Originally Posted by cyberfish View Post
    If they were close sourced, they would have never became good.
    Amen.

  9. #9
    Registered User
    Join Date
    May 2009
    Posts
    64
    So what can you recommend to me what should I do with my project? If you're on my foot what would you do?

  10. #10
    spurious conceit MK27's Avatar
    Join Date
    Jul 2008
    Location
    segmentation fault
    Posts
    8,300
    Quote Originally Posted by sarah22 View Post
    One thing that bothers me most is those people that might try to copy my engine. Sorry if I sound selfish or something but I'm pretty sure you know what I mean.
    That's probably desirable, not something to be avoided.

    It means that you are free to do the same thing. Consider: you may not intend to do this right now, but while you are developing the engine, you may take an interest in other open source game engines and start reading their code. If you come across a good idea that will work within your project, you are free to use it, but you must acknowledge this. A catch here is that by the terms of some OSS licences (and probably, most OSS projects), anything which uses the code must retain an open source licence.

    Within the closed source world, this would be considered stealing, but within the open source community, it's encouraged: so rather being "upset" that someone has used your work, you should be happy. The reason the open source model does not require anyone to ask permission (but to give credit) is to ensure that everybody has the same rights and opportunities. One of my open source projects has about a dozen lines of code (a single short function) that I lifted more or less verbatim from somewhere (also open source), and I credit that source. I could probably have rewritten enough to make it look like my own original work, but that is sort of "anal" and ridiculous outside of the human world of petty prides and jealousies. Computer coding is not like music in the sense that often there is, realistically, only one or two ways of doing something. So it would be a little bit silly for one person to start claiming that method for themselves, even if they discover it (which, as in science, such things might be understood as discoveries more than inventions).

    For example, John Carmack's alternative to sqrt() from Doom (Quake?) is open source, so anyone can openly use the method, even tho it is probably something he could have patented and sold rights too: most likely, just big studios. And all those gaming books which contain pages on this method would have to take those pages out, because an algorithm (eg, quicksort) can be patented. Fortunately, AFAICT they are generally not in the programming world -- otherwise, being a progamming student would mean you'd be learning a bunch of patented algorithms not in an applied sense, but in the sense that you would need to know what they are so you could avoid using them* and getting sued (or learn who and how much you have to pay for the privilege). I guess bubble sort would need to be cheaper than quicksort, to keep such an economy going. So you could literally buy cheaper, slower software based on the patented algorithnms used in it.

    This is part of the reason that Open Source is generally regarded as a more logical approach, holistically speaking, to the evolution and development of software. We are maybe lucky that people did not start copyrighting everything from the beginning (eg, so you could pay for a licence for each part of the STL every time you use it) -- especially since in that case computer software would be decades behind where it is now. Technically, the official C standard is not open source -- you are supposed to buy a copy and you cannot reproduce it. The result being that many people learn C without access to the official standard.

    You are, by the way, still allowed to sell your software for money if it is open source. This seems problematic because you could not stop someone else from giving it away for free, but it does go on.

    * in fact, in some places organic chem students must do that if they are working on something where they could accidentally create a known schedule 1 synthetic "recreational" drug (there are actually hundreds of them, all different, and all equally illegal -- even if you make it by mistake, that's a felony). There is a book available for this purpose called Controlled Substances and it contains laboratory instructions for synthesizing something like 400 different illegal drugs.
    Last edited by MK27; 03-21-2010 at 10:11 AM.
    C programming resources:
    GNU C Function and Macro Index -- glibc reference manual
    The C Book -- nice online learner guide
    Current ISO draft standard
    CCAN -- new CPAN like open source library repository
    3 (different) GNU debugger tutorials: #1 -- #2 -- #3
    cpwiki -- our wiki on sourceforge

  11. #11
    Make Fortran great again
    Join Date
    Sep 2009
    Posts
    1,413
    Quote Originally Posted by laserlight View Post
    Among other articles, you could read this essay on The Cathedral and the Bazaar.
    Doesn't always apply though, there are so many open source projects with one or two devs who desperately need help but don't want any or accept it. I think this is (one of the reasons) why there are so many open-source programs/libraries that do the same exact thing.

  12. #12
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    28,412
    Quote Originally Posted by MK27
    If you come across a good idea that will work within your project, you are free to use it, but you must acknowledge this.
    I'd say that the "must" here is typically ethical. If the idea and its method of implementation do not constitute an invention that is protected by a patent, you probably can get away with copying it without attribution, so long as you do not copy code. But even if you do manage to get away with it, it would be plagiarism that could blow up in your face later when you are presumably successful.

    Quote Originally Posted by MK27
    A catch here is that by the terms of most OSS licences, anything which uses the code must retain an open source licence.
    It depends on what you mean by "most OSS licenses". The various versions of the GPL do more or less require this ("use" in this context is vague) and are rather dominant, but if you count open source licenses rather than open source projects, it can be seen that most open source licenses are permissive and do not have such requirements. (On the other hand, many permissive licenses are variants of the BSD and MIT/Expat licenses, so such a comparision by counting is not very fair.)

    On this point of licenses, sarah22, I think you need to be clear on what you actually want with your project. It may turn out that a Free/Open Source Software license is not what you want.

    Quote Originally Posted by MK27
    We are maybe lucky that people did not start copyrighting everything from the beginning (eg, so you could pay for a licence for each part of the STL every time you use it)
    Actually, the original STL is under copyright, as is any standard library implementation (including those that are open source). However, the algorithms involved are not patented, as far as I know.

    Quote Originally Posted by MK27
    Technically, the official C standard is not open source -- you are supposed to buy a copy (several hundred dollars) and you cannot reproduce it.
    30 USD for a PDF document copy.

    Quote Originally Posted by Epy
    Doesn't always apply though, there are so many open source projects with one or two devs who desperately need help but don't want any or accept it.
    Well, if there is a theoretical benefit but you don't want to even try and make use of it, then it is really just your problem. A more important problem is that of developers who do welcome contributions, but whose projects never really take off as they never get a sufficient user base such that there are technically skilled users who can contribute more than just an occasional bug report.
    Quote Originally Posted by Bjarne Stroustrup (2000-10-14)
    I get maybe two dozen requests for help with some sort of programming or design problem every day. Most have more sense than to send me hundreds of lines of code. If they do, I ask them to find the smallest example that exhibits the problem and send me that. Mostly, they then find the error themselves. "Finding the smallest program that demonstrates the error" is a powerful debugging tool.
    Look up a C++ Reference and learn How To Ask Questions The Smart Way

  13. #13
    (?<!re)tired Mario F.'s Avatar
    Join Date
    May 2006
    Location
    Ireland
    Posts
    8,446
    Quote Originally Posted by sarah22 View Post
    So what can you recommend to me what should I do with my project? If you're on my foot what would you do?
    It if bothers you then go close source. There's is no real moral obligation to do open source software. Neither Open Source needs an hollier-than-thou attitude, more than it already has in some circles.

    You need to look at Open Source as simply a business decision. And if the implications of choosing this model aren't very clear to you, then it's actually better you don't go Open Source. Besides, an Open Source project to be effective depends on your ability to leverage the internet potential for collaboration. One thing very few achieve with any degree of success. Despite the apparent high number of successful Open Source projects, when looked in perspective, what we see is that the total number of open source initiatives, reduces success stories to a very small percentage. And this happens exactly because many go Open Source for the heck of it, without a real notion of the implications, the added work and the responsibilities. Projects then die, slow and lonely deaths.

    By the way, gaining the ability to form and maintain a following of developers is not something you can do on day 0 of your project. It takes time and it takes a product that meets people's expectations. This is one of the reasons so many Open Source projects die an infant death. Because not even this they know about Open Source. They either have boring projects no one really gives a damn, or expect they'll gather 20 developers within the week. When months have passed and they still didn't get 1 developer willing to contribute on even a semi-permanent basis, they too drop out and lose interest for their own project. So Open Source can in fact get in the way of the relationship you have with your project, if you are not aware of the implications.
    Last edited by Mario F.; 03-21-2010 at 10:03 AM.
    Originally Posted by brewbuck:
    Reimplementing a large system in another language to get a 25% performance boost is nonsense. It would be cheaper to just get a computer which is 25% faster.

  14. #14
    spurious conceit MK27's Avatar
    Join Date
    Jul 2008
    Location
    segmentation fault
    Posts
    8,300
    Quote Originally Posted by laserlight View Post
    It depends on what you mean by "most OSS licenses".
    [...]
    30 USD for a PDF document copy.
    Alright, I might as well correct that.

    Actually, the original STL is under copyright,
    So you cannot distribute, eg, an altered/improved version of anything? Huh. Rather lame IMO.

    I suppose some group of people are also free to start charging for it in the future, or otherwise restricting it's use. I wonder if there is any precedence for that. Seems very unlikely in this case.
    C programming resources:
    GNU C Function and Macro Index -- glibc reference manual
    The C Book -- nice online learner guide
    Current ISO draft standard
    CCAN -- new CPAN like open source library repository
    3 (different) GNU debugger tutorials: #1 -- #2 -- #3
    cpwiki -- our wiki on sourceforge

  15. #15
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    28,412
    Quote Originally Posted by MK27
    So you cannot distribute, eg, an altered/improved version of anything?
    The design of the original STL has been incorporated into parts of the C++ standard library. You certainly are free to alter/improve C++ standard library implementations and distribute your derivative work if those implementations are open source (and if you comply with the respective licenses).

    Quote Originally Posted by MK27
    I suppose some group of people are also free to start charging for it in the future, or otherwise restricting it's use.
    I am not sure about the original STL, but see Dinkumware.
    Quote Originally Posted by Bjarne Stroustrup (2000-10-14)
    I get maybe two dozen requests for help with some sort of programming or design problem every day. Most have more sense than to send me hundreds of lines of code. If they do, I ask them to find the smallest example that exhibits the problem and send me that. Mostly, they then find the error themselves. "Finding the smallest program that demonstrates the error" is a powerful debugging tool.
    Look up a C++ Reference and learn How To Ask Questions The Smart Way

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Open source 64 bit compilers?
    By abachler in forum Windows Programming
    Replies: 4
    Last Post: 06-06-2007, 03:31 AM
  2. Open source library for graphical presentation
    By Vogel in forum C++ Programming
    Replies: 1
    Last Post: 09-20-2005, 05:54 AM
  3. Open Source or not
    By spidereen in forum A Brief History of Cprogramming.com
    Replies: 26
    Last Post: 04-10-2003, 12:23 PM
  4. Open source: is it secure?
    By samGwilliam in forum Linux Programming
    Replies: 6
    Last Post: 02-28-2002, 09:58 AM
  5. Ghost in the CD Drive
    By Natase in forum A Brief History of Cprogramming.com
    Replies: 17
    Last Post: 10-12-2001, 05:38 PM