Slashdot Mirror


All Source Code Should Be Open, Revisited

cconnell writes "In my last article, I presented the idea that all commercial source code should be open. In other words, part of the delivery package for any software purchase should be a copy of the source files. If everyone saw software vendors' design and coding, the vendors might stop shipping us such lousy programs. The article generated a fair amount of controversy. My latest piece follows up on this idea and includes a few adjustments that respond to reader feedback."

22 of 509 comments (clear)

  1. what? by nogoodmonkey · · Score: 5, Insightful

    the cost to develop an app will always stand before cost of quality of the app. to think that every commercial app will be released as open source is very naive.

    1. Re:what? by nogoodmonkey · · Score: 4, Insightful

      You got me thinking. I could pop the hood on my car and figure out how it works, but I don't. I know people are curious as to how it works so they do, but a lot of us just take the invention for granted. Maybe if a company released source with their software, this same type of thing would happen. The "power users" would be able to see how the application works and in an end result they will know how to use the software better or be able to tweak it to be more suited for their needs. Then the regular users would just use the program, know that the source is there if they ever wanted it, but probably would never touch it.

      I would just be fearful that the wrong people would look at the source and use the knowledge against others. But, I guess people do put sugar in gas tanks, cut brake lines (or worse) in a car scenario. The idea isn't too much different. Thank you for giving this analogy.

  2. wow by ciryon · · Score: 4, Funny

    Reading this and at the same time see ad for Microsoft .Net Enterprise at slashdot.

    Ciryon

  3. Nonsense by Textbook+Error · · Score: 5, Insightful

    In any large software system, the truly unique code probably accounts for about 1% of the source.

    Hmm, not on any large software system I've ever worked on... The important part isn't some magic 1% of the source, it's the fact that you got a group of people together for long enough to ship the thing.

    This negates one of his basic points, and doesn't really contribute much over his previous rant...

    --

    Nae bother
  4. Won't benefit the users... by SoCalChris · · Score: 5, Insightful

    If a company had to release their code for products they sold, it wouldn't do any good to the end user. The code would be way to complex for 99.9% of all users to understand. The only users who would really understand it are the programmers, and even then they would need to spend a LOT of time analyzing it (Assuming it is a decent size program) before they could even start to understand it.

    The only people who would benefit are the releasing company's rivals, who would have the time & money to sit down and reverse engineer the code, and then rerelease it as their own.

    Then again, maybe I'm missing the whole point of this and should RTFA.

  5. Simply Answer by KarmaBitch · · Score: 5, Insightful

    No

    If I spend 400 hours writing code for something I want to sell, I'm not gonna give it away. I'm sorry

    I contribute to open source projects as well but, I have to eat. That's just the facts of life.

    1. Re:Simply Answer by russianspy · · Score: 4, Informative

      You have not read the article. Nobody is asking you to give away the source code for free, but to include it with the binary. If I pay for something you spend 400 hours writing, I want the source to that as well. The source is part of the product.
      The article says nothing about giving it away for free.

    2. Re:Simply Answer by zerocool^ · · Score: 5, Insightful

      If I pay for something you spend 400 hours writing, I want the source to that as well. The source is part of the product.


      This is completely wrong, and I hope everyone realizes this.

      If you pay for a program, you pay for the binary. You now own a program that will perform to the specified dimensions. You do NOT own the source. Presumably, you would want the source to make modifications to it. Well, depending on the licence that the program is released with, too bad. You may not get to tinker with the source. Not everything is GPL'd, and for a good reason, folks.

      Like the other reply to this post, if you want to see the source, come talk to me, we'll sign a non-disclosure agreement, and then we can negotiate a price for a source licence.

      Think security software - say, your intranet system. You don't want your customers to have the source to that, because 1.) they probably wouldn't know what to do with it, 2.) it might fall into the wrong hands, or 3.) if they do manage to muck through it and change things, and somehow make their secure data hackable, there's a liability issue.

      There are only two other reasons you would want the source - to steal the program or to just sit and stare at it.

      With a binary, or a CD, or whatever, you can add copy protection. Source code is just text. Cut, Copy, Paste, Compile. Now your friend has a working copy of a program he didn't pay for.

      No, the grandparent is right. If someone spends months developing an application, they shouldn't have to release their source code. I can't think of a better way to shoot yourself in the foot.

      Think the airplane business. When you buy a 757, you don't get the blueprints for the wing. That's a trade secret.

      Note to new slashdot readers: This is typical thinking on slashdot. I want EVERYTHING for free. If it's not free, it's wrong. I want the source code to everything, because I feel that I could do a better job writing this software by mucking it up. What they mean is that they want to steal it if it isn't free. Don't fall into this trap. Some software should be closed source, and some people have to put food on the table.

      --
      sig?
    3. Re:Simply Answer by Anonymous Coward · · Score: 4, Insightful
      If you pay for a program, you pay for the binary.

      That's exactly the article's point. He's saying that should change.

      When you buy a 757, you don't get the blueprints for the wing.

      An airplane wing isn't copyrighted.

      This is typical thinking on slashdot. I want EVERYTHING for free.

      Who said anything about free? All the original article said is that if you pay $99 for some piece of software, you should get the source with the package. The source would still be protected by copyright just like the binaries, so you could look at it and modify it for your own use, but you couldn't distribute it.

      If anyone is getting something for free here, it's software companies. Copyright is a bargain, not an entitlement, and it should guarantee that the public can create derivative works when the copyright expires. In the case of software, that means the public should have access to the software in a form suitable for modification and study. Now you can argue for practical reasons that the source should be held until the copyright expires, but you can not justify letting it simply fall into oblivion.

  6. Competitive advantage. by IdleTime · · Score: 4, Insightful
    I really see several reasons why source code should NOT be shipped with a commercial product:

    Support of user modified code is impossible

    Competitors may take advantage of reading the source

    It's "my money" that went into developing the source and "I" want to reap the benefits of "my" work

    Bug handling would be a nightmare

    There are several other reasons too. I'm not sure why all source has to be open source. Sometimes I feel that a lot of people just want a system to be Open SOurce just because it is The Right Thing (Tm), not because it would give them anything.

    I have no problem with non-commercial software beeing open-sourced or even to a certain degree commercial software. But is it really necessary that ALL software is open source? I fail to see the need in all cases or the reason for it to be so.

    --
    If you mod me down, I *will* introduce you to my sister!
  7. This is 100% stupid by swissmonkey · · Score: 5, Insightful

    99% of the people absolutely don't care about the sources, why should they have to spend 20 more minutes downloading a bigger package if they absolutely don't care about it ?

    Who do you think you are to require people to open their code ? If you don't like closed source software, don't buy it, it's as simple as that.

    Authors also have a right to freedom, it's not only for the users.

  8. Where's the money? by Flamesplash · · Score: 5, Insightful

    The problem with OSS is that there is no money in it.

    Some have said that the money is in tech support / documentation, but that is just as bad.

    If your product generates enough tech support revenues to support a large project then you simply wrote horrible software, and chances are if you did write horrible software it won't be used. It's a paradox, so it probably won't actually happen. And people aren't that stupid - I hope.

    And if you charge people for documentation, then I simply call that bundling. You are paying for a bunch of documentation that just happens to come with some software.

    The way to make companies produce good software is to stop buying crappy software. It's pretty simple. If people stop paying for expensive tickets to go to professional sports then guess what, they will lower the price. It's simple economics of backlog.

    --
    "Not knowing when the dawn will come, I open every door." - Emily Dickinson
  9. He kind of has a point - but not. by Anonymous Coward · · Score: 5, Insightful

    If we take source to mean the building materials of a program, everything else is open.

    Words of a novel can be yanked off a page. You can order enough parts, individually, to make your own car rather than purchasing it from a dealership.

    You can always order wood and build a desk yourself. Got enough heat? You can make your own wine glasses that are exactly the same as those ones off the shelf. Everything, in reality, is pretty much open.

    There's a difference with code, though. If I write a program, a person with the source can compile it and use it without having any sort of skill. Whereas someone lacking skill can *not* write Lord of the Rings. They can't build a car for themselves that I'd wish to ride in. Their desk would likely fall apart. Their glasses would end with them receiving severe burns.

    If you wish to compare source code to everything else that's open, then, by the Gods, compare it fairly - compare the compilers, the availible libraries, etc.

    The tools and materials are there. The skill? The skill is why source is often closed, and in many cases, should be closed.

  10. Sorry, this is just wrong. by rdmiller3 · · Score: 5, Insightful
    No, bridges are not "open" in the sense that you seem to think they are. Looking at a bridge will give you a similar level of understanding of the engineering behind it as you'd get from a block of object code.

    What kinds of steel were the supports and cables made of? What was the mix of the paving materials and how thick are their layers? Did the contractors skimp on the re-bar? How deep were the foundations sunk?

    Just try to get this information about any big public bridge. They'll say, "We can't tell you for security reasons." ...just like certain software vendors we know.

    -Rick

  11. Re:Honestly, it would never fly. by sconeu · · Score: 4, Informative

    \i{Look at how today's technology compares to NASA. They sit and pore over every detail, examine and re-examine; approve and check. What are they using in the space shuttles? 386's for main computers still?}

    BZZZT! And thank you for playing. They don't use '386s because they spent so long checking the code.... They use 386s Because they've been proven reliable. They spend hours and months poring over the code, providing traceability and working on correctness because if they fuck up, people die.

    You can't compare NASA to today's "Ship it now! If we ship an hour later we'll lose $1M" business world. Totally different set of requirements.

    --
    General Relativity: Space-time tells matter where to go; Matter tells space-time what shape to be.
  12. RTFA by ryants · · Score: 4, Insightful
    You couldn't have read the article.
    Support of user modified code is impossible
    You don't support code, you support the binary you shipped.
    Competitors may take advantage of reading the source
    Only in the same way that Tom Clancey's competitors can take advantage of reading his books. The code is still under the full protection of copyright law, and since competitors would be required to disclose source as well, violations would easily be detected. Just like in the world of books.
    It's "my money" that went into developing the source and "I" want to reap the benefits of "my" work
    This proposal doesn't change that one bit.
    Bug handling would be a nightmare
    Er, wot?
    I'm not sure why all source has to be open source.
    That's not what this author is proposing. He is proposing the source be available for inspection, just like bridge blueprints are available for inspection, but they still can't be copied, because they are still copyrighted. To quote the original article:
    Note that I am not advocating open source licensing for commercial software. This is an important point.

    In short, RTFA.

    --

    Ryan T. Sammartino
    "Ancora imparo"

  13. Re:He's right, in more ways than one by nogoodmonkey · · Score: 5, Insightful

    To put it simply, there is no profit to be had in selling software anymore.

    Please tell me you are joking. Microsoft makes a lot of money off of software. How about Adobe? Macromedia? Real Networks? Symantec? The hundreds of game companies? Should I keep going?

    I believe that source code should be released when the product is out of support (the source for Windows 95 should be release, for example). To release the source for commerical applications with many users (Windows 2000, Windows XP, even antivirus software) would just be insane because of the amount of hacking that would take place.

    I do contribute on a few open source projects, but I do not believe that everything should be opened just because a few of us write code that is opensource. What is the percentage of OSS coders compared to programmers that code closed source applications. Might be a good /. poll.

  14. Judgement of whether source is good? by Shadow+Wrought · · Score: 4, Interesting
    I am not a programmer, and have minimal programming abilities, so this is an honest question out of ignorance.

    What makes code good or bad?

    Is it the resultant way in the program runs? Is it the effeciency of the code?

    Finally, is it possible for two different programmers to look at the same source code and have strongly differing opinions about its quality, or is it a pretty much agreed upon criteria?

    While I honestly do not think that an idea such as this will ever come to fruition, I cannot help but wonder at what the standard of judgement will be should it occur. If code is deemed to be good or bad based solely on subjective criteria, then I think the whole idea is doomed from the get go.

    --
    If brevity is the soul of wit, then how does one explain Twitter?
  15. Unique code by sql*kitten · · Score: 5, Insightful
    In any large software system, the truly unique code probably accounts for about 1% of the source.

    In an academic, Computer Science research sort of way, you're probably right. And there is a lot of common code in many applications, it's true - but that's what vendor-supplied and third party .so and .dll files are for.

    The #1 cost in most software is time - to design, to code, to test and to document. That's what adds value. What you are saying is like saying that "houses should cost no more than the bricks they're made of, or that cars should cost no more than what the iron ore cost to mine. Hell, iron ore should be free, right, it's just sitting there in the ground waiting to be dug up!"

    Here are the facts:
    • Software costs money to write. Even open source software isn't written for free; everyone involved has a day job, and invests the money from that into the product. Even prominent figures such as Linus Torvalds (works for a chip designer) and Richard Stallman (funded by the MacArthur Foundation/MIT) don't pay their bills with open source.
    • Software is a risky business. An organization can invest literally tens of millions of dollars in a software project, only to see it fail. This could be because it doesn't do what it's supposed to, or because too few customers buy it, but either way they don't get back what they invested.
    • There needs to be a mechanism by which people who write software get paid - assuming that you want software to be written at all, of course. Further, there needs to be a means by which this cost can be spread amongst many people, so that commodity software can be written.
    • Therefore, until the cost of food, housing, transport, energy etc tends to zero because these things can be reproduced at near-zero cost (not going to happen anytime soon) software must be a product like any other product.

    People like you will continue to say that software should be free, and you'll keep coming up with ways to justify your belief. That's fine, because you're fighting the laws of economics, and they're just as implacable as the laws of thermodynamics.
  16. Attacking the Problem from the wrong direction... by trims · · Score: 5, Interesting

    The original article (and the subsequent followup) attempt to solve a problem using a desired tool, rather than looking for the right tool for the job. A lot like the old saying "If all you have is a hammer, everything starts to look like a nail."

    The base problem that I think he's trying to solve here is that software quality is abysmal. That is, all commercial (and most free/open) software is riddled with bugs, many of which are well-known at ship time, but haven't been fixed.

    Making source code available (whether as Open Source, Free Software, or a eyes-only copy-restricted) is orthagonal to this problem. yes, maybe, it could help. But that's incidental to the Free/Open software movement. And (as many people have pointed out), there are many problems with providing source with all programs, most of which are massive barriers to any help with quality of the software.

    The fundamental flaw here is that commercial software's quality is the producer's responsibility, not the target audience's. In Free/Open software, the developers and audience have significant overlap, so it can be truly said that the audience can help quality. This is patently untrue for closed-source programs: the development community is very tightly controlled, and the user community has no real method of influencing quality (other than by not buying the product), even if provided with the source code.

    So, this leaves us with the case of how to make the developer's produce better quality software. Fundamentally, we do this the EXACT SAME WAY all other industries insure minimal quality control: LEGISLATE IT. There are oft-quoted sayings about "if the car companies built cars like software companies build software..." and others to that effect. They all point a massive discrepency in the legal status of software: it doesn't play by any of the traditional product-liability and quality-control laws that every other product industry abides by. Yes, that will change the nature of the software industry: that's the point. And NO, it will not harm Free/Open software (as gifts - i.e. giving away something - are not coverd bty under the various product-liability laws)

    You really want to fix the software quality problem? Require that software companies have a warranty of fitness. Require them to refund money for defective products (opened or not). Make them liable for damage caused by known defects. In short, treat them like anybody else. Software isn't special. It's time the software industry grew up.

    See my previous post on why the software industry should quite being treated like a spoiled teenager.

    The problem is real. The solution provided by the article is wrong. I'm right.

    :-)

    -Erik

    --
    There are always four sides to every story: your side, their side, the truth, and what really happened.
  17. It used to be that way... by m11533 · · Score: 4, Insightful

    Long ago in a galaxy far far away... ... it used to be that ALL software was distributed in source code form, and then built by the customer prior to installing and putting it into production. The industry would have left things that way were it not for the fact that we were increasingly running into a number of big problems not solvable in that model:

    - Customers didn't follow directions, so they always were screwing up the build and/or install. These were very simple tasks back then, much simpler than they are today. And in theory customers were far more educated since they were the very few who could afford those multi-million dollar machines and the huge costs of the rooms and facilities they required. Somehow, though, they still were able to find ways to screw things up, and support organizations spent much of their time walking
    customers through these processes.

    This would be worse today given many software users have no clue how to program.

    - Support was a total nightmare as you never knew what source code customers were using.This was because customers would choose which patches to apply, and would add their own, leaving each customer with a totally unique piece of software. When something went wrong in it, it was impossible to know what the code was supposed to be doing, and what it was doing wrong.

    While this might not be quite as bad today, since we no longer must rely on "core dumps" to diagnose bugs, there still is the basic problem of being asked to diagnose problems when you really don't know WHAT source code that customer might be using.

    - the intellectual property problem... there were plenty of lawyers back then, but there really is a big problem with investing lots of money to build something, a unique set of code, and then making it easy for people to lift it. A variety of methods to secure it while still distributing it to all customers were attempted as there was tremendous cost associated with changing from a source distribution technique to a binary distribution technique, but none ever worked. If anything, today there is far more sophistication on the cracking side, so it seems even more doubtful that it is possible to secure code from mis-use when its considered IP. And there ARE valid arguments against giving away all code.

    SO...

    There were good reasons the computer industry turned away from distributing their software in the form of source code. I don't think they have been addressed, and thus I am unconvinced the equation has changed.

  18. Why not? by russianspy · · Score: 4, Insightful

    I do not see why source cannot be an integral part of the product. Yes, I am a developer. Yes I do want to be paid.
    Let's look at the problems described in the article:

    1. Piracy.
    How is having the source making it easier to pirate things? People have been swapping microsoft binaries for ages. It is actually easier to just copy the installation disk (whether floppy or cd) than to recompile the program from sources.

    2.Copyright laws.
    Wouldn't it make it actually easier to check if people conform to copyright laws? If I release all of my source code and you are required (by the marketplace perhaps, not as a law) to do the same than it is quite easy to see if you copied some stuff of of me. How many people have wandered whether Microsoft has copied some code from GPL licensed programs (I doubt it personally). How many have the opportunity to CHECK if they have?

    3. National Security.
    I do not have a lot of confidence in a nation that bases its security on the ability to sweep them under the rug. The idea is to avoid having those problems in the first place! Maybe if this practice became accepted we would not have destroyers being run on windows.

    4. Safety-critical applications.
    Even if there is little to gain from having this code available to the users - not having it is worse. What are you trying to hide? If this is a safety-critical application then the answer should be "nothing, have a look".

    Nobody is asking to release the source code without compensation. It's just that the source becomes part of the application. IF most people will not use it - then fine. What are you worried about? Is your code really that bad that you could not write good code if forced to?