Posted by
michael
on from the secrets-and-lies dept.
Tim writes "Tim Bray and Microsoft's Joe Marini are doing a back-and forth on Open Source. Tim serves (open everything), Joe returns (secret-source is good business) and Tim volleys (the closed-source niche is shrinking)."
What happens when it's not secret anymore?
by
lordkuri
·
· Score: 4, Insightful
Just like the issue with MS getting source stolen. How many problems can/will arise from relying on "no one will ever see this" when everyone can see it?
Re:What happens when it's not secret anymore?
by
INetEngineer
·
· Score: 5, Insightful
Why don't we send a clincher message to people that think source code ought to be "secret", by not giving them any comments, ideas, suggestions, and/or replies, because we want to keep them "secret".
"Hey, what do you think of this software?"
"Can I see the source code?"
"No! I need to be able to sell it!"
"Oh... I think nothing of it."
"What?!"
"I'm a consultant, I need to be able to sell my opinions!"
Oh wait... then we would just be propogating the "secrets".
-- --I smoked my sig.
Re:What happens when it's not secret anymore?
by
DunbarTheInept
·
· Score: 4, Insightful
Software patents are not an inherently bad idea. What makes them bad in practice, and in the way they've been used in our legal system is two things:
1 - Software should NOT be simultaneously closed source and patented. They are two different protection schemes that are incompatable. Patents requires that you make your design and plans public and openly copyable so others can search on the patent archive and see what you're doing (and so that when you right to exclusivity ends, your idea is now in a public registry). In the case of software, that would be the source code, although pseudocode that doesn't actually compile, but merely teaches somoene how to write the software would probably fit the legal requirement (more akin to a blueprint than a cad/cam file)). The practice of allowing people to patent things based on vague fuzzy descriptions of algorithms should never have started.
2 - Patents in general (not just software) should not be allowed for ideas that are already known within the community of inventors (or programmers in this case). The Patent office doesn't bother checking this requirement anymore (or at least if they are attempting to do so they are obviously failing at it). When this isn't done, the owner of an idea ends up being the one with no scruples who decided to usurp ownership of the public idea first, rather than the one that thought of the idea first.
Fix those two problems first, and then you can talk about supporting software patents.
--
Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.
Re:What happens when it's not secret anymore?
by
AstroDrabb
·
· Score: 4, Insightful
Um.... I have one for you:
1. You are an idiot
2. You are stupid ...Choose one.
The choose one thingy doesn't always work very well does it.
For item #1, how do you know this? Has Bill G told you this? No. MS has patented _plenty_ of software and where is all the Open stuff from them? Item #2 is just stupid and unfounded. Copyright and/or a license/NDA agreement is _plenty_ to protect a company. How many competitors would get away with copyright violation against MS once they let loose their lawyers?
As was pointed out in the rebuttal (which you probably didn't read), just don't release _any_ source until you get your product with new features X, Y and Z out to market. Once your product is out, then release the code. You already have the head start and it will take a while for competitors to play catch up. Also as the rebuttal pointed out and that I can personally attest to as a senior programmer of 8 years is that is is _far_ easier to implement a feature for scratch then pick up someone else code. The worst projects I get are where I have to pick up someone else code and fix it or add new features.
-- If Tyranny and Oppression come to this land, it will be in the guise of fighting a foreign enemy. -James Madison
Re:What happens when it's not secret anymore?
by
Anonymous Coward
·
· Score: 5, Interesting
Software patents are doomed for one simple reason.
The equivalence of two Turing machines is undecidable. Turing proved this as one of the results of the halting problem. Since turing machines are equivalent to algorithms, which are equivalent to recursive functions, this is a statement in mathematics that as such should be sufficient to disallow software patents on the basis that software is a mathematical function.
Where, then, can software patents stand? By definition, patents cover a method, hence an algorithm. Since there exists no way to determine if an algorithm infringes on a given patent, the patent office must backtrack and declare that algorithms need only be *similar to* a patented algorithm to infringe. But this is also undecidable for the same reason. An incredibly complex algorithm that produces the same output, given the same input, as a patented algorithm will be intractable to compare to the patent.
The reason the patent office is spewing software patents is that it has no method for determining prior art, no method for determining functional equivalence, and no method for reasonably denying every software patent after the courts have incorrectly ruled in favor of them.
Note that if you really wish to infringe on a software patent, it will always be relatively easy.
Given a function F(x) that is patented, do the following.
Create a function G(x,y) where y is meaningless, random, or in some way constructed from x such that applying G to x,y is equivalent to applying F to x. If necessary, encode x as y and apply H to y such that H(y) is equivalent to F(x). No patent court will be able to prove the equivalence. Should they rule that simply because two functions *produce similar (not exact, that is intractable) output, despite being vastly dissimilar*, they will have contradicted the very spirit and letter of patent law. The whole point was to issue patents for *specific* methods and devices, and encourage derivations thereof by other inventors. Such is progress. Owning the result of applying a mathematical function to all possible inputs is not progress, it is the darkest feudalism.
Re:What happens when it's not secret anymore?
by
theLOUDroom
·
· Score: 4, Insightful
2 - Patents in general (not just software) should not be allowed for ideas that are already known within the community of inventors (or programmers in this case). The Patent office doesn't bother checking this requirement anymore (or at least if they are attempting to do so they are obviously failing at it). When this isn't done, the owner of an idea ends up being the one with no scruples who decided to usurp ownership of the public idea first, rather than the one that thought of the idea first.
Fix those two problems first, and then you can talk about supporting software patents.
The trouble is problem #2 isn't fixable.
Maybe when that patent office was created it made sense to have one organization the would claim to understand EVERY TECHNOLOGY ON THE PLANET in enough detail to decide if an invention is novel, but I submit that idea has become totally unworkable.
Instead, the patent office should admit what it has already become, a registry of "I invented this on this date." The presumption that a patent is valid because it has been rubberstamped by the patent office should be ceased immediately.
The validty of specfic patents can then be determined in court, as necessary, where both sides of the issue can call real experts from those fields.
My code is meant to be secret. If anyone ever saw it, I'd be ridiculed for my terrible coding style and lack of programming prowess. I don't think I could survive the shame.
I am a huge proponent of open-source, but...
Writing code isn't a trivial process. Writing good code is extremely difficult, and I feel is a skill that should be well compensated for.
Re:Open/Closed
by
Apathetic1
·
· Score: 4, Interesting
I've written a few contracts. I'm not a professional developer by any means (I'm a student at the moment) but when I sell software, the code is included. I don't license under the GPL but I do stipulate that they can use it, modify it and distribute it internally as they see fit, making it clear that they can only expect free support if they are using an unmodified version. My customers were happy because they could make changes if they needed to and I was happy because I've still been well compensated.
It's not Open Source in terms of OSI or FSF but it's better than giving them nothing but a black-box binary.
--
My username does not make me Apathetic. It's irony, get it?
Re:Open/Closed
by
Camel+Pilot
·
· Score: 4, Informative
sorry I was terse and not clear.
McBride wanted to somehow classify the GPL as anti-copyright since there is no payment exchange or financial gain by the holders. Of course a monkey could see thru McBides twisted logic.
Linus adroitly pointed out that the term 'financial gain' that is used in us copyright includes receipt, or expectation of receipt, of anything of value, including the receipt of other copyrighted works. this means that some coders prefer to be compensated by getting access to a larger body of code in exchange for contributing their code.
Apple is doing pretty good by taking the middle road. Kernel, BSD utils, and compiler are open-source; graphics, window manager, IDE and apps are closed-source.
--
-- "Open source is good." - Steve Jobs
"Open source is evil." - Microsoft
Re:Half-and-half
by
Desert+Raven
·
· Score: 4, Insightful
Apple's doing well with it because they didn't have to *pay* to have it developed. I'm not saying that's wrong, but you certainly have to agree that taking something someone else wrote and modifying it is a whole load cheaper than paying umpteen developers to write the whole thing from scratch.
Note that the parts of OSX they *did* write from scratch, they didn't open the source on.
Apple's a good example of how a company can succeed by taking advantage of other people's generosity. But they are *not* a good example of how a company can succeed by *being* generous.
Re:Half-and-half
by
0racle
·
· Score: 4, Insightful
They paid for NeXT. NeXT is the basis for OS X, not BSD. Apple, NeXT and just about everyone else wrote really important parts of the mach kernel, and instead of taking damn near forever to write everything from scratch took advantage of the microkernel architecture and turned some BSD networking into a subsystem.
Incidentally, using BSD licenced code in this way is not 'taking advantage of' in the negative sence that that phrase implies, but it is making use of it in the way the programmers intended. They have also given back many improvments they have made, something that is not required with the BSD licence.
-- "I use a Mac because I'm just better than you are."
Is Some Software Meant to be Secret?
by
JohnGrahamCumming
·
· Score: 4, Interesting
This discussion was interesting but it ends very unconvincingly. Tim argues that Quark shouldn't have been closed source without much justification but then says that it's ok for iChat and Aqua to be closed.
One alternative is that a company that's developing code could decide to release their old code after some time has elapsed. For example, surely it wouldn't hurt Microsoft if they GPLed Windows 95. No one's going to create a competitive product from it, and if they removed their trademarks from it, they could free it and allow others to maintain it.
Perhaps Quark could have waited until competitors caught up and then released the special code under the GPL. They could even use the GPL to undermine a competitor. e.g. once feature X is no longer their big advantage, release it, let an open source solution implement it and then they can bash their competitors by saying: we've got feature Y which no one else has and feature X, that's just a freebee, what you need is Y.
John.
Text of joemarini.com link
by
Anonymous Coward
·
· Score: 5, Informative
Some Things are Meant to be Secret
I was reading an interesting post by Tim Bray today about how he thinks everything should be open.
Now, most of my experience is in the packaged software world and not that of IT departments in big companies, so my view is somewhat different than his. I can understand why a customer company that is basing its business of a piece of software might want the right to look inside it to see what is going on, but that doesn't necessarily mean that it's a great idea across the rest of the software industry.
Here's why - when you develop a piece of packaged software, sometimes you only have a short amount of time to establish your product as a viable entity in the marketplace. If your competitors could just look inside your source code to see how you accomplished a certain feature that their product doesn't provide, then your fledgling product would be neutralized almost instantly.
When I worked at Quark, we had a heated rivalry with Aldus Corp (now Adobe) and their product, PageMaker. Quark introduced several key desktop publishing features in version 3.0 that essentially cemented our lead over PageMaker in the DTP market. Had Aldus been able to get a hold of our source code, Quark's trade secrets, along with the enormous amount of money we had invested in R&D to develop QuarkXPress 3 would have been for naught. Aldus would simply have copied our algorithms and updated their product to match ours.
I can go on and on with these examples - Dreamweaver, for example, had a fantastic feature whereby it would preserve the source code formatting that an HTML developer typed in. FrontPage didn't have it. GoLive didn't have it. PageMill didn't have it. NetObjects Fusion didn't have it. We spent a lot of time and money developing that feature, and it ended up being a key competitive advantage for us.
Now imagine that you're the one competing with somebody like Macromedia, or Adobe, or IBM. You have a great idea for a product, you've done your market research, and you want to make a go of it. Now imagine telling potential investors and customers that yes, because your product is Open Source, anybody can read the code and see how you solved a particularly prickly problem that up until now nobody else has tackled well. How much investment capital do you think you'll get? How many customers?
Tim says that "the days when the recipe for success included wrapping the engineering in a veil of secrecy, those days are gone". I don't agree - I think that this is one area where the very idea of Open Source just falls flat on its face. Tim, how do you protect your competitive advantage when your competitors can just look at your source code and cherry-pick the best ideas? Not every company in the world can just become a services company and compete on price. There's a reason why it's called "intellectual property."
Re:Text of joemarini.com link
by
dgatwood
·
· Score: 5, Insightful
Now, most of my experience is in the packaged software world and not that of IT departments in big companies, so my view is somewhat different than his. I can understand why a customer company that is basing its business of a piece of software might want the right to look inside it to see what is going on, but that doesn't necessarily mean that it's a great idea across the rest of the software industry.
Here's why - when you develop a piece of packaged software, sometimes you only have a short amount of time to establish your product as a viable entity in the marketplace. If your competitors could just look inside your source code to see how you accomplished a certain feature that their product doesn't provide, then your fledgling product would be neutralized almost instantly.
There are three problems with that argument:
All software can be trivially recreated. If a company wants a feature, they don't need to steal your company's code. It wouldn't do them a bit of good because the time to integrate your code into theirs for almost any feature is almost always greater than the time needed to write it from scratch. The rare exceptions are large features that are almost completely stand-alone tools, in which case even then, the amount of trouble they would get into for stealing it costs far more than writing it themselves.
There is no such thing as a product that businesses don't depend on. And even individual users want some control over their software---at the very least, some assurance that the company won't just abandon it after they've spent hundreds of their hard-earned dollars to buy the program only to find a dozen bugs that they can't work around.
There are very few "particularly prickly" problems anymore outside of the academic world. Commercial software development is difficult because of the difficulty of debugging such large pieces of code. There probably hasn't been a "really prickly" algorithmic problem solved (with the possible exception of game development) in the general-user commercial programming world in two decades, and algorithmic problems are the only ones that closed source really protects. For any other features (like "ooh, that's a cool way to integrate those tools" or "ooh, it keeps the line formatting when parsing HTML") can be trivially rewritten by a programming team of sufficient competence simply looking at what it does and coming up with a good architectural design that supports all of the desired features... usually in a matter of hours or minutes unless it's a really large feature.
The only place where your argument would be valid -might- be in areas like 3-D modeling/animation, audio/video/data compression, and audio/video effects processing, since there's still some algorithmic work being done in those narrow fields. That said, those things make up only a very tiny percentage of software development, and most of it will never be used by the general public (outside of games).
Re:Text of joemarini.com link
by
Rinikusu
·
· Score: 4, Insightful
1. Then why don't they do it? The GIMP still does not have all these "trivial" features that Photoshop has, and likely will never, either. If it's so "trivial", then why aren't we seeing feature and ease-of-use parity between Open Source products and their closed source counterparts? In some software segments, yes (Apache, Tomcat, etc). In others, you don't. Maybe it's simply a matter of time and money vs. the ability or desire of a particular person to give away their work for free, but obviously, it's by no means a trivial problem. Programmatically speaking, maybe, but in practicality, getting someone to do all that hard work for basically "nothing" (except pride?), well, you've got a long row to hoe.
2. It completely depends upon the software, as well. But being Open Source does not guarantee that software will be well-supported or abandoned by the developers, either. See sourceforge. Yes, by having the source code, you might can take over and make your changes, if you have the technical know-how or even the desire to do it. Or you have to pay someone to do it. If you're paying for someone else to do it, really, why does a company care if the solution is open source or closed source? $600 for photoshop, one time license (depends upon how many artists you have) vs 65k/year for house programmer/contractor to produce work that you cannot really profit from (sell it once, but give away the source, that's the last sale you'll probably make).
3. Again, who's paying for that programming team? You seem to think there's an infinite supply of interested people working on these type of problems. There's not. I've found that even WITH the incentive of a great salary that I still couldn't bear to write software that I wasn't interested in. But the point it, to get that team of programmers, you have to assemble of group of interested, technically proficient programmers, and for many problems, that's going to cost you money because only money makes them interested.:P
-- If you were me, you'd be good lookin'. - six string samurai
I can't say I'm too interested in the debate -- nothing new here, folks -- but I do like the reference Tim Bray made to Joel Spolsky's essay Things You Should Never Do, Part 1 about the dangers of rewriting code from scratch instead of trying to work with the existing code base. It's an old piece, but I hadn't come across it yet, and I like what he says. Go give it a read, then enjoy your weekend.
Eric
See Wiliam Shatner on my cereal box (soon to be updated)
Some secrets are counter productive...
by
DeVilla
·
· Score: 4, Funny
Take Joe's web page. It's so secret that I can't even read it. To many people are trying to veiw it right now. Of course, the secret would be better served if he had been more selective about who he let's in, instead of just setting a number of people who would be in on what he had to say.
More seriously, if a company can't beat a competing product by releasing open source, then I would assume the microsoft web server would be better and more popular than any open source web server. However, that doesn't seem to hold. Perhaps Joe has a response to that on his page. I'll have to wait until his (closed source) web server recovers to see.
Too black-and-white.
by
k98sven
·
· Score: 4, Insightful
I don't think there is any question. Open and closed source will both be around for the forseeable future.
To what extent is a different matter.
As long as there are people (and this would be the vast majority today) who care less about what license their software has than how well it does the job, then there will always be a market for closed-source software. On the condition that it is better than the available OSS solutions.
I think OSS will play this kind of role in the future, providing everybody with a basic set of software, and upping the ante for the quality of commercial software.
Commercial software on the other hand, will increasingly be for those who need and are willing to pay for the improved quality it offers. (and will per definition be forced to offer in order to exist)
Scientists (open) vs Businessmen (closed)
by
GillBates0
·
· Score: 4, Insightful
Open Knowledge, Free Information, Sharing of Ideas, Open Source....call it what you want to....has been around since the longest time, and is responsible for the scientific progress, technology and advancement that we're enjoying today.
Closed Source, Trade Secrets, Intellectual Property, etc are an outcome of relatively recent business practices and have been artificially created in order to promote innovation through monetary profit and other forms of compensation for individuals and additionally competitive advantage in the case of corporations.
To sum it up, Open knowledge is essential for overall, longterm technological progress, while Closed knowledge is useful in promoting short term business gains.
Talk to a scientist, and they'll support Open knowledge...talk to a businessman, and they'll argue for closely guarded trade secrets
-- An Indian-American Hindu committed to non-violent thought/speech/action alarmed by the global explosion of radical Islam
Simple solution
by
YouHaveSnail
·
· Score: 5, Insightful
The simple solution to this problem/debate, and really the only solution, is to let the market decide in each case. There are many markets where a proprietary solution may in fact be the best solution, and there are others where open source, communally developed software is more likely to succeed.
A good example is the games market. Developing compelling games is a lot of work (just ask the poor schlubs over at EA). Some games are written as a labor of love and may be released as open source projects. Far more often, though, games are produced like movies, using expensive resources and labor. And they often have to be produced on a tight schedule for marketing reasons, so that their release coincides with the release of some movie or holiday buying season or whatever. For these reasons, there are few if any open source games out there, and I don't see that changing anytime soon.
Obviously, there are also many areas in which open source products are kicking the proprietary competition's collective ass. These are usually products which work best if they can run on multiple platforms, meet the needs of lots of different people in different situations, and provide enough value that smart people are willing to spend their time improving and customizing them. Linux, Apache, PHP, etc.
So lets stop worrying about whether open source software is better than proprietary software in all cases or vice versa. It's pretty clear that both bring value to our society and to our economy. Lets instead keep improving the ways we develop products under both systems, and make sure that we maintain an infrastructure that works for both. Software patents are a dumb and harmful idea, but copyright is important and should be respected and protected. Open standards are essential to vibrant markets and useful tools, and we should insist on vendor-neutral bodies to develop and maintain them.
On the contrary
by
eobanb
·
· Score: 5, Insightful
But they are *not* a good example of how a company can succeed by *being* generous
How do you figure? Apple's given a lot back to the open source community, especially in terms of user interface and networking. Yes, Apple used to be very unfriendly to open source, but now it's just as easy to dual boot a Mac with Mac OS X and Linux as it is with a PC. And Apple even directly controls the hardware. But back to software; Apple basically re-wrote KHTML for Safari, and then gave it all back to KDE. Rendezvous is also an important project, largely under Apple direction, that probably wouldn't have otherwise caught on.
And don't even get me started on user interface. Apple might not have contributed to this directly, but have you ever stopped to think how much of Gnome and GTK+ is influenced by the Mac OS? Cosmetically, the two are becoming more alike all the time. Example: GTKFileSelection really really sucked. But then Gnome took an idea straight from Mac OS X and brought us GTKFileChooser, which is way more intuitive and easy to use.
In the future, it'll all be even more prevalent. Jabber is coming to iChat in Tiger, for example. It seems like most, if not all, improvements Apple makes to open source libraries/programs all gets given back to the open source community, which is way more than can be said for a lot of other companies.
So stop bitching.
--
Take off every sig. For great justice.
Re:On the contrary
by
zurab
·
· Score: 4, Interesting
Apple has given a lot back to the OSS, but you misrepresent several points:
Yes, Apple used to be very unfriendly to open source, but now it's just as easy to dual boot a Mac with Mac OS X and Linux as it is with a PC.
And what, exactly, did they give out as open source with that? Yes, you can boot Linux on a Mac; you can also do it on a mainframe, Sparcstation, and everybody's microwave. i.e., at the most they are on par with everyone else - not hindering != being generous and giving, unless that's your definition of the word.
Apple basically re-wrote KHTML for Safari, and then gave it all back to KDE.
They didn't rewrite anything. Apple chose KHTML as their rendering engine for their new Safari web browser and contributed their fixes and modifications back. Yes, they could have chosen Gecko, or written another one from scratch, but they chose KHTML because they liked it better. KHTML is licensed under LGPL - anyone who receives the Safari binaries has a right to ask for the modified KHTML source. Apple is contributing their bug fixes and additions that they are required to disclose under LGPL.
Presumably, they are being very nice and collaborative about it and I am not in any way trying to portray them in a bad light for the way they are doing this. But it's nowhere close to what you claim about rewriting the whole engine and giving back out of generosity.
And don't even get me started on user interface. Apple might not have contributed to this directly, but have you ever stopped to think how much of Gnome and GTK+ is influenced by the Mac OS?
I don't know how this relates to generosity - would they start suing GNOME developers or users if they were not acting "generous?" MS Windows has also influenced KDE and GNOME and various application GUIs - you could then argue that MS has been just as, or even more generous with the OSS in this regard.
So, yes, Apple has contributed Darwin and Rendevouz when they didn't have to, they are being helpful with providing fixes in KHTML (which they would eventually have to), but you don't want to blow some things out of proportion.
Re:I think the point has been made. . .
by
ad0gg
·
· Score: 4, Funny
Its not getting a slashdotting. He's running win2K workstation instead of server and is only allowed 5 connections on IIS. Thats why IIS error message is very responsive and says forbidden and not a Server 500 error.
The interesting thing about Spolsky's essay -- and I think it's a very good piece -- is that its principle example is what a big mistake Netscape made by deciding to re-write Mozilla from scratch.
In fact, he calls that "the single worst strategic mistake that any software company can make."
Excuse me while I piss my pants laughing. Ok... I'm back now.
That statement sheds light on another difference between one sort of software developer and another. It's not necessarily a matter of open vs closed source; it's a matter of intent. Spolsky sees Netscape's decision as disastrous, and from his perspective, he's right -- Netscape's stock went down the toilet and they lost millions.
But from another perspective, it was the perfect decision. They through out a bunch of lousy code that Andreeson wrote as an undergrad and replaced it with a real architecture. As it stands, that architecture has allowed the Mozilla foundation to produce Firefox. There's no doubt in my mind that if they were still working with Andreeson's hacked pile of crap, Firefox wouldn't have happened, IE would be the only web browser for Windows and the rest of us would be using Konqueror. And maybe Netscape's executive would have a few billion bucks more.... more power to them I guess, but speaking for myself, I'm glad they "screwed up!"
What I'm getting at is that if you think that the reason to develop software is to make a shitload of money, there are times when closed source is the best way to go. But if you think that the reason to develop software is to make the best software you can for joy or fame or the betterment of your fellow humans, then open source is almost always the right way to do it.
Relationships, relationships, relationships,...
by
plopez
·
· Score: 4, Insightful
What makes a successful company? Good customer relationships.
I too have work for large organizations, and the traditional B2B relatioship was to give the open source to the client. It was licensed, patened, copy righted etc. but we still had the source which our in-house staff (I was one of them) could modify to meet our customized needs. With the understanding that we would have to support our own mods.
If our mods were good, the vendor would essentially buy us out by giving us discounts, free training classes etc. and take over the supporting the modfication, which was then rolled out to other clients. Sure we could have ripped off their code, but it was in our own best interest not to. The vendor, by licensing the code over a broad number of clients created a cost sharing situation. And they were pleasent to work with.
How did the vendor succeed? By building a good working relationship with the customer. It is all about relationships. This is something MS and other closed source vendors never understand. Especially when they have a monopoly and they can abuse the customer with impunity.
The closed source approach really did not start until the 80's when world+dog thought that the path to fortune was in building proprietary closed source software. It is an anomoly which is slowly shrinking.
Closed source is also product based, which really does not make sense for software as it is an industrial paradigm. Software is more of a service, and open source is more service oriented than closed source (IBM understands this). It is the level of service on which you will win in the long run. Anything else is a short-term anomoly.
-- putting the 'B' in LGBTQ+
One of us should re-read the essay
by
ccoakley
·
· Score: 4, Insightful
Nothing Spolsky says in his essay would have prevented Firefox, nor the better Mozilla codebase. He simply says not to rewrite from scratch. He never says anything about refactoring or improving the existing codebase. Version 2 may not have any code in common with Version 1, but throughout the development process there were feature improvements, architectural improvements, etc. The point is that by starting with a working version 1, even an ugly version 1, if the decision was made to release early, it would have been possible. Once you have something running, don't throw it away.
Of course, there is an old adage, "All absolute statements are wrong, including this one."
I don't mean to debate the accuracy of what he said, just that the interpretation you have is different than my interpretation. However, I do know that my productivity is higher when I modify a working program than when I start over. If the architecture is *really* bad, I could see where it might actually be beneficial to start over, but I think programmers have a tendency to overestimate how unworkable the current system is when the chance to rewrite from scratch appears.
-- Network Security: It always comes down to a big guy with a gun.
MS source got much better recently
by
roystgnr
·
· Score: 4, Insightful
Sure, you would have been correct in May 2002, when Microsoft exec Jim Allchin testified that releasing their source code would endanger national security. I mean, surely there's no way a Microsoft executive would perjure himself to try and keep his company from being penalized for its crimes!
However, Microsoft fixed all these security problems by January 2003, when they had their source code cleaned up enough to show to 60 countries including China. So you shouldn't spread any more of these scurrilous rumors; why, that would imply that Microsoft would commit treason just to try and increase foreign revenues!
Just like the issue with MS getting source stolen. How many problems can/will arise from relying on "no one will ever see this" when everyone can see it?
My code is meant to be secret. If anyone ever saw it, I'd be ridiculed for my terrible coding style and lack of programming prowess. I don't think I could survive the shame.
I am a huge proponent of open-source, but... Writing code isn't a trivial process. Writing good code is extremely difficult, and I feel is a skill that should be well compensated for.
Apple is doing pretty good by taking the middle road. Kernel, BSD utils, and compiler are open-source; graphics, window manager, IDE and apps are closed-source.
--
"Open source is good." - Steve Jobs
"Open source is evil." - Microsoft
This discussion was interesting but it ends very unconvincingly. Tim argues that Quark shouldn't have been closed source without much justification but then says that it's ok for iChat and Aqua to be closed.
One alternative is that a company that's developing code could decide to release their old code after some time has elapsed. For example, surely it wouldn't hurt Microsoft if they GPLed Windows 95. No one's going to create a competitive product from it, and if they removed their trademarks from it, they could free it and allow others to maintain it.
Perhaps Quark could have waited until competitors caught up and then released the special code under the GPL. They could even use the GPL to undermine a competitor. e.g. once feature X is no longer their big advantage, release it, let an open source solution implement it and then they can bash their competitors by saying: we've got feature Y which no one else has and feature X, that's just a freebee, what you need is Y.
John.
Some Things are Meant to be Secret
I was reading an interesting post by Tim Bray today about how he thinks everything should be open.
Now, most of my experience is in the packaged software world and not that of IT departments in big companies, so my view is somewhat different than his. I can understand why a customer company that is basing its business of a piece of software might want the right to look inside it to see what is going on, but that doesn't necessarily mean that it's a great idea across the rest of the software industry.
Here's why - when you develop a piece of packaged software, sometimes you only have a short amount of time to establish your product as a viable entity in the marketplace. If your competitors could just look inside your source code to see how you accomplished a certain feature that their product doesn't provide, then your fledgling product would be neutralized almost instantly.
When I worked at Quark, we had a heated rivalry with Aldus Corp (now Adobe) and their product, PageMaker. Quark introduced several key desktop publishing features in version 3.0 that essentially cemented our lead over PageMaker in the DTP market. Had Aldus been able to get a hold of our source code, Quark's trade secrets, along with the enormous amount of money we had invested in R&D to develop QuarkXPress 3 would have been for naught. Aldus would simply have copied our algorithms and updated their product to match ours.
I can go on and on with these examples - Dreamweaver, for example, had a fantastic feature whereby it would preserve the source code formatting that an HTML developer typed in. FrontPage didn't have it. GoLive didn't have it. PageMill didn't have it. NetObjects Fusion didn't have it. We spent a lot of time and money developing that feature, and it ended up being a key competitive advantage for us.
Now imagine that you're the one competing with somebody like Macromedia, or Adobe, or IBM. You have a great idea for a product, you've done your market research, and you want to make a go of it. Now imagine telling potential investors and customers that yes, because your product is Open Source, anybody can read the code and see how you solved a particularly prickly problem that up until now nobody else has tackled well. How much investment capital do you think you'll get? How many customers?
Tim says that "the days when the recipe for success included wrapping the engineering in a veil of secrecy, those days are gone". I don't agree - I think that this is one area where the very idea of Open Source just falls flat on its face. Tim, how do you protect your competitive advantage when your competitors can just look at your source code and cherry-pick the best ideas? Not every company in the world can just become a services company and compete on price. There's a reason why it's called "intellectual property."
I can't say I'm too interested in the debate -- nothing new here, folks -- but I do like the reference Tim Bray made to Joel Spolsky's essay Things You Should Never Do, Part 1 about the dangers of rewriting code from scratch instead of trying to work with the existing code base. It's an old piece, but I hadn't come across it yet, and I like what he says. Go give it a read, then enjoy your weekend.
EricSee Wiliam Shatner on my cereal box (soon to be updated)
Take Joe's web page. It's so secret that I can't even read it. To many people are trying to veiw it right now. Of course, the secret would be better served if he had been more selective about who he let's in, instead of just setting a number of people who would be in on what he had to say.
More seriously, if a company can't beat a competing product by releasing open source, then I would assume the microsoft web server would be better and more popular than any open source web server. However, that doesn't seem to hold. Perhaps Joe has a response to that on his page. I'll have to wait until his (closed source) web server recovers to see.
I don't think there is any question. Open and closed source will both be around for the forseeable future.
To what extent is a different matter.
As long as there are people (and this would be the vast majority today) who care less about what license their software has than how well it does the job, then there will always be a market for closed-source software. On the condition that it is better than the available OSS solutions.
I think OSS will play this kind of role in the future, providing everybody with a basic set of software, and upping the ante for the quality of commercial software.
Commercial software on the other hand, will increasingly be for those who need and are willing to pay for the improved quality it offers.
(and will per definition be forced to offer in order to exist)
Closed Source, Trade Secrets, Intellectual Property, etc are an outcome of relatively recent business practices and have been artificially created in order to promote innovation through monetary profit and other forms of compensation for individuals and additionally competitive advantage in the case of corporations.
To sum it up, Open knowledge is essential for overall, longterm technological progress, while Closed knowledge is useful in promoting short term business gains.
Talk to a scientist, and they'll support Open knowledge...talk to a businessman, and they'll argue for closely guarded trade secrets
An Indian-American Hindu committed to non-violent thought/speech/action alarmed by the global explosion of radical Islam
The simple solution to this problem/debate, and really the only solution, is to let the market decide in each case. There are many markets where a proprietary solution may in fact be the best solution, and there are others where open source, communally developed software is more likely to succeed.
A good example is the games market. Developing compelling games is a lot of work (just ask the poor schlubs over at EA). Some games are written as a labor of love and may be released as open source projects. Far more often, though, games are produced like movies, using expensive resources and labor. And they often have to be produced on a tight schedule for marketing reasons, so that their release coincides with the release of some movie or holiday buying season or whatever. For these reasons, there are few if any open source games out there, and I don't see that changing anytime soon.
Obviously, there are also many areas in which open source products are kicking the proprietary competition's collective ass. These are usually products which work best if they can run on multiple platforms, meet the needs of lots of different people in different situations, and provide enough value that smart people are willing to spend their time improving and customizing them. Linux, Apache, PHP, etc.
So lets stop worrying about whether open source software is better than proprietary software in all cases or vice versa. It's pretty clear that both bring value to our society and to our economy. Lets instead keep improving the ways we develop products under both systems, and make sure that we maintain an infrastructure that works for both. Software patents are a dumb and harmful idea, but copyright is important and should be respected and protected. Open standards are essential to vibrant markets and useful tools, and we should insist on vendor-neutral bodies to develop and maintain them.
But they are *not* a good example of how a company can succeed by *being* generous
How do you figure? Apple's given a lot back to the open source community, especially in terms of user interface and networking. Yes, Apple used to be very unfriendly to open source, but now it's just as easy to dual boot a Mac with Mac OS X and Linux as it is with a PC. And Apple even directly controls the hardware. But back to software; Apple basically re-wrote KHTML for Safari, and then gave it all back to KDE. Rendezvous is also an important project, largely under Apple direction, that probably wouldn't have otherwise caught on.
And don't even get me started on user interface. Apple might not have contributed to this directly, but have you ever stopped to think how much of Gnome and GTK+ is influenced by the Mac OS? Cosmetically, the two are becoming more alike all the time. Example: GTKFileSelection really really sucked. But then Gnome took an idea straight from Mac OS X and brought us GTKFileChooser, which is way more intuitive and easy to use.
In the future, it'll all be even more prevalent. Jabber is coming to iChat in Tiger, for example. It seems like most, if not all, improvements Apple makes to open source libraries/programs all gets given back to the open source community, which is way more than can be said for a lot of other companies.
So stop bitching.
Take off every sig. For great justice.
Its not getting a slashdotting. He's running win2K workstation instead of server and is only allowed 5 connections on IIS. Thats why IIS error message is very responsive and says forbidden and not a Server 500 error.
Have you ever been to a turkish prison?
The interesting thing about Spolsky's essay -- and I think it's a very good piece -- is that its principle example is what a big mistake Netscape made by deciding to re-write Mozilla from scratch.
In fact, he calls that "the single worst strategic mistake that any software company can make."
Excuse me while I piss my pants laughing. Ok... I'm back now.
That statement sheds light on another difference between one sort of software developer and another. It's not necessarily a matter of open vs closed source; it's a matter of intent. Spolsky sees Netscape's decision as disastrous, and from his perspective, he's right -- Netscape's stock went down the toilet and they lost millions.
But from another perspective, it was the perfect decision. They through out a bunch of lousy code that Andreeson wrote as an undergrad and replaced it with a real architecture. As it stands, that architecture has allowed the Mozilla foundation to produce Firefox. There's no doubt in my mind that if they were still working with Andreeson's hacked pile of crap, Firefox wouldn't have happened, IE would be the only web browser for Windows and the rest of us would be using Konqueror. And maybe Netscape's executive would have a few billion bucks more.... more power to them I guess, but speaking for myself, I'm glad they "screwed up!"
What I'm getting at is that if you think that the reason to develop software is to make a shitload of money, there are times when closed source is the best way to go. But if you think that the reason to develop software is to make the best software you can for joy or fame or the betterment of your fellow humans, then open source is almost always the right way to do it.
What makes a successful company? Good customer relationships.
I too have work for large organizations, and the traditional B2B relatioship was to give the open source to the client. It was licensed, patened, copy righted etc. but we still had the source which our in-house staff (I was one of them) could modify to meet our customized needs. With the understanding that we would have to support our own mods.
If our mods were good, the vendor would essentially buy us out by giving us discounts, free training classes etc. and take over the supporting the modfication, which was then rolled out to other clients. Sure we could have ripped off their code, but it was in our own best interest not to. The vendor, by licensing the code over a broad number of clients created a cost sharing situation. And they were pleasent to work with.
How did the vendor succeed? By building a good working relationship with the customer. It is all about relationships. This is something MS and other closed source vendors never understand. Especially when they have a monopoly and they can abuse the customer with impunity.
The closed source approach really did not start until the 80's when world+dog thought that the path to fortune was in building proprietary closed source software. It is an anomoly which is slowly shrinking.
Closed source is also product based, which really does not make sense for software as it is an industrial paradigm. Software is more of a service, and open source is more service oriented than closed source (IBM understands this). It is the level of service on which you will win in the long run. Anything else is a short-term anomoly.
putting the 'B' in LGBTQ+
Nothing Spolsky says in his essay would have prevented Firefox, nor the better Mozilla codebase. He simply says not to rewrite from scratch. He never says anything about refactoring or improving the existing codebase. Version 2 may not have any code in common with Version 1, but throughout the development process there were feature improvements, architectural improvements, etc. The point is that by starting with a working version 1, even an ugly version 1, if the decision was made to release early, it would have been possible. Once you have something running, don't throw it away.
Of course, there is an old adage, "All absolute statements are wrong, including this one."
I don't mean to debate the accuracy of what he said, just that the interpretation you have is different than my interpretation. However, I do know that my productivity is higher when I modify a working program than when I start over. If the architecture is *really* bad, I could see where it might actually be beneficial to start over, but I think programmers have a tendency to overestimate how unworkable the current system is when the chance to rewrite from scratch appears.
Network Security: It always comes down to a big guy with a gun.
Sure, you would have been correct in May 2002, when Microsoft exec Jim Allchin testified that releasing their source code would endanger national security. I mean, surely there's no way a Microsoft executive would perjure himself to try and keep his company from being penalized for its crimes!
However, Microsoft fixed all these security problems by January 2003, when they had their source code cleaned up enough to show to 60 countries including China. So you shouldn't spread any more of these scurrilous rumors; why, that would imply that Microsoft would commit treason just to try and increase foreign revenues!