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."
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.
Reading this and at the same time see ad for Microsoft .Net Enterprise at slashdot.
Ciryon
When you drive across a bridge, its design is open for inspection. You can see the overall structure, the method used to anchor the cables, the thickness of the roadbed, and so forth. If you want a closer look, you can walk the bridge and see more detail.
Isn't it usually illegal to walk or ride a bike across most big bridges?
And once they do, what do they do with it?
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
For "things that will never ever happen in reality" type articles.
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.
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.
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!
int main()
{
printf("Hello World\n");
return 0;
}
OK... there, are you happy now!
come on fhqwhgads
There'd be a HOWTO that told you how to do everything... but they'd assume you've already read all the other HOWTOs and were already an expert car mechanic or Automotive Engineer.
However, right is a word that, in the English language, has several meanings. In this case, he is also right in a moral sense. Software authors are morally obligated to make their software and source code available to their users Free of charge. Any other action indicates that they wish to take away the rights of their users and forever enslave them under the tyranny of EULAs and closed-source software. They owe it to us, the buyers who have supported them for all these years, to let us see their source code.
I know that this view may generate a lot of controversy among those with a vested interest in seeing the rights of software users taken away, but I feel I must get this view out in the open and let my fellow open source coders know that they are not toiling away in a vacuum, that people out there do appreciate them. Thank you.
Software piracy is victimless theft.
Now imagine every script kiddie having the full source to W2K or XP, or heck even Office. Lets say, following the rules of the article, MS removes the 1% of intellectual property and replacing them with stub routine. There is still enough there to determine the weaknesses, and maybe even enough to create a new trusted OS that really isn't trusted?
I understand the benifit is to be able to determine the weaknesses and report them back, but as fast a MS is at getting patches out, this would become insane really quick.
If this was an industry requirement, you wouldn't have developers shipping tight, well-planned code.
You would have no developers and no applications. Technological progress has always centered on riding the bleeding edge, where the programmers themselves barely have a clue what the heck they're doing. If people knew how much of the stuff they use was designed under impossible time requirements by bleary-eyed schizophrenics, we'd still be riding in horse carriages.
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?
Requiring open code would put many companies out of business. A lot of customers have their own businesses depending on applications, and they don't care if the code is nice; they just want something that works most of the time and keeps their business running. That and a support contract keeps them happy, and the developers can gradually issue fixes to reduce the twinges of sloppy-code guilt.
...
I'm not sure what kind of dream-world this guy is living in. He's got a lot of good points but he can't possibly back them up against all the criticisms. There's too many reasons for people to keep their source closed and only a few are in that article and he didn't even defend those to my liking.
I have often regretted my speech, never my silence.
-Xenocrates
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.
how many people really would look at the code anyway? Most people don't understand coding enough to make it worthwhile. The people that need to look at the coding probably already have access to it through their software contracts. It sounds like a good idea, but not many people really care to look at the source of their programs in real life (other than the slashdot crowd)
While I think the _quality_ of the code, when released as open source will certainly improve; a corporation would not want the image of having sloppy code, I think this could be a bad idea in certain areas, particularly for propriatary military and defense department systems.
On the other hand, it could be a very Good Thing (tm) for those same systems because the Many Eyes concept would certainly "harden" the code. In the meantime however, more exploits and bugs would certainly be found, and DoD is not the type of establishment that wants to have known visible security flaws.
I'd rather be a conservative nutjob than a liberal with no nuts and no job.
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
. . . And they would build the car in your driveway from parts they scavenged from other projects or got by mailorder.
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.
http://saveie6.com/
Maybe:
1. We should tell the whole world how to make a nuclear bomb
2. Coke and Pepsi should release their recipes to the whole world
3. Electronics manufacturers should release specifications and parts lists
4. Everything should be free
Dear cconnell, What color is the sky in your world? Sincerely, Reality
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
...and the closed source version of a car wouldn't work, but you can pay for support to give you the run around and try to convince you that YOU must be doing something wrong.
come on fhqwhgads
Is it possible to have good products without "good code?" Depending on the product, I think yes. Do great videogames necessarily have "good code" or whatever the author decides is good code? Maybe, maybe not. For games, the distinguishing factor is not as much the coding (ie fulfilling the designer's vision) as it is establishing a good vision.
YES, maybe it makes sense for security related products, but don't get greedy and claim that EVERY product needs to release its code.
is that you are a fucking FAGGOT in more ways than one.
Let me count the ways:
1. You're a FAGgot
2. You ARE a FAGGOT
3. You're a FAGGOOOOOOT!!!
If you need more help, please feel free to lube up and visit your local pool hall, where some old fat nigger will be glad to shove a stick up your ass.
belong in National Enquirer, along with pictures of two headed babies and Michael Jackson.
The article itself is just blatant flamebaited advertising. I fail to see how he addressed any of the points in his previous article (which I also thought was codswallop).
Did anyone ever see films of the Verrazano Narrows bridge collapse? There's an example of a bridge that looks fine on external viewing, (even by TRAINED experts), but doesn't work for real. Joe Average knows squat about bridges, and won't recognize a faulty design unless he's falling into the river with it.
As for the 1% of "real" code in a product - what a load! If your key code is buried deep in some subroutine, then how can you "remove" it from your product and still make it functional?
Feh!
If we could give access to the programmer's lives to the Open Source developer community we could get many large infrastructure projects completed quickly. The vast experience and brilliant guidance offered by the Open Source developer comminity would be a shining beacon in this chaotic environment.
Only when we unleash the full potential of the programmers involved in the Open Source developer community can we design a truly magnificent office suite of applications.
Wearing pants should always be optional.
To beat a dead horse - If we built houses like we build software, .....
When you buy a house, it is either pre-existing or soon-to-be-existing. In the case of the former, you can only know as much as the owner tells you, and the builder's reputation and the packaging. In the case of the latter, you can visit the site as often as you want (just don't be shocked if you see some beer cans sitting around).
I agree that most software sucks, but to say that you need to take the walls down to inspect the plumbing both trivializes a nontrivial problem, and tells one no-more-than 'next house on the list' inasmuch as they know what they are looking at.
You go to MacDonalds, you don't wanna see how they make the hamburger, you just wanna enjoy it. Hell, if you knew what was in it you'd probably be repulsed.
I have often regretted my speech, never my silence.
-Xenocrates
For mass-market products like Windows, Office, etc, (ie, those where the users themselves are not computer science people), I'm sure 99% or so are absolutely unqualified to look at the source code and make informed decisions about code quality, so they'd have to trust some third party. And even if there is some software "Ralph Nader", how much influence it would have over those users who haven't got any idea of the importance of "good" code is doubtful.
Incidentally, the mass market products are those most likely to cause a security risk like worms or viruses, because of the very fact they are used so much by clueless folks.
I'm not saying it won't work, but it may not be as effective as it seems.
There's 10 types of people in this world, those who understand binary and those who don't.
I mean seriously man, you're right. Just trying to back you up there. I can always get behind a good man.
Packing the source code along with commercial distributions of software is an excellent idea, and it's really a shame that it doesn't happen. It looks to me like the company would benefit the most from such a solution - for one thing, they could leave patch-making to the community and needs for support would possibly decrease.
GPL and things alike aren't the whole truth, either. If the source code is licenced such that it may only be modified in private and not get distributed, this will of course not promote OS, but it will be a great thing for the users, as they can fix bugs and add features for their needs.
As a fine example of OS commercial software, look at the editing communities for id Software's games. Granted, Doom, Quake and Quake II don't really have any great commercial value any more. Case is, though, that the release of these games' source codes have sported heaps of enhancements to the game engines and helped preserved the communities, resulting in a fantastic respect for John Carmack and id Software.
Next he will be telling us that a black man isn't 3/5th of a white man.
If a company or customer has the resources to fully and properly analyze your code then why wouldn't they just use those resources to write their own software; fully customized and programmed for their needs?
The biggest benefit I see to having it be open is history. We should establish an organization where people "check-in" the source of their commercially realesed product. That way, 20 years from now, when we desperately want to get at a document from said product, we might actually have a chance.
then again, by that point copyright will probably prevent us from looking at anything interesting...
-kscd
The lack of MS source has not in any way slowed the discovery/exploitation of Windows flaws. But because the only peoples looking that intently at the poor design of MS products are a) the people who poorly designed them and b) the exploiters and the kiddies who use their tools, the vicious cycle continues. Opening the source code could allow others with a more positive inclination in to help fix the problems and point out the potential future points of trouble.
The result would be a Trabant look & workalike whose parts are from the JC Whitney catalog!
As interesting as it would be to be able to see the source code behind such programs as Windows or Office or even ICQ, is it even that important?
.doc handling program that's free, for example. But even that can be effectively remedied without complete open source. Even a behemoth like Microsoft could be made much friendlier through some well placed stubs, open protocols, etc.
Windows runs like ass, and therefore it's a pretty safe bet it wasn't coded very well. I don't need to see the source code to figure that one out. And quite frankly, even if it was coded badly, as long as it were to run well, I don't think most people would care anyway. Hell, it DOESN'T run all that well and a lot of people still don't care anyway.
The only nice thing would be maybe if the source were available a few people would be nice enough to fix it up or something. Other than that, it's not too important, except for anti-trust reasons, so we can get a decent
As for everything else, source code just isn't always the best idea, or even very necessary. The government or other high security needing people should have source code, and experienced hackers to audit it. That makes sense. But other than that, to have everything done ONE WAY is usually not the best idea. That's the beauty of being able to choose a license or just make your own up-- you can choose the best tool for the job.
When you drive across a bridge, its design is open for inspection. You can see the overall structure, the method used to anchor the cables, the thickness of the roadbed, and so forth. If you want a closer look, you can walk the bridge and see more detail.
Then you can use your x-ray vision to examine the reinforcement in the concrete, as well as the other internal structures. You can look deep into the ground and see how the bridge itself was anchored. After that, you can disassemble the bride to see how the different pieces went together, and then rebuild it someplace else.
Strong Bad rocks, but you really should have a link there in your sig.
I am sick of people submitting stories about their own work on slashdot! Next time I make a journal entry, I will be sure and send Taco a link to boost my ego. Here is a hint: if your article is so interesting, some other geek will submit it without fail.
In Soviet Trolltopia, all trolls have opened their source
Yes, it's possible to get certain specific bits of the code after signing Non-Disclosure Agreements and/or handing over large amounts of money. Get the whole of Windows source? Nope. Understand it all in any reasonable amount or time? Nope. Get busted by Microsoft for using part of their code in an OSS project? Almost certainly, and if in the process of trying to prove you didn't, you have to show Microsoft your code, expect to see a competing product soon after.
It keeps coming to the forefront of my thoughts. As all the antitrust suits, patent battles, and digital rights management debates escalate; one idea continues to permeate my understanding. It seems simple enough. The difference between the protections required in the physical versus the virtual (or information) world is that in one you can inspect an object, hold it in your hand, and run an infinite number of tests on it; but in the other, the finished product can be like a black box, having only the properties that the creator desires. This is not profound, of course, and many people would debate the statement entirely. But the essence is true, at least if you were to follow the letter of the law. Closed source software puts limitations on what people can legally learn about it.
Given the example of an auto versus a software product, why should these two creations be treated differently? Here is a scenario that could apply to both the products. Imagine an inventor who comes up with an idea for a new product or type of product. This person spends years designing and developing their new product. Finally, they complete it and release it to the market. Now imagine another inventor who, through industry research, finds the work of the first inventor and comes up with a great complimentary product idea. Because of the second inventor's dependency on the first inventor's product, they require details of how their product can be added on or interact with the first. Here is where the paths of the physical versus virtual worlds diverge.
Let's examine the auto industry first and assume the complimentary product is a cup holder. The design of the cup holder is dependent on the design of the car. In order for the second inventor to design their product, they could use a variety of devices and methods to inspect the car (or cars) to determine the best way to make their product compatible with the car.
Now, let's assume the complimentary software product is a browser and the original invention is an operating system. What methods can the inventor of the browser use to determine the best way to make their product compatible with the operating system? For a closed source product in the current legal system, the inventor would not be allowed to inspect the code to see how their browser should interact with the operating system. They would have no knowledge of any benefits or drawbacks to a particular approach. The only remedy for the developer would be to request details from the inventor of the operating system about how they should interact with it. Furthermore, they must trust that this is the best method of interaction without being presented proof. In many cases, the inventor of the browser may be required to pay to even get that basically blind and minimal information.
Why the distinction between the two scenarios? When advocates of this system are questioned about this discrimination, they usually cite one or more of the following reasons:
Protection of intellectual property and proprietary processes against theft or duplication
Encouragement of innovation
Security against attackers
The first reason has many different variations and aspects that people endorse. Who would want to be on the supporting end of theft and piracy? But this argument is empty. Individuals or organizations that want to steal or copy an inventor's creation can always find illegal means to accomplish their objectives; therefore, the only people it prevents from gathering information about the product are law abiding citizens. To clarify using our example, pirates and copiers of the operating system are not inhibited by the fact that it is closed source. The only person harmed is the inventor of the browser who is attempting to create a valuable addition to the operating system.
All three of these lines of reasoning offered by supporters of the existing system overlap in some way, which adds to their circular reinforcement of each other. The second argument is the most general and also the one that is the most incorrect. Patents and licensing have been created to encourage inventors to take the risk and time to create something valuable for the market. Somehow, supporters of closed source see their actions as an extension of this system. But as you might have guessed by now this belief solely rests on the first argument being true. People will always be willing to innovate as long as they believe they will be rewarded and that the distinctiveness of their product shall be protected. This means that they will be able to sell or license their product and that if someone should copy their product in part or whole that their rights will be upheld in court. In the software world, patent and licensing laws obviously provide the rewards for the inventor. But what is not always clear is that they also provide protection, especially when the source code is open. It is relatively easy for someone to examine two sets of code to determine if it had been copied. These facts are the reason that innovation will always thrive in an open source market. One need only look at the current open source initiatives to see some of the most innovative technologies.
But how does closed source systems influence innovation? Under the example I described with the operating system, there is only a detrimental effect on innovation. The operating system creator will be the only entity with the proper knowledge to create truly compatible products. All others will have to depend on that entity for information on how to create products that interact in an efficient manner. That dependency creates a barrier to entry that is quite formidable. If the inventor of the operating system also creates a browser product, the situation is even more discouraging for potential inventors. While the inventor of only the browser has to blindly trust the operating system creator about how they should interact with it, the inventor of the operating system can create a browser product with full knowledge and access to the source code of the operating system. This does not seem like a situation that promotes innovation.
The last reason cited to uphold the right to keep source closed is based on the fact that it already is. The argument contends that if potential attackers had access to the source code of a product, they would be able to find possible security flaws and exploit them. Empirically, this logic does not hold up to scrutiny. Closed source software has been found to have the most and worst security flaws simply because the number of eyes that get to inspect the code. Numerous entities typically inspect open source code whereas closed source code only one gets to inspect it. This leads to less overall flaws when the software is released and also the discovery and remedy of flaws at a much greater rate after the software is in general use. When presented with this evidence, supporters of closed source do not challenge it. They only contend that since there are already people using this less secure software, the source must stay closed to protect the existing user base. Again, this logic is flawed and contradicted by empirical evidence. New security holes are found and will continue to be found in closed source software. Making the source code open only speeds the location and correction of these security issues. Is it better to know you have issues and fix them or to know that there may be many holes lingering that you will never find?
Someone once said, buying closed source software is like buying a car with its hood welded shut. People sometimes dismiss this statement by saying they do not want to worry about what is "under the hood." I can understand this desire but the customer is not the only one whose desires matter. Closed source code provides no protection against piracy, theft or security breaches. More importantly, closed products of any industry stifle the spread of knowledge and therefore innovation. There should be a measurable economic and sociological impact that can be identified and analyzed. Many laws are brought into being when the rights of the many need to be enforced over the rights of a single individual (or entity). This inequity (between physical and information industries) is one such case where entrepreneurs and inventors need to be protected from entities seeking to stifle innovation, and therefore, economic growth.
This article is pretty confusing, actually. Chris Connell claims that vendors should "Open Source" for transparancy, but then obfucascate the code by adding or subtracting code to keep it from being truly functional. Well, there goes the end user's ability to compile and test the code, to debug the code, and to really be certain that what you've got in the binary version is the same as what was shipped via source distribution.
He goes on to suggest that vendors withhold crucial functions or methods, and 'stub' them out in the source code. Well, those are easily enough to reverse engineer from the binaries and the debugger, so that's no real solution from the vendor trying to protect IP. And it doesn't help the 'customer' at all, because your still stuck with not having the full tranparency that Open Source is supposed to provide.
I'm actually not pro- or anti- open source. I kinda sit on the fence on this issue (Though I do like the BSD style license). However, I think that Mr Connell is trying to stand on both sides of the fence at the same time. It doesn't really work.
-jerdenn
In short, RTFA.
Ryan T. Sammartino
"Ancora imparo"
Open up all software? I am sorry... why the hell should they? You need business and you need to protect your assets and your properties.
I guess this is all you Slashdot readers know! Every god damn thing should be open source so you can tinker with it in your parents basement.
Word of advice... real programmers get real jobs making commercial products not reading Slashdot daily, bickering about Microsoft and tinkering with a substandard OS (Linux)!
1) When a company pays programmers to write code for commercial apps, they are NOT going to make the code available (afterall, they paid good money for the programmer's time). It just ain't gonna happen.
2) This guy has probably never been involved in a honest-to-god commercial application development environment. Otherwise, he would know from the start that good design often crumbles under the weight of feature creep induced by clueless management and sales staff.
3) The government already owns the source code to many of the programs commissioned in the name of "national security". However, they have neither the time nor the inclination to perform code reviews, especially if the programs "just work".
4) Companies are not interested in "asking for improvements" where source code is concerned. They're only concerned with how much money they'll make off people that need/use their apps. Afterall, they pay programmers to suggest/implement improvements, not clueless end-users.
5) Programs are bloated and puss-filled because users continue to demand extra features, demand the new versions NOW, and then bitch and moan when something breaks, or when an old feature is omitted in favor of the new paradigms. Users are, for the most part, complete over-demanding idiots who think that all software should be free, not due to ethical reasons but because they're too freakin cheap to pay for it, no matter how well it performs or fits the task at hand.
6) Programmers are paid WAY too much (I know - I am one). If they weren't paid so much, the software wouldn't cost so much.
1. How many people would understand/follow the code? How many people would even be able to find anything of interest?
2. If it is really of life/public safety/importance, then the big bucks would have paid for the code/testing/standards already.
3. Seeing code != perfect end product
The surprise isn't how often we make bad choices; the surprise is how seldom they defeat us.
is a dangerous place to not be pro-open source. But I simply do not think that open sourcing of software is reasonable.
Yes, it allows people to make 3rd party improvements or alterations to your software more easily. But it also allows people to exploit the software for their own uses.
Intellectual Property is something worth protecting.
2) the resulting executable would not operate in a meaningful way without the key routines. Why bother? How would the customer test or debug it, or suggest extensions?
3) Shame on the designers; their indiscretion should be on display for all to see If you have the rare privilege of working in an organization that doesn't need it yesterday, is understaffed, and has to scale up very quickly, then I can see your point. The rest of us have to deal with a competitive marketplace.
I agree that open source has an important role to play in many types of commercial software, but this article is a trivial discussion of the problems involved.
I don't expect to be able to walk into a restaurant and see recipes listed alongside the menu items. Nor would I expect the restaurants to disclose that recipe if I really liked it because I could go home and make it myself instead of paying for it. That doesn't make very good business sense. The only real arguments for going open source across the board is to avoid annoyance on the part of the consumers and developers. Hard-core open-source proponents tend to err on the utopian side and conveniently overlook practicality and the very thing that generates their paychecks: business.
Everybody has the freedom to close his sourcecode. Everybody has the freedom to "not buy" this closed software.
the issue here is not free (as in beer) vs. fee, or even open vs. closed source. No, the only relevant issue here that should be discussed before anything... ANYTHING else is forcing software to be open. Just as it would be illogical, much less unconstitutional in the US to somehow restrict any software from being open (as if that could realistically be policed) this issue is about control over others and their choices. We can all sit around a campfire and tell ghost stories supporting this or that and then all roast metaphorical smores as we candy coat the issue with rhetoric and buzz. In the end nothing changes and that fact is what separates the foolish from the wise, not any degrees, computational ability or word wizardry.
once you have established the relevant standings of that issue and how it is to manifest then by all means, please open up the intelligent debate on open source vs. closed source and the various sub-catagories of software and services that are seen to benefit from either.
This issue seems to be like opening up a fresh pile of banannas or female-in-heat scent in which the monkeys go crazy. Don't be talking monkeys or parrots and try using critical thought... it is a refreshing change that you might find does yourself and your cause loads of good.
As much as I like the idea of being able to see the code in software programs, I don't believe this is going to work for two reasons...
*First of all, the author's analogy about the construction of bridges is flawed. While Joe Blow could look at a bridge and see how it's designed... being able to reconstruct it would require him to be able to manufacture the parts, have skilled construction subcontractors, etc... *Software code on the other hand, is easy to copy... all Joe has to do is cut and paste. No manufacturing infrastructure whatsoever.. just a compiler.
*Secondly, even if code was open, doesn't mean the scrutiny is going to live up. How often have you seen a well-documented peice of code wiht all the variables labeled, etc..?? exactly. Not to mention that a company could just write an obfusticator to make the code completely unreadable. that's my 2 cents..
Romeo & Juliet for 1337 hax0rz! http://www.redcoat.net/pics/romjul.swf
why should the software industry?
I understand the author's point in that "transparency == quality", but COMPLETE transparency will probably have couter-productive effects in the capitalist, real world.
OSS are developed by people who care about sharing and improving and other ideologies. This is great, but what's the percentage of idealists in all human beings? 10%? 20%? Most people just try to get ahead/by. I'd go so far to say that most companies just try to get ahead/by. And that means building competitive advantages and making money.
If tomorrow the government make it a law for all software to go open source, I'll bet that 80% of the companies will figure that they'll make more money selling groceries than writing software.
How's that progress? Like it or not, proprietary code drives competition, just like greed drives civilizations. Necessary evil if you will.
Don't you do all development in machine code?
I'm the CTO of a software development company called Intellinger.
We're young, new on the block, and competing against some big fish in the performance monitoring space.
One of the biggest issues we have is trying to placate potential customers that are worried about us going out of business and leaving them with un-supported code.
To get around this, we've put copies of source code, with docs, build environments/scripts, etc., in escrow. This way, if we DO go down in flames, all registered license holders of our software are entitled to complete access to EVERYTHING required to support the software themselves.
This keeps our investors happy, our customers happy, and us, the developers, happy. There's NO WAY IN HELL that our investors, or me, for that matter, would condone or support making our entire product OS. We've spent a couple of years working on this thing, and we'd like to get some benefit out of it.
There is an infrastructure (that we call Brazil) that will probably be put into open source in about 6 months, but the customized/specialized modules that plug into it that we've developed will NOT be made OS.
Obviously, our position could change in the future, but for now, it's not an all or nothing proposition.
$0.02 (CDN)
Apart from word processors, spread-sheets and other "untrusted" apps, banks and anybody else who spends upwards of six mil a year for development and maintenance, will damn well make sure that they get the code.
For some of their stuff on mainframes and PCs they HAVE to to comply with banking commission and/or SEC and/or government regulations. Its more than just a good idea, its the law.
They have to be able to TOTALLY reassure the auditors and inspectors that NOBODY is 'skimming' pennies from each transaction. When you're talking a trillion transactions a day, week, month or year, it adds up to big time fraud damn quickly.
You CAN'T do that with a "pig in a poke." They get the source code to keep the baddies who can shut 'em down from shutting 'em down.
MSBPodcast.com The opinions expressed here are my own. If you don't like 'em... Think up your own stuff.
However, for things that have other forms of protection, such as encrypted DVDs or executable source, there should be no copyrights, because, for such works, there's no guarantee at all that they will be available to the public when the copyright period expires.
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?
When you drive across a bridge, its design is open for inspection. You can see the overall structure, the method used to anchor the cables, the thickness of the roadbed, and so forth. If you want a closer look, you can walk the bridge and see more detail."
"Unique code accounts for 1% of all new code..."
Points on this...
Time = money. Why the hell should I let some shmuk take my code and use it for an app that I may or may not want him to create? If I make the code, I should decide how it is used. Espcially with applications.
The point about a bridge...when was the last time you looked at a bridge and saw all of the elements that went into designing it? X-Ray vision is not an option unless you are hyped out and just got done withyou lasted viewing of Superman 4. A better analogy is a sandwhich shop. You want to know how to make this sandwich, well here you are!
The argument that all code should be availble to all is flawed from the start, and if you are goign to make, do some research, check your facts, and come up with a better analogy.
WAR TUX!
In many cases, you can look at a product and say 'I could do a better job of that', which is probably true. In these cases the code should be open source, because the vendor is not doing anything novel or overly complex. They are just doing the work of implementing the product. As said, anyone could do that, but I am willing to pay so I don't have to. But, since I am paying for the effort, and I acknowledge that this is the only thing I am paying for, I feel the code should be open.
In the case of products that really do something amazing (I would class 3DS Max, Maya, Massive, Mathematica, AutoCAD, other high end specialty systems), I am fine with the authors maintaining their intellectual property rights by not disclosing the code base.
Whether this is right or wrong is not about whether all things should be open source, but about whether or not something deserves to be protected by IP rights. In general, patents are broad, overly powerful, and vague. In fact, patent filers make it as vague as possible on purpose, in an attempt to broaden their protection from competitors.
So, I think this can be reduced to some basic underlying problems we have with out current intellectual property rights system, including the patent office.
If you pay for a tailored product , then you should get the source code. Point.
Now if this is a comercial distributed product , this is another kind of problem and what you said above apply.
C. Sagan : A demon haunted world:
http://www.amazon.com/gp/product/0345409469/
visit randi.org
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
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:
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.
your verbal support of the open-source movement is commendable. on a different subject, calling you an idiot would be insulting to the mentally-challenged world-wide.
They spend hours and months poring over the code, providing traceability and working on correctness because if they fuck up, people die.
I wonder if people expend the same effort on the embedded software that controls traffic lights. Seems to me that borking traffic lights are a lot more likely to kill large numbers of people.
"I have opinions of my own, strong opinions, but I don't always agree with them." -- George H. W. Bush
Does nobody in this place understand the concept of capitalism? If you give everything away, nobody makes money. God damn it. I'm tired of logging into /. every day and seeing a ton of idiotic communist-slanting posts about how everything should be free and the world should be made of cotton candy and candy canes. Get a job, hippie!
People like the author of this article are
so called "Source Code Communists".
--- Eat my sig.
Wouldn't software companies engage in widespread theft of each other's hard work? No, they wouldn't, because this is already covered by copyright law.
Compare this to the end of the movie Reservoir Dogs to discover why this would never work. Who's going to drop their gun first? Let's say Microsoft decides to be the frontrunner for this idea and opens up Windows source code. Lots of companies would then steal whatever code they needed and NOT open up their source. In America, laws often don't matter when you can get away with ignoring them, AND make money off it.If 1% of the source were to have the magic, then if that part is hidden, basically all you have left is gui and i/o. So What's the Point of releasing it?
Furthermore, this guy somehow thinks that removing the #define is an effective barrier to piracy? I think I heard of something called a symbol table at some point.... maybe that would help black-beard?
This guy is just trying to stir up shit so that he can make a mark. The only customers that would be dumb enough to hire him, are the same ones that would believe his inane ramblings.
Good luck Mr. Connell, if you ever have a good idea, feel free to share it.
The entire point of his article is flawed. It seems he wants to open source just so that people can point out the 'bad design' or 'coding gaffes'. Now, I write a lot of code in a day, some good, some bad, and probably even a bit brilliant, but if it gets the job done properly and well, nitpicking over 'bad design' is just that.
I'd imagine a lot of really great code is fugly as hell, and just because code is design well doesn't mean it will do its job well. The two are relatively independant, unless you like to take a holier than thou stance, which it appears this article is doing.
In Other news today Molson and Labbat both changed long standing policies and decided to give away their recipes in every two-fer purchased
Canadian Geeks everywhere cheered Free.. as in Beer
The More Knowledge you have the Luckier you Get- J.R. Ewing
The benefits of Open Source or Free software to its users are undeniable. If the software has a bug, or the software does not do something you want it to do, you can change it. There are many advantages, and they have been explained at length by various people. If you are going to be using software, you are definitely better off if you have access to the source code.
Trust
The fundamental difference between open source software and closed source software is the level of trust required. For a business to use closed source software, the level of trust required is enormous. It is not simply a question of whether the money spent purchasing the software is a good investment. The time invested using the software is far more significant. Almost inevitably your own business information becomes tied up in a format that is specific to the software you are using. In order to buy software from a closed source company, you have to take the following on trust:
- They have not left gaping security holes in the code.
- They will fix bugs in a timely manner.
- They will eventually add the features you want.
- They are not using your computing resources to do things which are
not in your interest.
- They will not increase the price unreasonably once you depend on them.
- They will not go bust.
In fact, when you consider all the things that people are expected to take on trust when they purchase closed source software, it is amazing that anybody ever does so. The truth of the matter is that very few organisations properly considered these factors before they bought the software. They bought the software because they needed it and although there are terrible dangers involved in relying on closed source software, there is often no alternative. Companies and other organisations are only just starting to wake up to the dangers of closed source software.Business Models Having access to the source code makes good sense to the users. However the business case for the software vendor is far less convincing. In fact, the dangers of closed source from the user's perspective can be considered opportunities from the vendor's perspective.
The open source foundation proposes "4 ways to win" which is reproduced here: Four Ways To Win
Now for a higher-level, investor's point of view. There are at least four known business models for making money with open source:
In fact, the number of companies that have had success with any of these models is miniscule. This is hardly surprising, they are simply not very good business models for software companies.
Taking each in turn... Selling Support The better documented and more reliable the product is, the less support it needs. A business model where the more perfect your product, the less money you can make has got something fundamentally wrong with it. Loss Leader The very fact that this can be advanced as a viable business model for OpenSource shows desperation. What it comes down to is an admission that the best way to make money from software is by selling it. Widget Frosting This makes perfect sense if you are a hardware company, or when the software is a side issue. However, its no use at all for a business whose main product is software. Accessorizing Selling accessories is fine, but there is no pressing need to actually develop the software when one is in the accessories business.
There are of course other business models for Open Source. For instance, the one adopted by the Perl foundation and several others is begging. This is not a business model that many companies would find appealing though.
The basic problem is that for a business whose primary function is to make software, then the primary reward has to come from selling the software. We need a business model that actually works and we have one, it's called capitalism. It works like this: make something that people want and sell it to them. This model works for software too, and there is no reason why this model cannot work even when source code is available. Closed source vendors are relying on something a little closer to the business model of a heroin pusher. It starts off like capitalism, but there is the added feature that the user gets addicted and has to carry on buying the same thing even if he does not really want to. The more he uses the same vendor, the more reliant he is upon it.
The Solution Community software is software where the vendor can be paid a fair price for the software he creates, but where the buyer does not end up in a similar position to a junkie.
Community Source is software that guarantees the following:
- The right to see what the software is doing, ie access to unobfuscated source code.
- The right to add enhancements.
- The right to fix bugs.
- The right to sell his enhancements to other companies. This does not mean the right to the sell
software without the original vendor receiving any money. The buyer still needs a license from the original vendor, but he does not have to rely on a single vendor for upgrades and enhancements.
- The right to buy enhanced versions from 3rd parties.
Together these provide a guarantee that the buyers investment in the software is protected. The benefit to the software vendor is that he can sell to larger companies without them being scared of buying from an outfit which might go bust or be unable to properly support them. It is better for the client than software escrow since the client knows that if the original vendor does not maintain the software well, then someone else can do so.http://rareformnewmedia.com/
The fear that code could be copied and used by a competitor should not be a problem if their source was open to inspection.
The time it would take to discover business rules, design and construct is a barrier to entry into a niche market.
Why give competitors an opportunity to catch up with you by reviewing your code?
Why give potential new market entrants a free lesson in the business rules associated with an industry?
Software is not written to benefit users, it is written to benefit it's author! $$$
In any large software system, the truly unique code probably accounts for about 1% of the source"
Can you back that up with any kind of evidence? Even anecdotal?
Most large systems I can think of gain their uniqueness by the fact that they comprise a huge amount of code that works well together, rather than having any magic tricks in a tiny amount of the code.
In the C programming language, this means excluding the #define statements
You're talking about obfuscation, which immediately renders the "extra eyeballs" on the source code useless.
(Incidentally, thinking that static configuration data is limited to #define statements indicates significant naivete about how real software is built, so I'm not sure how seriously we should take this article.)
quality-control group that is part of the same development organization as the programming team cannot make an objective assessment of software quality
Of course they can, if their processes are properly defined. There are formal methodologies for proving code, and hence it doesn't matter who's doing it.
The assertion is that peer pressure will create better code. That indeed may cause some corners to get smoothed out, and some blatantly bad coding practices to get exposed. But fundamentally, it's not going to give the devlopers an extra three months, etc. to make it better! If a company has X dollars to put out a product, then you get whatever it is that X dollars will get you. Showing the code post-delivery will not have changed what you got in the first place. But back to the bridge: if there's only one bridge to cross, you're taking it, even if it's poorly built! But, if there is a choice of bridge to take, then the result is obvious.
and All your base are belong to us. Yes I know you worked hard for that money and I did nothing, but that doesn't matter, you should give it all to me.
Ok, I thought the first one was pretty off base and utopian in it's thinking, and I don't think this one-page update to the artice does anything to improve matters.
:-)
/. crowd - we all know GCC or compiler of choice like the back of our hands. Or, for some, the palm of thier hands ;-)
/. crowd's heads part of the time (picking an arbitrary number here) So what point was it in handing the source for a accounting system to someone who who is a systems administrator? Parts and bits of it make sense, but, without the background in accounting systems, there's parts of it that could cause more grief than it's worth for a simple change.
Now, before someone decides I'm an anti-Open Source type o' guy, forget it. I'm not - I use Mozilla (1. 2 - woohoo!) for my browsing and mail, and Open Office as a most-of-the-time replacement for MS-Office (*SIGH* I still have office loaded for a few oddball things OpenOffice doesn't do right.) I've got a nice firewall (linux) and fileserver (linux) all running open source operating systems.
So, consider that before markin' it as troll when I say... Oh, PUHHHLEEZ!
Look, makin' an application Open Source does not garantee quality. It does not reduce code bloat (in fact, I'm starting to believe that at it's core, the Open Source way of doing things is starting to increase code bloat. However, the really slick thing is bein' able to fix that on a personal level with a simple recompile most of the time! But, that's a totally different article to write...) It does not garantee an increase in quality - just because you can LOOK at a bridge's construction, do you fully inderstand the architect & engineer's design methodology? Would adding another bolt hole here and throwing a bolt through it increase or decrease stability of the bridge. You have to be a specialist in the field to truely understand (just being an engineer doesn't cut it - you need to understand BRIDGES before you work on a bridge
Same applies to software engineering - while anyone could look at the source, and start hackin' at it, that does almost nothing for other people in the first place. You've got to redistribute the improvements, get it back into the source tree, and convince other people to re-compile before you do it. Most of the steps above require specialized knowladge of one form or another. (Before someone debates that point - no, not people don't understand how to run a compiler. I'm not talking about the
But, even then, some of this stuff is way above 75% of the
There's also somehow the impression that this would "change things". That somehow, because of magically having the source code available, this would make products better. Well, it's not going to increase the quality of the code from the original company who released it. And unless there's a clearing house for everyone to update thier application, what's the point? Overall quality doesn't improve, only single installations (or corporate installations where someone made the nessisary change and distributed it on the desktops - which to be honest, DOES indeed provide some promise to the concepts he presents in his article. Corporate licensing would be handy.)
Tech support becomes a nightmare too - "Oh, sir? You changed that bit of code? Sorry, can't help ya..." Let's face it, it's hard enough to support an application and all it's versions - it's hard to support it when someone can make a simple change. Add a public code repository to it, and man it just gets worse. Once the code is touched, there's no support anymore. (But, of course, if you know enough to mess with it, is it a downside? *SHRUG*)
Licensing would become an even deeper nightmare. If companies are putting horribly restricting EULA's on compiled products, imagine what they are going to want to do with the source? Sure, he talks about how to protect it with copyrights and excluding certain modules (more on that in a moment), but, companies aren't happy with copyright now, how will that improve with source code involved?
And of course, there's this interesting idea that you could just exclude some modules. Well, that does a couple of interesting things. 1, it defeats part of the purpose (but not all of it.) So there's still parts of the code that's buggy and unreleased. Whoo... what exactly did we fix there? 2, it would be an absolute Haven or Hell for Open Source developers. Companies would fall very quickly prey to people who simply replaced that core module, and suddenly have a working application - no need for the original developer anymore, just release a new open source core for the program. Open Source developers are going through a lot of effort to copy the current functionality of an application - if there was an even shorter route to gettin' the job done, someone would end up doin' it. Of course, given the paranoia level of some companies, Open Source developers could end up having to deal with ELUA's that prevent you from having looked at another company's source tree and writing your own. MS is already attempting this with a couple o' items. Why would the situation improve?
While it's an interesting set of thoughts, to me it comes down to a combination of personal choice, and company motivation. If you want the source code to an application, then choose your application wisely - use Open Office over MS Office. Linux over Windows. Etc. Almost anything out there has an Open Source equivalant (almost, not quite.) Use it.
As for companies - it's up to them to decide what resources become available to the end user, and under what license. If I can get one more feature out of Mozilla (contact synching with Windows CE... er.... PalmPC machines, not just PalmOS machines) I'll begin moving everyone in our offices to it - the combination of MS's licensing and features -vs- Mozilla's Licensing and features will make it a logical choice. Companies are now starting to have to take that sort of thing into account already - I'm not the only commercial developer out there deciding how much of my application (games, in particular) source I'm going to be providing to the end user. If Collaborative Source, Shared Source, Open Source, or model of choice where the user gets the source code, is truely of importance to end users, we'll see it happen. And the companies that didn't follow that path will have a hard time - adapt or die.
I personally choose to have applications that have the source available, as long as everything involved fits my needs. And, not including the "Everything should be free" crowd, I think that' show most users will have to make thier choice anyway.
Davis Ray Sickmon, Jr - looking for something to read? Check out my three free novels at MidnightRyder.org
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.
All other types of copyrighted works inherently include their "source code." By that I mean they come in a form suitable for studying and for creating derivative works when the copyright expires. Books are like this. I can study the author's design simply by reading it. Yet this hasn't led to some unmanageable problem of "book piracy."
Frankly, I've always thought it a scam that software companies get copyright protection without at least providing a copy of the source to be held in escrow by the Copyright Office. They're basically getting something for nothing, since whatever passes into the public domain a century from now will not be in any way useful for creating future works.
I just saw in my new Flash 6 beta plugin for Mozilla that the player has support for microphones and webcams, and allows flash movies to access these. It made me JUMP BACK in my chair! If these movies can access my cam or my microphone, this CAN be misused terribly!
If we had the code, we could inspect it for ourselves, but right now, people will just have to "trust" that no harm will come to us from using this software.
Shrug! I have come to hate using closed source software. For sw companies these days it seems that the temptation to access the millions of surfers' computers is too strong! Look at Windows!
Right now MANY commercial apps literally STEAL source code from the open source community. Having the source code open to everyone will shed light on those hidden behaviours ...
But there are still relatively few actual programmers.
Yeah, I'm sure every IT consultant in the biz sees no problem with releasing the code to everything, but of course they didn't put any of the work into it in the first place.
This isn't like a novel, it isnt like a painting, it isnt like a music CD, so screw with those damn analogies.
This is like requiring every manufacturer of goods to allow any customer to tour the plant and interview any employee at will.
He's saying "Trade secrets be damned, unless I can walk through the R&D wing at Sony, I'll never know how much 'quality' is in my walkman."
Code is a means to an end. It isn't the product, it's the factory and methods you use to manufacture the product. You cant guage the quality, or lack thereof, of a final product based on the sourcecode. You base it on the product itself.
Luckily, noone would ever take this seriously.
I don't need no instructions to know how to rock!!!!
The source is part of the product.
Hm. I think you missed part of how the market works. The Product is definied by what they throw in. It's thier choice - if they throw in the source code, it's part of the product. If they don't throw in the source code, it's not part of the product. The end user does not determine the extent or limitations of a product, the producer of the product determines those things.
Now, the issue of if it SHOULD be part of the product - that's a different story. Putting it into the analogy of real-world products - What you want in this case is a set of blueprints, architectural drawings, etc. that went into producing the product. (Ok, VERY loose analogy - maybe what you want is the CNC code that went into running the machines that made the molds, and the automation code that went behind creating the product.)
Davis Ray Sickmon, Jr - looking for something to read? Check out my three free novels at MidnightRyder.org
An interesting idea, but:
That said, I agree that it would be great if more vendors shipped the source with your product. However, people just want software that works. They don't want to have to hire someone to fix the bugs in the software they bought that was supposed to 'just work' in the first place. Where it would be more useful to have the source is if you've got a system that has been around for a very long time, and it needs to be extended in some way -- especially if the original people who designed the system are not around any more. Anyway, I just wanted to point out the big 'might' in your statement.
The linux kernel, for example is a HUGE program. Much larger than many (most?) commercial products. It is constantly modified and dissected by thousands of interested users
/. reader, how many of you have ever taken a look at the kernel source? How many have actually tried to understand any piece of the source (vs a casual browse)? Like the person said, there is a lot there, how much coverage does the "kernel" really get. Somehow I think that the "thousands of eyes" effect is quite overstated when it comes to OS, but I would be curious to see a show of hands and opinions.
OK, I hear this over and over, so I ask you, the average
What must be realized is that, with a decent debugger/decompiler, it's possible to reverse engineer executable applications without the source code. It has been done for ms-windows, by Andrew Schulman et.al. some ten years ago, when they published a series of books on windows and ms-dos internals.
It can be done for hardware too, there are methods for dissolving chips layer by layer to photograph the lay-out, from which a schematic diagram can be recovered. It may be even simpler, if off-the-shelf chips have been used. I was once given a circuit board from which the manufacturer had scraped the chip part numbers. After removing the chips and reading the printed circuit connections with a multimeter, I put each chip in a test jig. Without much effort, I found they were all 4000 series CMOS chips and easily found the part number for each. It took me less than a half day to reach the exact circuit schematic, which wasn't very orignal, nothing that a patent could be applied for.
He forgot:
"I don't want to show the source because we make a ton of money from crappy code and the maitaince fees we get for fixing our bugs."
You laugh, but I've heard statment very similiar.
Of course if people would stop paying companies to fix broken code.
We just bought some code, it had some bugs, the company wanted 200.00 an hour to fix bugs in there code. Outrages.
The Kruger Dunning explains most post on
I find the article somewhat lacking. The points from the other side which he addresses are ones which the open source movement has addressed from day 1.
Anyone who understands the open source movement already knows that peer review is superior to any internal QA process. Despite what the FUD claims, there is little question that the quality of open source software has been higher than that of closed sources software. I think the fact other people might see their software as "lousy" only accounts for a very small % of the reason why most software companies are not open source.
Intellectual property is a much bigger issue, one which the article's author failed to address properly. Right now, I may have no clue what the best way to design a piece of software to do some particular task. If some other vendor has already designed that piece of software and released the source, I might not understand the details of what exactly is going on, but it would not be too hard to get a high level understanding of how the software works.
From there, creating the better mousetrap becomes a much easier task. The design of the software is often as time consuming or more time consuming than the implementation.
Sure, if I used their work in the creation of mine, I have created a derivative work. However, copyright law is a very grey area. If I kept my work closed source, how could anyone prove that I didn't steal my design from their product? They could sue me, but it would be at great cost to them, and if enough of the implementation was changed, they may not even win.
Managing any company successfully is not a trivial task. Executive board meetings are not filled with people who want to create poor software and hide that fact from the consumer. However, when someone presents a concept that could a) help competitors get into their market and b) result in a huge loss in revenue (directly and indirectly), what do you expect them to do? If you were a developer at that company, what would you want?
Regardless of how good you are, there's always going to be someone better out there. Most companies are realistic and realize this. Why give them an edge on your company's business? Do you really want to be out on the street that bad?
Overrated Moderation: This posts sucks... because.
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.
Such services could be (already are) provided even without source code. I don't need the code to tell you that Windows Me is a buggy piece of junk, or that Blizzard games are usually pretty reliable. What layman-comprehensible detail are you going to pass along to customers that you can't tell without the source code? That you didn't find any buffer overruns? Even if you could make the average American understand what that meant, you'd be screwed the first time your team overlooked one...which WOULD happen.
Don't get me wrong, I'd love to see the source code for every piece of software I use. But for most products, the benefit to a company's competitors far outweighs the benefit to the average consumer.
101010, 222, 52,
Of course, the license agreement limits what you can do with the source (basically, do what you want except distribute it, but don't expect support if you change it.) I would sue the pants off someone who violated the license agreement.
It seems to me that the actual code behind a program isn't all that important. Sure, you might come up with a beautiful algorithm, but for most problems that a programmer deals with the most efficient algorithms have already been discovered...and published.
What's impressive to me is that someone saw a need and designed a program to solve the need. If anything should be patentable, it's the general solution. For example, the chair I design might be patentable, but the way I put the bolts and the nuts together is well understood.
No to take anything away from the programmers. It's not that putting everything together is easy. But, even if you write an elegant solution to a problem there are 500 other programmers who might very well have solved the problem in the same way you did.
IMHO the real challenge is finding the need.
Kind thoughts do not change the world
If companies have to release the source code, that means that any copy protection code could be removed, and the resulting software could be pirated without any hope of it ever being stopped. Thus, commercial software could no longer exist. At this point, a major sector of the economy would grind to a halt. Some companies would then no longer be willing to spend money on development, so innovation itself would also be in bad shape. And this is supposed to be a good thing?
And they'd be right.
Honestly, when are we going to stop being so collectively naive? Does anyone really think MS is suddenly going to become all nicey-nicey if they only would open up their source code?
In fact, who fucking cares about MS and their source code? Not me. Not most of the people I know. Not most Linux users, even -- hell, most of THEM don't care about Linux source code, either, because they can't use it.
at least in the whole, with the author's premise, although I do believe the background philosophy to be sound. There are certainly cases where it is not to the advantage of the code *producer* to open their code.
However, those that claim the availability of code is worthless to 99% of the users are missing a key point. It isn't important, per se, that certain code is available to *me.* It is of great importance, however, in certain cases, that source *be* available to all comers.
I've never hacked a kernel and have given the code nothing more than a cursory glance out of pure curiosity. However, I *personally* benifit from the code being openly available nonetheless.
The same goes for emacs and vi. I use both. I've never so much as glanced at the code for either, even out of curiostiy, but I *personally* benifit from all the people who *have* looked at the code and contributed. I benfit from the features they add, from the bugs they squash and the support they provide.
What's more it *is* a benifit just to know that if the projects are ever abandoned I *can* get the code myself and learn my way about it.
You may not fix your own car, may in fact be mechanically "all thumbs," and yet *you* derive great benifit from the fact the Chilton publishes freely available workshop manuals.
Open Source is just such a workshop manual and its availability always benifits the greater populace of users.
The code producer is another story.
KFG
Hell Evian sells water in bottles. We all know the flipping chemical formula. Hell, it comes out of the taps in most of the industrialized world. What they are actually selling is the packaging.
THAT is where the money is.
"Learning is not compulsory... neither is survival."
--Dr.W.Edwards Deming
As much as I hate DRM as a user-limiting technology, when it comes to programming code, you at least need something.
If your source was Open-yet-Copyrighted, the law of the land is on your side to protect you, but the laws of physics are not.
What if somebody was to take the critical for loop from your program, change the variable names, and then release it as their own. That's a definite copyright violation if you can prove that it happened that way, but if the other guy's claiming otherwise, it's gonna be one hell of a lawsuit.
More LEGOS, How-to's, and Science! And hot chicks, please more hot chicks.
If we don't fight for ourselves no one will.
I'd like to be able to fix a programmer's bug without having to wait for them to do it. My pet peeves don't always rank up there with a software departments priority list. Then there's always the case of wading your way through some support rep on the phone and explaining to all-too-many people how do duplicate your headache.
-techwolf
I don't do this for karma, I do it for cash. It's much better.
Maybe the performance of the software might have something to do with how you rate it. I'm not against making software open source, but I can't honestly say that I've heard any argument for it that made any sense. Do you also want a complete parts lists and break down of the engine theory for your car?
I assure you that NO ONE has seen ALL the source code for Excel or Word (or any other of the "too big for our own good" line of MS products).
"We shall party like the Greeks of old! You know the ones I mean." - HedonismBot
Freedom is a sloping mountain and everybody wants to get to the summit, forcing all software to be open would be climbing up over the top and then starting down the other side. Nobody should have their creations FORCED away from them, it's THEIR creation, so THEY should get to deside how to distribute it to people. Ideally all people/companies would open their software, but that doesn't mean that they shouldn't have the right to refuse to open it.
;-)
Richard Stallman has talked about how all software should be open and that's always been where I start to disagree with him. Again, I agree that it would be beneficial to the world if all software were open, but I still think that people should be given the right to choose whether or not they want release it as "open".
Oh well, it's not something I really need to take a whole lot of time thinking about and defending against because it's really an unpassable law (and pretty unenforcable too). Just think about it, it'd be about as unenforcable as anti-piracy laws
Excuse me??? Was that measured with a stick that says "0, 1, 2, many"? It has to be, because there is no way that this statement can be true of real code. What's more, if there is a piece of code where all the key stuff makes just up 1% of the total and can be cut out that easily, it is a badly designed piece of bloatware! It's the 99% that should be ripped out, for $deity's sake!
Besides, a good overall design most often is part of the uniqueness and value of really good programs. Never mind that one key algorithm that could be removed by replacing it with a stub, it's often the overall structure that really is worth something to a competitor.
This guy needs to get a life. No, wait... he probably has a life and that is exactly what his problem is. He needs to do some real design and coding for a while. I'm not sure I would hire him for such a job, though, because judging by his "key algorithm" statement he never got past functional decomposition in his "programming 101" course in kindergarten.
Linux user since early January 1992.
From the article:
... if you develope and release software yourself, the owner of the "shared source" could claim you "stole" their code or even their algorithim... even completely meritless charges could tie you up in court.
> Note that I am not advocating open source
> licensing for commercial software.
Why not? Since the basis for your advocacy of including source code is your desire to improve software development overall, why not go all the way and also allow the consumer to improve that source code and share their improvements with others? This is what would solve the "reinventing the wheel" problem.
The right to freely modify and redistribute are at least as importatant as the right to view source code. It seems to me that you are advocating something like Microsoft's so called "shared source" licencing.In some ways, this form of licencing is even more restrictive than closed source code. If the software consumer is tied up by patents, non-disclosure agreements, etc., all the "shared source" does is create the risks
Another question: why are you using the term "open source" for your anything-but-open-source proposal? Why not call it "revealed but restricted source?"
Certain very large proprietary software organizations would love to see the meaning of the term "open source" muddied. We should be very clear in our use of terms to prevent this.
Saying "All source should be Open" implies he means Open Source. He doesn't - he just means the source code should be available. See later in the original article when he tells readers to "Note that I am not advocating open source licensing for commercial software. ".
"You don't support user-modified code, you support what you shipped."
Yeah, right.
Customers will make "fixes" or "enhancements" and then call you when it doesn't work, and swear up and down that they are using it straight out of the box (because in their mind they are -- it's pretty much straight out of the box except for this one little tiny change unrelated to this issue they're calling about...they think).
If you don't think so, check out the Linux kernel discussion explaining the origin of the "tainted" flag. Alan Cox will be happy to learn ya.
101010, 222, 52,
People seem to be responding with arguments like "what? give source code to everyone? that's crazy!" That's not what I got reading this article. From what I understand, the author is talking about when a big company pays you to develop software for THEM to use, then that big company should get the source code. For instance, I program for a small software company. But we make programs for large engineering companies. Those companies, in turn, either use our software internally, or license it out to other companies. It's their software once we release it. They own all rights to it. So why shouldn't they get source code? It's not like they'd need to distribute that code to all users of the software. But I think they should have the right to inspect that code to make sure we're selling them a decent product.
if(!cool) exit(-1);
Your favorite
Yes, that will change the nature of the software industry: that's the point.
Yeah, it will KILL the industry. Not just microsoft, but everyone.
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)
Oh great. So I can't charge for Free software? You're just perpetuating the idea that free software is "given away", instead of simply being licensed by the copyright holder a certain way. Wouldn't Microsoft and the others just start giving away their binaries and charging for activation keys or something?
Require that software companies have a warranty of fitness.
Impossible! Under what conditions? On what hardware? With what other software installed? I can't even fathom this .. what if Windows crashes because of some buggy 3rd-party software? Who's responsible?
Require them to refund money for defective products (opened or not).
But what makes a software program (which is just some information on a disk) defective? Do I get a check when it crashes? Won't vendors simply claim "this software wasn't designed to do anything in particular" and avoid liability?
Maybe this would work, if a 3rd-party had the responsibility of taking the software product, installing it on a "clean" OS per the manufacturer's instructions, and then seeing if the bug manifests itself. Otherwise, we will simply encourage "single-vendor" lock-in as the software will simply refuse to run if the OS and environment isn't 100% perfect. Do I get a refund for that too?
Really, I wish liability for software would work, but I don't think it will. I think it will screw up the software industry (by that I mean the entire business of writing software for other people and getting paid for it, including Microsoft and the FSF and consultants and anybody else).
The source-code for most software is *huge*. In Redhat 8, the included (compressed) source-code takes 3 cds, more than double the size of the binaries. Considering Redhat is composed of mostly non-redundant code that's designed for redistribution, its source is probably much smaller that of most proprietary software, where programmers regularly copy, paste and modify modules for their needs and not care that they have to redistribute 15 versions of the same module for compatibility. I read an article about the build for Microsoft Windows, which indicated the complete source code weighed in at 50 gigs. I expect that the Windows source is an extream example of how bloated and redundant messy code can get, however, I'd imagine that the source for many complex pieces of proprietary software would span multiple CDs. The extra CDs would make packaging more complex and expensive and could confuse users. CDs aren't expensive, but I believe that the Redhat packaging (for example) would a lot nicer if (purely form a its-annoying-to-deal-with-that-many-cds perspective) it were 1 CD instead of 5.
Personally, I like having the source code, and I'm willing to deal with 5 Redhat CDs (I did need to copy them to my hard drive to use them sanely). However, its not very practical for use for many (most?) users and many (most?) software makers to package and distribute their source code with their product *even if they wanted to*.
Very true, but it goes beyond that.
The author writes that if companies opened their source, we'd stop getting crappy programs... Well, vote with your dollar just like you do for EVERY OTHER product out there! Don't like it? Don't buy it. If there's an OSS solution out there, use it if you prefer. If you buy it you're saying that you're willing to overlook the bugs because there's something of value in the product for you.
Well-designed software isolates important functions into small, non-redundant subroutines. Those routines simply can be replaced with empty stubs prior to including the source code in the purchase package.
While I agree that well designed software SHOULD allow you to do this, not all software is well designed and it's a company's right to have crappily written software. The author seems to think that the good software police have some right to chastise these companies. Well, ya don't. Get over it.
Furthurmore, the author makes the assumption that these removed subroutines can't be substituted by something else. If open source authors can deliver a functional, quality OS, they can figure out a couple subroutines and replace them. Tah-Dah! The company instantly loses their revinue because some hackers took their slightly incomplete source and finished it. Same goes for the constants. People can figure them out, and more importantly: People WILL figure them out.
There's an addage in the gaming industry: "The client is in the hands of the enemy" They WILL hack the client and try to cheat.
Fundamentally the author doesn't understand that the thing that makes software really cool is that there are no replication costs. Once it's written it can be duplicated infinitely for free. Other products like bridges, houses, and cars aren't like that. Even if I knew how a bridge was build, even if they gave me the schematics they used to build it... It would do me no good because I would have to hire a construction company and spend huge loads of cash to get my own bridge built. You could argue that another company could afford to do that, but it would be quite obvious that the second bridge was built using the first's design, and a lawsuit would follow. Although houses, cars, and bridges can be inspected by individuals, they cannot be replicated by individuals. That's where software is different and cool... And must play by a different set of rules.
Well said. I couldn't agree more.
It amazes me that so many authors, such as Mr. Connell, who are self-proclaimed "experts", expect their technology-savvy readers to just accept whatever ideas they spew out without question.
"Scientists prove we were never here."
-- Devo
You're exactly right. When I buy a piece of software, it should work, period. I shouldn't have to look at source code at all, just like I don't have to ask Honda who makes their starters, and in turn as the starter manufacturer who they buy their windings from, and check out the winding manufacturers, and check the quality of the copper. That's bullshit. Software should be warrantied, and if it doesn't work as sold, it's fraud. Period. Software license agreements that say "we don't warranty this product" need to be challeneged in court because they are simply illegal. Just like those truck on the highway that say "we aren't responsible for damaged windshields". That's bullshit. They're carrying gravel, it's uncovered, gravel flies out and hits your car, they're liable, regardless of what the back of the truck says.
We need to see some civil cases in which software companies are challeneged based on nonperformance of their products. It's not my responsibility to check the source code. My responsibility ends when I pay someone for the product. Period. I don't want to see the source code. I want the product to work.
i think that cconnell just REALLY wanted a /. post. the article is poorly written and is contradictory in my opinion. its like the people who build computers out of lunchboxes, they just wanted to be recognized by the geek community.
This secrecy is the key reason we have such lousy software. Software designers, programmers, and managers get away with bad code because no one outside their small workgroup ever sees it. [...] The solution is to release all software with a copy of its source code. This is currently the practice with nearly every other engineering discipline, because their designs are open for visual inspection and physical testing.
I disagree with every one of those claims.
You can view the design and algorithm of any program on my computer as much as I can view the design and mechanisms in a car, the hardware itself, or his favorite, a bridge. In none of those cases do you necessarily get to view the original designs, style, part names, or comments made while developing the product. Sure, you can look at the final product and pick it apart to see how it works, but that holds just as true for software as well.
I'm much more able to take apart and evaluate a software product's binaries than I am a suspension bridge, if for no other reason than I can clone, tear apart, and test software in a fully controlled environment more easily. I'd bet I can even evaluate software with a similar ratio of my evaluation time to original design time as a bridge engineer would evaluate a bridge.
He goes on to say purchasers can't view things like the comments, variable names, style, design, and algorithms of the source code. He asserts that he can determine the quality of a design based in part on these. Again, I totally disagree.
Things that are compiled out have no direct effect on the quality of the end-product. I've seen numerous high quality programs, meaning they do what they're supposed to, with awful commenting, horrible naming, and almost unforgivable formatting. Of course, I'd scold programmers for all of these things, but to the end-user, they matter as much as what the average mental stability of the company's developers. I don't see anyone suggesting that Microsoft should disclose all their employee's psychological profiles (nor should they!)
Companies and their developers won't necessarily produce better programs if they have to release their source. The developers I've known that produce truly sloppy and buggy code aren't embarassed, nor are their managers. They're working on things just hard enough for them to work some of the time. I've routinely seen people's code publicly critized, and they continue producing crap.
As to the company themselves, I absolutely don't believe companies would be embarassed into improving their systems if the source was available. Not to pick on Microsoft, but everyone knows their situation so I'll use them as an example. Most people who would consider purchasing non-Microsoft software know that Outlook and Internet Explorer have dozens of unpatched security holes. These are known design and source code flaws, so they're at least as embarassing as other flaws that may be exposed by releasing their source. However, they go for months without releasing fixes for them, and they continue to ship CDs with unpatched copies on them often for years afterwards.
What are you comparing against? How do you know it hasn't slowed it, the source has never been available.
It's fair and reasonable to assume that if everyone had the windows source, a great many more flaws would be found, quickly. It's a thousand times easier to find buffer overflows when you can analyze the source than it is without it.
Considering he is not advocating Open Source, his choice of article title:
"All Source Code Should Be Open"
is most unfortunate, as it only serves to stir up constroversy where there is none.
"Scientists prove we were never here."
-- Devo
On the contrary, software should have no secrets, trapdoors or hidden features (excluding games). An operating system should not be like a conspiracy novel. Even if the source were not 100% open, the system should be fully documented. Of course the source is the best possible documentation you can have, in terms of not lying or hiding.
Escher was the first MC and Giger invented the HR department.
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?
It happens in cases where the source is part of the product.
Giving away source is adding value to a product; you not only get the product itself, but the ability to completely modify it to your own needs however you want.
Many companies WILL give you source, for a price, and a contract to protect them.
Some products DO include source, where it makes sense.. my favorite example being Starbase's Codewright. Codewright is a wicked cool programming editor, it's not cheap, and you pay per-seat, but they provide full source by default, so you can extend the editor to meet the needs of your development environment.
This makes sense, as the product is geared towards programmers themselves.
My mom, however, does not need to pay for the added value in the Office source, were it available; it means nothing to her.
Does your car come with blueprints and CAD design CDs? Does it even come with a parts list? No. Does your computer? Does your washing-machine? If they are really nice, your washing machine will have a little schematic in it for the repair guy to plug in his multi-tester and have a clue which overly expensive part to replace but you get nothing more.
Just because we currently get LESS out of software, ie. a guarantee only that the media is readable not that it actually works, doesn't mean we should expect more out of it anywhere else.
$#!^ happens, but why does it always have to happen to me???
At my company, we write code. A lot of it. We also distribute the source code for our (relatively expensive) product. Almost none of our clients bother with the code. But, there are a couple of people at a couple of the clients who actually do understand and have looked at pieces of our code. Usually, it's because they want to make some sort of "add-on" that their in-house programmers wrote. We don't support their stuff, but because the source is available, they can write it in the first place.
There are two things that keep us from getting screwed, as far as I can tell. 1) We have a relatively small client list, so we can keep track of most of the copies of the code. 2) Our contracts with these clients spell out exactly what they can and cannot do with the source.
However, I don't know of anyone actually looking at our code to check it for correctness or security. They do that by extensive testing. They know that when they input A and B, C is supposed to come out. If it doesn't, our FAX machine starts working overtime.
Apparently, of the rich, by the rich, for the rich.
Typically you would use proprietary formats to lock your users in to your solution. That is, what good is a file if you are unable to open it?
And while lock-in, tie-down, etc, is all well and good for business NOW, it is horrible for business in the future. What if the vendor goes out of business? What if the vendor no longer supports that app (and assume that you don't have a contract) - nothing short of a pre-signed service agreement could force the vendor to do anything about your obsolete files (although a good company would do it anyway to keep the client).
Tie-ins also keep your competitors from competiting on features. That is, if you have invested thousands (or even millions) on a particular solution, you'll probably think twice about moving to another solution if that means you loose all of your data.
I believe in giving clients access to source code for nothing simpler than letting them customize it to their absolute needs over time. Something like "here's the code, we're here if you need us (and it'll cost you) or you can do it yourself, have fun" - is much better than the closed way of "here's the program, if you need anything done we're here (and it'll cost you)."
But you must respect the IP in business. It's not nice to expose your blueprints to potential competitors. So if giving your code to your clients is not an option, an escrow service would be much nicer ("if we ever go out of business, you'll get the code") than simply abandoning the code to the annels of reverse-engineering.
Sorry for wasting your time, there was no point to this.
Price, Quality, Time. Pick none. What, you thought you had a choice?
Lets have ID and Epic release source code to their engines! Yeah!
something like
"Be sure your sins are born in secret!"
Meaning that you are FAR more likely to do *naughty* things, if you feel that your naughtyness is secret and won't be found out.
Its an old saying and it damn sure applies to programmers!
In the free world the media isn't government run; the government is media run.
News for Geeks in Austin, TX
In a free market, if a critical mass customers demanded source code along with their software, software vendors would provide it in order to make the sale. The fact that it's not common practice indicates that there's just not that much demand for access to the source, at least when purchasing decisions are made.
Commercial software sucks because there is very little direct profit to be had from refactoring your code base. In the general case, you're lucky if your company survives a major refactoring.
More generally, commercial software sucks because users demand that it suck.
Why? Because it is clear that the original lawmakers were aginst the extensive use of trade secrets as a form of competetive advantage. This is the entire reason that patents were conceived. If you have a secret formula, you get a patent on it and reveal the secret in return for a limited time monopoly on the use of that formula. The public benefits because your innovation doesn't disappear when you die, and they can build on your knowledge as soon as the patent is published. You benefit because the risk of somebody reverse-engineering your formula is eliminated.
The other major form of IP, copyrights, applied to literature and music, which by its nature is non-secret. In addition to stimulating production of new works, copyrights also encourage people to openly publish works they might otherwise only release under NDA.
Notice that both forms of IP, as originally conceived, are intended to reduce secrecy. Somehow, though, when software came along, people forgot the original principles under which IP protections were created. Software binaries are naturally a secret formula. The founding fathers wanted to discourage secret formulas by granting IP protection. However, binary-only releases were given full copyright protection with no requirement that the secret formula ever be released.
The public never gets the benefit of the secret knowlege that is protected by the government force that is handed out for free to the creators of binary software releases. Software patents are often of little use to the public because they usually detail only a tiny detail of the entire system. Enough to block competetitors from building a competing product, but not nearly enough to reveal in detail how all of the APIs and file formats work.
At any rate, I don't think that either copyrights or patents are a good match for software, which is a product unlike any physical good or work of literature. They should have invented a third form of protection just for software that balances the interests of the creators and consumers. Kludging patents and copyrights (simultaneously) onto software, then letting the creators keep it all secret anyway, has created huge distortions in the marketplace which tends to create monopolies, buggy code and noninteroperable products.
I don't think this is necessarily a stupid idea, but it's wrought with problems.
/. post). Saying that the entire software industry should start distributing source with their applications is ridiculous. On the other hand those folks out there that are making really kick ass apps with really clean and beautiful source might benefit from releasing their source. They can say, "Hey, look at our code it's beautiful. Our competitors don't let you look under the hood, ever wonder why?"
Providing source code should be left up to the individual person or company who wrote the software. The market would dictate whether you provide source or not. If your competitors all provide source and you don't; you will probably have to provide the source or adjust your price.
Providing source that has functions and constants removed sounds like a simple thing to do, but it requires effort on the part of the software maker. The amount effort depends on the types of things you will have remove and how well your software is designed. Having to take into consideration the aspect of providing a stripped down version of the source during the design of the software would seemingly increase the cost of the software. Having to maintain a separate source that gets shipped with the product and the one you develop with would increase the cost of the software.
I write code that I release under the GPL and I write code that no one gets to see but me. The code that is mine and mine alone is my bread and butter and the GPL code is for fun.
There are rarely solutions that work for an entire industry. Remember when everyone said, "Everyone's switching to Microsoft, that's why I am." Well now everyone is not switching to MS; there are very few absolutes (other than I take a shot at MS in every
But what's good for one business may not be for another. It's a business decision that is mostly dictated by the particular market the business is working.
LoRider
Most authors can't make a living writing books. Lots of programmers make a fine living.
Tomorrow, I going to my boss and I'm going to tell him "we can solve all the software quality issues. No more worrying about underfunding, time to market, sudden mid-development directions changes due to marketing stupidity, expensive yet crummy dev tools, poorly spec'd requirements, weird hardware, lousy host o/s's that are chosen for the sole reason that "that's what everyone uses", unrealistic expectations from senior management, competitive pressures, ridiculous stock market and share holder expectations, etc., etc. We'll just release all the source and the developers will be shamed into fixing those issues from the bottom up. Let's go out on a limb and be world leaders here!"
The following day, I'll go to the employment office.
No argument that there is a lot of bad software out there. No argument that some things have to be done. Yes, developers could do a better job, but that is only a very small piece of the problem. Whole books with a multitude of recommendations have been dedicated to the subject. But no more magic bullets, please. This is not a simple topic and requires a top-down re-think (that I don't see hapenning).
Note: I am not against open source - I quite like the concept and I'm trying to find the time to get involved. But that is not what this is really about.
Sigs are bad for your health.
Like the bridge analogy, you can see that the bridge is sturdy and will hold a sherman tank. That's swell. What you don't see are the misplaced rivets that will cause the bridge to fail in unanticipated ways.
In other words, this is a kick-ass design, and I didn't notice that off-by-one bug until it was too late.
Another thing to ask is what do people really want? Bug-free software? Of course! And you know what they say they really want on airlines? More legroom and good meals!
Unfortunately, airlines that provide more legroom and good meals are running in the red. Unsurprisingly it turns out what people meant is they don't care about legroom and actually want the cheapest possible tickets and on-time flights. They complain that Southwest Airlines sucks, but everyone still flies with them!
My point is that people want the cheapest possible mostly-working software. Let's say, for the sake of argument, that there somehow existed some kind of free operating system for which anyone could look at the source. Would it have fewer bugs than closed-source OSs? Possibly. Is that really important to people?
No--really. Is it?
The author says that crucial functions can be removed and stubs can be left in its place..
/* STUB FOR OTHER (CRUCIAL) INCLUDES
/* STUB
Here's my program:
#include
*/
int main (void)
{
*/
}
You like?
actually the whole premise of this response if flawed. the reason products have warranties and product liability exists is because the product is well defined to begin with. want a toaster? guess what they've existed 100 years. same with cars, trains, trucks, houses or typewriters. Or bridges.. since that seems to be a popular analogy on slashdot.
each software package when built is a completely new technology. its actually analogous to building a new type of personal transportation device (like a car, only not) each time you need to get from point A to B. Since its never been done before (and if it has the competing vendor surely hasn't shown you how to do it) how the hell can you guarentee it will be free of defects other than by thoroughly testing and giving a "best efforts" warranty? If you want to bash the industry's testing policies thats another matter entirely.
Figuratively speaking, if you want to be the first one through Dr. Brundle's telepod, you'd better be ready to come out half fly.
Let's see you invest a lot of time and money into developing a large product. Make sure you pay other developers too so it's not some lame one horse show. Then give away your source code. We'll all look on eargerly for how long your company stays in business.
When you buy a Tom Clancy novel, you are buying something that Tom Clancy wrote. When you buy binary software, you are buying something that a compiler wrote. What the article is suggesting as long as the buyer is forced to suffer copyright restrictions on a completely machine-generated work, he should be allowed to see the final output that was created by a human. This happens automatically for books due to their nature, but not for software and so the extra condition is justified.
Closed binaries do not "promote progess" in the sense of the Copyright Clause in the US Constitution. They cannot be reasonably studied or used to create derivative works when the software ultimately passes into the public domain. Thus we are allowing software companies to cheat the public by not holding them to their end of the bargain.
The contents of a can of Pepsi aren't copyrighted. If I can figure out the formula on my own, I'm free to duplicate it. On the other hand, even if I managed to reverse-engineer the entire source code from a binary, I still wouldn't be allowed to distribute it because copyright is a stronger protection than trade secret. A stronger protection should carry a higher cost to the beneficiary.
It's easier to copy a cd than it is to compile
a huge piece of commercial software.
You know, people have had the source code for
books available for centuries, and people can
copy or even reverse engineer these books to
make books that tell the same story!
That's why we have laws. Plagairism is still
plagarism, even with software.
You use the word period too much, period.
:-)
Just kidding.
"When you buy a Tom Clancy novel, you are buying something that Tom Clancy wrote. When you buy binary software, you are buying something that a compiler wrote. What the article is suggesting as long as the buyer is forced to suffer copyright restrictions on a completely machine-generated work, he should be allowed to see the final output that was created by a human. This happens automatically for books due to their nature, but not for software and so the extra condition is justified."
Again I say that's just childish and incorrect.
You're not paying for the source code. You're paying for permission to use a binary copy of the program and there is a big difference.
Its like paying Tom Clancy to know of one of his stories. You don't get to keep his source for the story [you could take notes I suppose] since that's not what you paid for.
"Closed binaries do not "promote progess" in the sense of the Copyright Clause in the US Constitution."
While I agree OSS promotes academic achievement its hardly practical for making money off of. Also I'd argue there exists competition in closed source circles. Compare Nvidia and ATI. Could you please send me the HDL/VHDL [etc] source for a GeForce processor please? Can't? Didn't think so. Yet there exists competition between Nvidia and ATI.
Similar for compilers, code management, photo tools, etc...
The thought you are entited to the source code because you want it is just plain immature. That's not how the world works.
Someday, I'll have a real sig.
Code produced internally is a different thing and I wouldn't expect companies to publish in-house code to the rest of the world but I would never accept a binary again unless I had no choice.
Yes, this means that a whole bunch of business models from the dawn of time are obsolete but that's life. I'm not going back to gaslamps and I'm not going back to closed-source.
TWW
"Encyclopedia" is to "Wikipedia" what "Library" is to "Some people at a bus stop"
I sort of agree with you, but are you prepared to pay for software that 'just works'? Depending on who you think has the answers, and exactly what you mean by 'just works', it is likely to be 10 to 100 times as expensive to produce, and not even MS can cover that and sell for the same money.
Key routines could be provided as binary only, ready to be linked in as is to the rest of the code if any part of the rest of the code is modified. It should also be possible to recompile only portions of the software without having to recompile everything. If any dependencies require the secret portions to be recompiled, the user would have to petition the company to provide the recompiled version, or refuse the user the ability to make such modifications.
A customer could test and debug it just as well as a new hire at the company that made it could do the same, or how someone can join a real open source project and start contributing to one or two areas in which they have concerns.
But this proposal is not to give users the ability to recompile modifications but rather inspect code under glass. But if portions of the code are concealed, then what is there to say that the pretty, well-structured code you're looking at really does anything and all the real code is locked into that binary-only portion containing the worst code you'll never see?
There has to be a middle ground between software burqas and software nudity. But both sides apparently cannot tolerate anything but their own preferred extreme: we only want to see because we want to touch; they don't want us to see because they don't want us to touch. There's too much long standing distrust on both sides to trust each other suddenly to behave responsibly in a middle ground.
They see it as opening a strip bar in the middle of a rapists' prison. We see it as cloaked death machine entering to destroy our utopic playground. We'll never get our nude beach without also making it a police state.
I sent source code for some stuff I did a while ago. It was quite popular in the community it served. You could use it as you wished, but if you used it in a commercial product you had to pay a slight fee.
Well, guess what? I go to some tradeshows, and sure enough my stuff was being used by two companies there. (I knew it was mine from the messages shooting out on the screen with my name on it when the code came up).
Go get a lawyer, you say? Yeah, right. I don't have the money for that sort of thing.
The big guys know what, and you'll get screwed.
Send out source again? If it's already GPLed, hell us. If it's my own, hell no.
There are a lot of posts from developers below that argue that you-the-buyer don't purchase the source. I beg your humble pardons, sirs, but you're wrong--the binary is the source. Granted, it's source in an extremely low-level form that's not eminently useful for development, but if you think a binary application is uneditable I would like to introduce you to gamecopyworld et al, who exist to edit, yes, binaries.
Further, the 'source' in the form of the machine-code executable is covered by a liscence agreement (of questionable legality) and by copyright law (of perfect legality). The source code used to generate that binary would be under exactly the same liscence/copyright. The article is not insisting that you give the source away for free!
Cheers,
Owen
when you buy a radio do you get the schematics for how it was built and with what parts?
When you buy a painting does it come with an instructional video starring a hippy with an afro on how to recreate it?
I don't care how you guys think, not everyone else is into open source. You think source should be open, alot of developers like to keep their work secret.
Does David Copperfield show you how he does his tricks? I don't think so.
To say that everything should be open source is absolutely ridiculous. Why should any company be forced to go the extra mile and clean up their source and make it available and ship it and support it when it gives no extra income, or 99.9% of the population doens't give a rats ass about it.?
Is source code really equivalent to blueprints? Blueprints to me means more the high-level design and architecture. Now that may be included in what the author here means by "source" - certainly in some cases it is included as comments. But really software is something that exists on many levels: machine code (binary), source code, algorithms and design patterns, requirements and specifications, etc. Having source code allows the user to re-compile with various optimizations; even to debug, and to compile for other platforms, but it doesn't necessarily give the whole farm away...
Would it satisfy the question here if the source code were run through a munger that removed all comments and randomly changed all variable and method names?
Anyway, I feel all this would be a lot clearer if the copyright law on electronic files was a little more widely accepted and understood...
Energy: time to change the picture.
"Marge, I agree with you -- in theory. In theory, communism works. In theory."
I'm a developer and have been for a rather long time. Personally I disagree with the notion that I should not be allowed to "own" my own creations.
To suggest something like this is akin to suggesting that people must publish their personal diaries if asked to do so - the justification of this intrusion being that certain other people who shall remain nameless have published shoody works derived from diaries (not Anne Frank's of course) and since the public interest wasn't served... well hey - turn over your diaries folks.
Well, diaries are not computer programs but they are written instruments and they are intellectual property and it is my right to keep my sources confidential if I wish just as it is your right to have a personal diary.
That being said, the vast majority of the software I have written has been under contract and while it was NOT absolutely necassary to release the sources, in general I did so.
The result on one occation is that a job I bid at a little less than $30,000 ended up handed over to another contractor who eventually billed over $150,000 and used my source code as their starting point. Later I found they botched the job which was one reason it cost so much. It seems they got into trouble and as the project slowly sunk the client in desperation tried to fix the problem by adding more money. More recently there was some musings on the part of the end users that they really wish it would get a face lift. I suppose I should do it and then demo it and demand that lost $120,000 bux because I shall have to tear out 100% of that shitty code my competition layered in. So far I have not felt inspired enuf to take it on. There are a lot of people involved in this fiasco as it turns out because the software is in use by every major oil and gas exploration company in the world and a lot of government agencies as well.
So in this case IMHO, not only was I shafted, the customer ended up with a shaft as well. Indeed, some of the work in that project was under MY copyright and the contractor who worked with MY COPYRIGHTED SOFTWARE did not have a right to use it. In situtations like this this however, it is usually better to grin and bear it and meanwhile let them fall flat on their own faces.
Nevertheless it kinda hurts to have others F up your work and get paid 5x what you asked. In the contracting business I think this probably happens a lot mind you.
I am reminded of a contouring package written by an aquaintance of mine. This software was usually licensed under a binary only agreement but as I was told one Major oil company by the name of Amoco paid extra for access to the source. They next proceeded to improve the package in a number of ways until it no longer worked. At this point they had to go back to the original developer and buy it all over again.
Well, comments like "all software should be open source" are somewhat naive. There is a point here however. With most software, unless it becomes open source, it is quite likely that the package will die with its creator. That is the current situation with the contouring package. Were it open source, then some of us could take it over and improve it. As it stands it will probably eventually be lost forever.
I think for most developers, they are conserned about retaining control while they have an interest in it. Often this can be to the customer's advantage as well, because often beauracracies do not understand the creative processes as they apply to software. There is no surprise that there can be more than an order of magnitude productivity between programmers and this productivity can be multiplied by a further order of magnitude when one considers the algorithmic design aspect.
Perhaps Richard Stallman's contributions in the emacs and GCC areas illustrate this. Not only was Richard able to out program whole departments, his programs have a certain edge in the design area as well. Thus the GCC compiler for instance can compile pretty much any language for which one wants to define a grammer and it can compile to pretty much any architecture that one wishes to define to the back end. That is one awesome peice of work!
If we were to take the next 1000 programmers from any campus, or any technical colledge and try to find even one who could match Richard's work, then I say the odds would be rather low.
So one way to look at this is that Stallman chose the OpenSource solution as a vehical to retain control over his work. At the time he was programming GCC for instance, had he not been able to use the OpenSource vehical then I am totally convinced that some bean counter somewhere would have found a way to shuffle this marvelous work into a closet somewhere and the vast majority of us would never have know it even existed.
So Opensource has its place and it is appropriate for general purpose systems tools.
As for special purpose application software... Well, maybe. If programmers didn't have to make a living then I'd probably say OpenSource everything. But the truth is that we do have to make a living and programmers, especially contractors, always face the possibility that they will be excluded from further development on their own work simply because of politics, dirty tricks, or any one of a miriad of reasons that result in a contract being issued to the competition.
The problem is that programmers are not like carpenters. We are not created equal and one cannot just plug in a replacement part so to speak. The contract award process does not consider this. Maybe the market place does but I suspect not or we'd never have the really shitty commercial software crappola that hangs around.
Until some of these problems are solved I vote for programmers to have the right to retain control of their sources. However if someone can invent a fair compensation scheme for those who create the original works then I'll change my vote.
I work for a software company that does AI work for battlefield simulations that simply aren't possible without the power of our proprietary algorithms. There's no way in hell we're going to make it open source so that just anyone can do it. Thinking otherwise is completely naive.
- Compensate for deficiencies in the
documentation
- Make corrections to errors
- Add needed functionality
and most users won't bother reading the code or commenting on it if they won't be able to do those.Just like about every second post here i don't believe you read the artical - he doesn't say that software should be open source; it says that if i buy a copy of word or something then i should get a copy of the majority of the code so i can verify for myself its been well-written.
'No publisher will ever pay you enough to successfully sue them' - Dave Sim
Of course it would fly, because software used to be sold in source form, and there were even products with no binary distribution; you had to assemble the product as part of the installation procedure. I know of other products where, although the initial code was distributed in binary, updates were strictly source.
You are RONG. Go dig out the Berne copyright conventions and talk with a lawyer.
If you hire a consultant then the consultant will own the copyright UNLESS you specifically contract that this is NOT the case - and this must be in writing.
If you hire an EMPLOYEE then the employer will AUTOMATICALLY own the copyright UNLESS there is a contract in writing that precludes this.
The reason for this is that the legal status of an employee is derived from said individual being a "servant" and since his employer bought his "servant's" time, his employer has a right to anything produced by his "servant". This means that legally if an employee creates something ON HIS OWN TIME then even in this case his employer MOST LIKELY has a claim to it. The bottom line is that a full time employee has sold ALL of his creativity and time to his employer whether he likes it or not. So if you don't like this idea folks, then QUIT.
Contractors and consultants on the other hand are providing a product. If a carpenter designs a nail gun and builds the house in 1/2 the time, the home owner does not have a claim to the nail gun. This is obvious I would think. However if a developer hires the same carpenter full time - well then the employer ownes the intellectual property associated with the nail gun.
Similary, a contractor may come in and peice together a large number of components and supply a finished system to the client. This should not mean that the client gains the copyrights to the components. In fact it should not even mean that the client gains the copyright the the glue code that stiches these components together. All the client gets is the right to use the finished product and usually the right to modify it somewhat.
There has been a lot of litigation in this area. Anyone affected _should_ run (not walk) to a good IP attourney.
In other words, expect the sun to burn out first.
Before even writing this article, the author should have done the simplest, most basic research. Look at all of the software commonly available today as ask:
For programs of similar complexity and functionality, are those with source code available more reliable than programs without?
It is pretty obvious that there is no general correlation between source availability and code quality, which defeats the author's argument directly. I won't even get into his preposterous analogies (software as a book? a bridge? geez...)
Actually, yes, I am willing to pay for good, solid software. Being a former developer, I understand the time and effort that goes into software, so I know that it would be a good bit more expensive. That's why I chose W2K over Linux. It "just works". That's why I chose my expensive POS system over a freebie. It's extremely critical to my business (and me being able to support myself). It works. But, I still don't feel like I have legal recourse to go after a company with software that doesn't work as advertised. I don't have the time & money to set a legal precedent, but I wish that somebody would. I'd also pay for a hard drive that worked for a long time and had a good warranty. I also pay extra to buy Japanese cars that last longer, and have better warranties.
So many software buyers feel like they're at the mercy of the software companies. Software quality is just abyssimal compared to other products. Then, they all try to claim that "our software may or may not work as advertised, and we absolve ourself of any liability". I know of no other product on the planet that is sold this way.
Tim
If it's closed source, it's very unlikely to be infringement, and there are different rules covering behaviour anyway. Not that the US patents office is much to be proud of, but that's a different issue.
You miss the point completely.
The problem is not some guy doing a quick search and replace across the source. The problem is when your code embodies trade secrets, such as algorithms you've researched and developed yourself. If your competitors can just read off your algorithms, reimplementing them in some completely different form, or even in a completely different language, is easy. No five-minute tool by a TA is going to help with that. In fact, none of the points addressed in either of the original articles really picks up on this, which to me was the first big stumbling block that came to mind.
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
There's a simple equation that will be useful to explain why this will never happen.
Imagine you create a program like photoshop, and it takes you 2 years to code with a team of people. Well I'd say that the time it took for you to get the source code ready is significant, and that the cost of going through this step is very high.
Now that you have your source code ready you can compile it and copy the program as many times as you want. Well this is not exactly that much expensive... = P
My point simply is, you pay for what you want to get. If I started selling a program with it's source code that is worth several thousand dollars then I pretend to be paid several thousand dollars by anyone getting it. I don't care at all about the fact that they "can't" use it for their programs because of copyright... the time and dedication I would need to control this never happens is not worth the effort (is this even possible for smaller developers anyway?).
Now I find a point in the middle, where everybody is happy, and I offer you a program that only took me a couple of seconds to duplicate for a fair price that in the long term will help me pay for the development proccess. I seriously don't think this is "unfair" as some people here seem to think. If you really really want the code then BE READY TO PAY IT'S PRICE.
And btw, a car is not like having the source code. Just look at the analogies before software development and the creation of cars... the thing that really costs money to Ford or Lotus is not making a "copy" of the car, but having the projects done, and all the blueprints. Seeing it this way makes me think that source code is more like the blueprints, and the car like the binary.
Btw, you can modify a car but you won't be able to copy it with a drag and drop.
Decameron
diegoT
I think that in its own way, the solution you have described would also set the software industry back into the stone ages. It's about lawyers and the little guy getting hosed, it's about component software and the way that that there would be a chain of litigation because everything builds on top of everything else.
I am a software developer, and I develop VB-based GIS applications. I use a well-known GIS vendor's GIS building blocks as the cornerstone of everything I have done in the last three years, and other vendor's COM controls in the interfaces. I have delivered several products to clients, and there have been extensive problems, a healthy portion of which are bubbling up from the components I have used and glued together within my applications.
If I were to be sued by my clients for defects in the components I had used, I would have to sue each of the component vendors (perhaps as part of a class-action lawsuit). In turn, each of those vendors would no doubt sue the large corporations such as Microsoft, Sybase, Oracle, etc. for the defects in the technology which underlies their components.
By avoiding components which had been built by other vendors, I gain the comfort that I have control over what I have sent to my client. But I can't build everything. That's why components, libraries and frameworks exist. By embracing components, I can deliver the expected product, but I open myself to unexpected litigation. Component vendors would disappear: they would be producing components with slim margins which could do nothing but bring them lawsuits.
Then there is the nightmare of proving in court that it was a flaw in the component that caused the fault. Jury of my peers, my ass. Have you ever grabbed a random person on the street and explained the problems of pointer arithmetic to them? Now try it with 12 people who will just end up listening to the lawyer with the biggest paycheck.
The cascading lawsuits will stop at the highest-priced lawyer, and then rebound back down the line. Most small and medium companies will fold after a single failed defense (or successful defense, if the court costs are high). There would be a vaccuum in the software industry: demand for software, but no one available to produce it. Some vendors (bigger ones who survived) would re-enter the space, and charge exorbitant prices to insure against litigation and because they are re-inventing the wheel constantly without available components.
Or you could let the current trends play out. There is an increasing realization by major OS vendors that stability and security are the next big hurdles. Microsoft has a seriously tarnished reputation from their track record. Apple has dropped their proprietary core and adopted UNIX. GNU/Linux is a manifestation of the inadequacies (stability and security) of the previous generations of operating systems. As the core OSes improve, that trend will trickle outwards to the component providers, and then finally to the application developer.
We don't need litigation, we need pissed off customers who scream bloody murder when their application crashes. We need to direct that passion at the OS vendors, and make them fear for their profits. Economics, my dear Watson.
"Smart is sexy." -- D. Scully ("War of the Coprophages")
The more I read of what the author wrote, he strikes me as a Microsoft wannabe who is trolling for reasons _not_ to go with open source. The shit he gathers will be flung back at us. I could be wrong.
Well, at least the comments won't nearly be so bad. All those
// igregious hack
comments will have to go. Other than that I don't see much change.
Darn, where are my mod points today? ;-)
You hit the problem there pretty much head on. Good code is subjective, at least to an extent. There's probably no such thing as perfect code, but most good programmers would probably agree fairly consistently on what is good code and what is not. However, their benchmark may not be the same as a user or their manager.
To me, good code is simply the input that makes a good product, and a good product is simply one that helps me to do something. The more it helps me, the better it is. That may mean running faster, or covering more different cases, or intercommunicating with other products, or any number of other things, depending on my requirements. Furthermore, those requirements may change over time.
Now, from a software developer's point of view, in order to write such good code, you have to follow certain basic rules. You need the code you write to be correct (giving the right answer, with no bad output, and usually with graceful handling of bad input as well). If you're going to keep up with changing requirements, or fix bugs that come to light, you also need your code to be maintainable (so that a developer can find his or her way around it, and adjust it to meet new requirements or fix deficiencies, without compromising the overall standard of the code or expending undue amounts of effort in the process). Correctness and maintainability in turn lead to various typical rules of thumb about commenting well, having a clear design, using meaningful names for things, etc.
I rather suspect, though, that if anything like this ever came to fruition, the holier-than-thou L337 developers would look at things backwards, and see those rules of thumb as indicators of code quality. Lacking any insight into the processes and people behind the code, they will try to do the impossible by reading everything from just those rules of thumb, and judge accordingly. Sadly, this would lead to what are actually quite good and well-managed projects being criticised because the code output does not meet Joe Public's Handbook of Rules of Thumb, page 173, paragraph 2. The fact that that code might correctly and efficiently implement the best algorithm in the world for medical research would be lost on many of them, and the damage would be irreparable for years.
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
Please differentiate between source code that is open (I can look at it, but perhaps under a very restrictive license), and Open Source Software (under GPL, MPL, BSD, etc. licenses). Most of your examples could be handled perfectly well under Microsoft's open look-at-but-now-your-contaminated license.
When I buy a book, I get access to what Tom Clancy actually wrote. No human wrote the binary image of kernel32.dll. The Copyright Clause is very specific that the rights cover the "writings and discoveries" of "authors and inventors." Both of these imply that copyright should not apply to the output of a mere machine.
You're begging the question. Of course that's how it works now, but the whole point is that I (and the article) claim that this is artificial and unfair and should be changed. It's unfair to the public to allow software manufacturers to obtain copyright protection for something that is essentially useless for promoting progress when it hits the public domain.
Having source code != OSS. It means only that whoever buys a copy of the software also gets a copy of the source code that they can look at and modify for their own use, but not necessarily copy and distribute.
A GeForce processor isn't copyrighted either. I'm free to make my own if I can legitimately reverse engineer the design. Only patents can prevent that, but guess what. Patents are already fully disclosed to the public. Yet, as you pointed out, both Nvidia and ATI are doing just fine.
In the days of VAX/VMS 3.7 and later you could get a set of microfiche of the source of VMS. It was a marvellous resource, particularly when writing device drivers. The only problem was the quantity of the information.
The DECUS user group meetings were enlivened by discussions with DEC personnel about the way things were done or should be done. In general I believe the product was improved and certainly my interaction with it was.
With regard to software for the government and the DoD, on many projects that I have worked (on both ends as a devoloper and a customer) source code AND design documents are usually required deliverables - in many instances this also includes embedded firmware as well (microcontroller code, VHDL, etc). In some cases the software source is delivered with the understanding that it may be provided to a competitor for development of a reliable second source. It works out OK in the DoD environment because the code is largely unique and therefore very expensive - the developer makes all his profit up front (and hopefully gets future business). In the cut throat commercial market the economics make providing the source code a non-starter IMHO.
That's why the binary copy shouldn't be copyrighted. The seller is being benefitted by the strongest protection available, but is giving nothing in return. If the seller chooses to use secrecy as protection, the product should be ruled by trade secret laws, not copyright laws.
Your analogy to the writer's notes is not valid. The right analogy for software would be to make public the annotations the programmers wrote while creating the program. Source code is the final product of a programmer's creation. Binary executable code is created by a machine, not by the programmer. What copyright protects is the fiunal fruits of human creation, i.e. the text of a book or the source code of a program, not the metal types used to print the book or the binary code generated by a compiler.
Actually, please think about the idea of copyright protection.
If a software is intended to be protected by trade secret, then it can be closed source.
If someone want copyright protection of their creation, they should open source.
Opensource if you want copyright protection. Period. Even encryption music or text should be protected by copyright laws.
Copyright protection is for information to be openly distributed, allow more people to read, to write. Allow the community to share ideas, to develope better.
If you feel copyright is not protected enough, try others, there are patent, trade secret and you may propose new protections. But don't abuse copyright.
I agree - making good software is a difficult task, but most of the reason why general quality is so low is because producers can get away with it. It's such a magical fairyland - crank out some code as quick as you can, distribute the binary, tell people it does something (which may be true, partially true or an utter lie) and then you make them click through an unintelligble agreement which frees you from all liability, while enforcing your rights of ownership. The crowning glory is that anytime anything goes wrong with your software, you can blame everyone else: the operating system vendor, the hardware vendor, code libraries, driver software, other installed applications, virus writers and script kiddies. Extra credit for charging the customer a large sum when your software breaks down. There's no proof anywhere, it's all guesswork and lies, smoke and mirrors, marketing and salesmanship.
Forcing people to release their source is a kneejerk reaction. It might clear up some of the lies, but the real problem is that the industry is doing whatever the hell it wants, and getting away with murder. I agree that legislation (refunds, real guarantees and codes of conduct) would be a better path.
Well, one year. (Pool Of Radiance 2) Anyway... Check their web page for which developers to blame for the multiplayer fiasco. It's gotta be the most amateurish released piece of code I've ever seen.
"That's why the binary copy shouldn't be copyrighted. The seller is being benefitted by the strongest protection available, but is giving nothing in return."
Really? How about use of a program?
Consider if GCC were not free. Think you could do just as good of a job writing your own compiler? If you went out and bought GCC then you'd be paying for the talent that went out to maek the program.
The producer should have copyrights protection to stop you from in turn giving out copies for free. I mean do you fundamentally not understand the way commerce works?
"Source code is the final product of a programmer's creation. Binary executable code is created by a machine, not by the programmer."
That's irrelevent as well. Pepsi is made by machines too. The formula/recipe is made by humans. Should buying a pepsi bottle entitle you to the recipe as well?
"What copyright protects is the fiunal fruits of human creation"
That's wrong as well. By your logic copying movies should be legal because you're not copying the people just some mechanical product.
You don't by any chance work in a market that tries to make money do you?
Tom
Someday, I'll have a real sig.
"When I buy a book, I get access to what Tom Clancy actually wrote. No human wrote the binary image of kernel32.dll. The Copyright Clause is very specific that the rights cover the "writings and discoveries" of "authors and inventors." Both of these imply that copyright should not apply to the output of a mere machine."
Tom clancy wrote each copy of every book out there?
Wow, he must have sore hands. Just because the product was rendered as a binary executable doesn't make that any different than a book being rendered by a typesetter. Its still a product that deserves copyright protection because it is a work written [at some point] or developed.
Tom
Someday, I'll have a real sig.
fuck open source. i'm trying to make money here. not do what's right. people will get quality software from me. they don't need to see my source code so they can rip it off and make their own product or changes and no longer need my services. yes, i understand we aren't talking about licensing here, but people in business simply don't play by the rules. what makes you think businesses won't break the law? watch the news lately?
"Sir, our revenue figures are in for our open sourced product. So far, we have made... let's se... $0.00."
"What?? What about the peripheral streams of revenue? Ads? Licensing deals?"
"The licensing deals are kaput - they just grabbed our code and called it theirs. They got too many lawyers and it would cost us millions to sue them, which would bankrupt us. The ads in the software aren't working because the Linux heads recompiled a version that hides the ads."
"Have we no intellectual property value anymore??"
"No, especially since there are now a dozen non-open source clones of our software that suspiciously look and performs like ours and Microsoft is going to build the feature into Windows anyways."
"So what now?"
"We die."
99% of the time that actually is the case. It's just that people don't go writing childish ranty articles about it on /.
No, that's certainly not why copyrights exist. Copyrights are NOT about protecting the seller. Copyrights exist to assure that the results of creative work will be available to the community after the creator has amassed some profit from it. Trade secrets are good enough to protect the seller's interests; the Coca-Cola Co. for instnace, has survived for a hundred years on trade secrets. The recipe for Coke is not copyrighted, it's a trade secret.
Should buying a pepsi bottle entitle you to the recipe as well?
Certainly, if it was copyrighted! Since they, just like Coca Cola, chose to protect their intellectual property by means of a trade secret, I don't get the formula, but, on the other hand, I'm free to reverse-engineer it, if I want.
By your logic copying movies should be legal because you're not copying the people just some mechanical product.
Yes, I believe I can copy freely anything that's protected by a secret, like the CSS encoding in DVDs, for example. However, if the creator of an intellectual work chose to publish his work openly and let it become public property after a certain period, under copyright protection, then I respect the spirit of the law and I won't copy those works as long as the copyright period holds.
I believe the spirit of copyright law should be, as stated in the US Constitution "To promote the Progress of Science and useful Arts, by securing for limited Times to Authors and Inventors the eclusive Right to their respective Writings and Discoveries".
As for making money? If anybody wants to make money, fuck them, why don't they get a job?
Something reminds me the bad word "pornography"...
Wait, how about software from startup companies? That would be certainly a case of child abuse!
So, what you suggest is wrong.
Less is more !
You know, almost no one agrees with you here. You walk into a store and hand them money for a box, you own the box and everything inside it. Copyright law prevents you from making copies of any copyrighted material, like manuals and software, but it doesn't stop you from owning a copy of the manuals and software.
If corporations are people, aren't stockholders guilty of slavery?
You can charge more for a product with included source code, with no extra effort on your part.
And Mrs. Fields could give charge extra for cookies that include the recipe. And then she could wonder why a competitor's cookies started looking and tasting so much like hers.
The cost of software production does not go up, and the price goes up, when the source is included, increasing your profit margin.
And what do you do when you find your source code posted on a warez site or a Usenet newsgroup? What's your course of action when you suspect that your competitors have started to look at your code for "inspiration"?
A license isn't worth squat if you don't have a way to audit it and enforce the terms. And that's the problem with selling source code. It's like letting your customers hold a gun to your head so long as they promise not to pull the trigger. It only takes one dishonest customer to ruin everything.
Commercial code typically comes with a license absolving the coder from all tortious liability. How about a compromise:
If you want to keep the source code secret, then you cannot contract out of tortious liability. So if your code is a big mess and causes monetary damages to the end user, they can sue you for the damages.
If you provide the source code as well, you may contract out of tortious liability, a sort of the end user has the opportunity to see the quality of the code, they take on some of the risk themselves. Whether they are able to do so is another matter, but it certainly is better for the end user than things are now.
As an analogy, software currently is like a car with a hood sealed shut, but at the same time they have a contract saying "if the car blows up or the tires fall off, you can't sue us." That's way more protection than the manufacturers of normal goods get. Under this solution, you can keep the source code secret if you want, but there's a fair trade-off.
Just my two cents.
I am so sick of people accociating having source code avaliable the same thing as free.
I personaly feel that no software should be considered copyrighted unless it is sold with its source code.
Just because the source code is open doesn't mean they can't charge for the product, sure, the linux/gnu comunity don't do it now, but they should. If I buy MS office, there should be a cd or two with source code. I shouldn't be able to get redhat for free, but if I pay for it, I should get the source code.
I don't care for free, paying other people to do things that I don't want to do, or that I can't do, is how society works. What I want, is the source code avaible to prevent abuse such as what we have seen from many vendors besides just microsoft. Also, I like the ability to control things that are mine. Weither its to tweak it, fix it, or even break it.
Free bah, I want open. And I vote with my money.
The spirit of resistance to government is so valuable on certain occasions that I wish it to be always kept alive
I know all about the Berne convention and I don't need a parasite lawyer to tell me about it, thanks.
I never said that the copyright is transferred automatically during work for hire, but I was implying that I make sure that it is when it's an issue.
The reason for this is...
The reason is that this what governments, after serious bribery by vested interests, have decided. Don't go trying to read any deeper logic into it. Your example of the carpenter demonstrates this: the nail gun is the carpenter's yet the house isn't? There is no logic to that; it's just the way the rules are written and nobody in government gives a shit what you or I think about it unless we have a few million bucks in the bank.
There has been a lot of litigation in this area. Anyone affected _should_ run (not walk) to a good IP attourney.
Getting advice from an attourney is like asking for dating tips from a whore: all the answers seem to involve you paying them money.
TWW
"Encyclopedia" is to "Wikipedia" what "Library" is to "Some people at a bus stop"
Interestingly enough, when a design is revealed, engineers take more pride in their work. It doesn't matter whether you pop the hood on your automobile or open up some piece of professional equipment, you see that someone tried to design it properly.
I'm not accusing you of holding your customer's hostage with poorly designed code, but it is quite possible that someone else is trying to do this.
If as a member of the public, you tried to get details of the bridge's construction then you may get a few goons interested. If you had a good reason, i.e. you were a qualified engineer concerned about load-bearing, then it would be quite hard for the authorities to stop you.
Open to security/functionality and standards bodies, and not freely open to the general public?
Let's apply the author's logic to another industry. Movies right now are terrible. So when I buy a DVD, I want access to all the data and design that went into the making of that film, in the package. I want the storyboards, sets, and of course, the actors. That way, if there are any scenes which annoy me, I can refilm them to my tastes. Trust me, if all of us got together (or maybe just me) and reshot Swordfish on the industry's tab (just buy the DVD!) that movie would be, like, 10000% better. OK, this analogy is a little loose, let me tighten my belt. Music? I buy an album, I want the notation, the Pro Tools session with all automation and plugins data, and of course, the unmixed audio files (only 96 kHz 24-bit, please, we're talking SOURCE here). We could all show Rick Rubin what production REALLY means! Source code just needs the one simple step of compiling to exist, so that means it is self contained and self replicating. So if we bring this analogy to cars, that means when he buys a car, he wants the FACTORY. C'mon, we all know we can make better cars than GM if we get the factory for $14,000 interest-free for 15 months! Don't get me wrong, OSS is good. Just this guy's argument for "forced" OSS, or how great it would be for all software to voluntarily be OS is faulty and IMHO misguided. He wants to have a backstage pass for every concert (His caveat: as long as he buys a ticket).
in response to how piracy would be easier I have seen numerous people trying to debunk this. well... I gots two things to say on this front...
1) it would most certainly be easier because MOST source code is significantly smaller than the compiled binaries. Don't get me wrong... this isn't always the case, but I'd say it is 99.999% of the time. You could download a multi-million line program's source in a few minutes (modem) as opposed to hours for the binary.
2) It would be impossible to implement anything similar to a CD-KEY based algorythim<sp> because it would take 10 minutes for someone to find the code and basically just reverse it. You'd have no way to enforce (or attempt to) the purchase of your software.
Jeremy Logan's Website.
I don't get what you are trying to say. Yeah sure you own a *copy* of the material. Doesn't mean you have the right to copy it and give it to your friends, nor does it entitle you to the production steps.
/. reason?
That's all I was trying to say. Perhaps a concept beyond
Tom
Someday, I'll have a real sig.
it is the right of a any programmer to make a living off his creative work. He doesn't have to show you how he made what he made or even how everything works. If it's a good product and it helps you do what you need to do, then buy it and use it. If not, don't buy it and look somewhere else for whatever you need. It's that simple. If you don't like it, don't buy it.
There is one very good reason for commercial source code to be closed - patents. A commercial organisation in the software development industry is almost certain to have inadvertently infringed on a large number of software patents. In most cases, a competitor who possesses software patents will not be able to tell there has been an infringement without source code.
The result is that, even where a commercial software company would like to open their code, they will not, particularly if they have competitors with few ethical constraints and many patents
Only in the same way that Tom Clancey's competitors can take advantage of reading his books.
Not true. My source embodies my understanding of the problem. My understanding may be different to your understanding. By reading my source you might obtain a more enlightened view of the problem. You may then be able to write code that doesn't violate my copyright but does make you my competitor.
For example, some APIs are difficult to understand. Reading good quality source that uses those APIs well is often the fastest way to understand the correct usage of the API. If it cost me X months to obtain that understanding the "hard way" it may only take you Y weeks to obtain a similar level of understanding by reading my code and "standing on my shoulders". You may then use that API in your code in a much more effective way (without violating my copyright in any way). I may not wish to give up my commercial advantage by opening my source to you.
Personally I think it would be great to spread this hard won knowledge in this way, and I do so as often as I can, but it can't apply in all situations and I'm not sure that it can apply if you want to make money from the knowledge.
I've read both articles several times now, and I don't quite get it. Is he arguing that the source should be completely open, as in published to the world, or just that the customer gets it. There seem to be hints at both in the articles. And most folks here seem to assume the former, but I think that's just their "open source is for anyone" bias.
In any case, I have a problem with letting anyone have the code. A practical one. And that is, in what form? Do they just get a big zip file - my current project consists of around 8000 source files. Good luck in working out what it does! No customer of this project is going to have a clue about any of it. And even if they hired someone to check it out, it would take them months even to begin to understand how it all works, how it's architectured.
Or are they just going to take a few files at random and see if they look pretty. Maybe they could even run some metrics on them to see if they have enough comments, etc., but we're getting into a whole different ball park now.
Also, maybe we now have to maintain two different builds: one with the magical 1% hidden, and a real one. Anyone who's ever worked on slightly different projects based on a single main source tree will back me up here, it adds a whole extra level of complexity to the build and test process.
Frankly, I don't see the benefit that this will bring to anyone, except adding extra cost to the project.
I think the objective is good, but the solution sucks!
Skiing? Check out The Independant Skiers Portal
is modding up all the people who are saying: 'Noooo! All software should not be GPL! I want some money for my work! Nooo!' By modding them up you are a)Encouraging people who have not RTFA b)Indicating that you have not RTFA c)Making me have to trawl through their comments when I am reading at +3 If you dont know what I am referring to the see point b.
'Internet! Is that thing still around?' - Homer Simpson
I read a few of the replies to this article,
Some people say yes, I agree, most seem opposed.
I wonder why that is?
Well, I agree. If copyright law was to be used as the basis for protection, perhaps we would see PAF stickers on software boxes and CD cases as companies decided that the patent system should also apply? Good that they do, I for one am entirely sick and tired of trying to live with software that does little in the way of real function, and makes a mess of my windows installation because the people who build this stuff don't care about my system. Well, I care about my system, I care if my data is secure and uncorrupted, I care every time my system crashes because some tool decided that an array could be left unterminated and boundless as it soaks up stray bits of data and eventually reaches for RAM that simply does not exist!
I say make them show us what they are telling our computers what to do. I do not like the idea that software, which is designed for online use, can contain instructions that relay information to someone I do not know, without my consent.
And I will 'put my money where my mouth is' people. I am no uber-programmer, in fact I am very nearly pathetic; but I will release the source for my projects on release as part of the package in the intall.
I have software that I will be posting on my website for free download, details will be available then.
I also invite constructive comments to the code itself. But I really think this dood is right, and I intend to at leat try to actually DO something about it instead of just warble on.
thanks for readin'
Yakkmeister
-it's complex... -But with a little sticky tape and some kleenex...
[ref: http://www.developer.com/article.php/1548611]
:
Hello,
first thanks for the nice first article. I personnaly believe that software should be free, but claiming it to be open (I'd prefer 'disclosed') is a necessary step forward, at least from a practical point of view. I would like to answer to your follow up : my opinion is that you made some step backwards and basically invalidated some of your stronger points in the original article. So here are my own answers.
Intellectual property
The claim is "Key parts of complex software systems are true intellectual property of the creators, and the owners would never open up that code". I'm wondering what is 'true' IP, and what are the others. You clearly explained that you don't protect your IP by keeping it in your safe, but by relying on copyrights and applicable laws.
There is no such thing as 'corporate secret'. Coca-Cola is well known for keeping is recipe ultra secret, and only a few blessed people are supposed to have access to it. What for ? We can reverse-engineer Coca-Cola's recipe, and have plenty of means to find an industrial process which gives the same drink. It did not stop concurrents either. I wouldn't be surprised if Pepsi actually needed more efforts to find an alternative to Coca-Cola rather than plainly copying it. Coca-Cola currently tries to hide the fact that nothing can't prevent a smart company to produce a clone and sell it. Nothing but Coca-Cola's brute marketing and intimidating force. Oh wait, yes, if Coca-Cola recipe was patented, they could prevent that. But it would be disclosed.
Similarly, there is no such thing as 'crucial algorithm'. There are only smart implementations. Reverse engineering software is extremely easy today. Clever software writers know that, and may elect to patent and thus disclose their algorithm. It's only a smart move if you are cynical : most patents are obscure descriptions vaguely desribing their purpose, and we had plenty of cases and time to realize that algorithms should not be patented (thanks Mr. Jeff Bezos for its spectacularly stupid and demonstrative patents). But I'm disgressing, I only wanted to show that you can't protect your IP until you disclose it.
Now if I get a video encoding tool, and if the source code only shows the UI part because the vendor removed the 'crucial algorithms', I'd be rather disappointed. Be sure that all vendor will consider the core of their software as 'crucial algorithm'. Be sure that the only interesting evaluation of quality can be made on this core part.
I ran in two recent exemplary situations : both Nvidia and 3DLabs disclosed some sources related to their 'shader language compilers', boasting about their transparency and such. It turns out that their code only contain front-ends. A piece of code that you can almost automatically generate from the language specs. The back-end is the core part I would like to see to make my opinion (and fix bugs, and improve, etc). But these corporations don't want that. You end up trusting them with curious metrics (for a developper) : "I'm used to Nvidia products, they usually work well".
International copyright laws
I'm an European (French to be more precise). I'm not sure how I should handle your paragraph. It basically states that countries outside the US have no laws. As a spoker from 'dark warehouses in faraway places', I can testify that we do have laws. Some even prevent people from stealing.
I'm being sarcastic because first I think you deserve it, and second because this kind of ignorance is what is playing against your 'open your software' argument. All countries (including non-democratic ones) have plenty of laws regarding copyrighted materials and IP protection.
I'm disclosing all the software I write. It only takes two steps
- I'm applying a copyright, which says who authored the code and when. This let me claim my author rights anywhere on the globe.
- I'm choosing a license which says how my material should be copied, distributed, and so on. I can do that because I'm the copyright holder. Now I juste have to find a good license which fullfills my need and is known to work in all courts (eg. http://www.gnu.org/licenses/licenses.html), or get a good lawyer write one for me.
This reminds me of the NRA fanatics behaviour : they pretend they need guns to protect themselves before even knowing - or wanting to know - how their country is protecting them and if there's any danger in the first place. This harsh comparison emphasizes two key points : there are laws that protect you (or your IP), and there are not thieves at every corner of the streets.
National Security
I would insist more heavily on this point. National Security is the last domain I would ever like to see closed software. Thinking that my national secret services rely on software which are secret to them is either a joke or a nightmare. And eminent cryptologists have made their point clear since a long time : there's no security through obscurity, only insecurity.
Already inspected
Microsoft claims to closely inspect its software, and even launched a noisy campaign along the lines last year. Are you trusting Microsoft software ? I expect to get a full panel of anwsers from "no way" to "sure".
Objective quality can only be achived via disclosure, and only if the disclosure is permanent. You can't pretend you gave the source code to a 3rd party QA company and they were OK. You must keep the inspection possible for anybody at anytime, else you can't build any trust. ISO QA certicates have provision for this : they are only valid if the contents are open and kept open.
Now subjective quality is another point : many companies have their own QA certification process and will want to do the inspection by themselves. I have seen a bunch of them.
There's no such thing as 'already inspected' software.
Open source licenses like GPL give freedom to the program by keeping it open. People don't gain anything, most barely know what code is. Developers can no longer re-sell code, whos going to want to buy it when they can already see it. So whos this helping?
Comment removed based on user account deletion
Don't confuse what I'm saying with advocating that companies should be forced to give out the source. I was disagreeing with what you said, not advocating anything. (Though companies should certainly have to give their source to the copyright office so it can be released when the copyright expires. That's the whole bargain, they get protection against copying and in return the public gets it after X years.)
If corporations are people, aren't stockholders guilty of slavery?
"the vendors might stop shipping us such lousy programs"
Actually, probably a lot would stop shipping any programs. If they didn't, they would see their market suddenly swamped by remarkably similar 'clones' of their software... The lawyers of course would love something like that, more work for them...
If you want to get higher quality programs, get a good support contract with the software maker so that they fix bug on the double when you report them.
If that is not possible with the software make you're eyeing, then switch vendor or accept the software as-is.
Support and warranty for the product that you're buying, that's how it works. There are too many 'release and run away' software releases out there, but that's the 'AS IS' sale, as clearly stated in the license. You can buy a car with a warranty, or buy it off a lot 'AS IS', same for software. You choose.
--- Hindsight is 20/20, but walking backwards is not the answer.
*Disclaimer* No I did not read the article and don't care to at this point. I'm simply going to rant based on the premise that all source should be open and the opinion that the customer should always get the source if they pay for the software. *End Disclaimer*
Contrary to popular Slashdot opinion, not everything can be labelled black or white. Should all source code be open? What are you a freakin imbecille? Hey, lets just make programming a worthless proposition by removing all value from it while we're at it!
If I spend ridiculous amounts of time learning to program and analyzing a particular business problem in order to produce quality software which adds real business value and empowers my customers to provide their services/product in a more effective and efficient way, then why should I willy nilly give them or anyone else the source to this code? I have employees, a wife and 4 kids to support, thank you very much.
I'm kind of amazed at the fact that I even have to explain this to anyone. There must be a lot of idiots in the world. Why aren't you demanding that DaimlerChrysler release all of their enginering documents and prototype information to you? After all, you bought the freakin car right?! Maybe less people would die in car accidents if YOU had access to the design and you could analyze it in your spare time right? You must be the same guy feverishly duct taping feathers on pigs.
Look man, the only people who are going to look at this code are competitors and people looking to get something of value for nothing. Yes, there are some cases where the customer might find value in reviewing the code and/or changing it. In this case, they should PAY for that priviledge and pay well. God knows all it takes is one pimply tech to copy all the code and put it on the internet for fun. At this point, my Company's hard work has been for nothing and this could lead to real people losing income and the ability to support their families. Source has value, just like the personal information that Slashdotters cry about so much. The only difference between the two is that YOU are the only one who places value on your personal information. In the case of Source Code, a whole Company of people places value on it and depends on it to keep them in business.
If you can't see why some source should be closed and remain the property of the person/company that put so much work into it then I suggest you give everything away that you consider to have value and go your merry little way!
Uhhhh, yeah, thath dithgustin. [The lady's man]
Here is another take on that topic:
the problem is that some moron pushed for and got the ability to copyright compiled binary code.
without that, if software were just like a book or painting where you can see the whole of it in front of you, the source code would have to be public for it to be copyrighted!