is a style of software licensing and distribution, related to FreeSoftware
(see also FreeSoftwareVsOpenSource
The consumer of an open source program has the rights to do the following things to the source code:
- read it
- use it
- modify it
- distribute it
- charge money for services related to it, such as copying or support, so long as they do not infringe on the freedoms of others
Open source isn't PublicDomain
. That means there is a license involved and the license has restrictions, which can include:
- distribution must be free
- modifications must be distributed
- original authors must be acknowledged (i.e. the BerkeleyStandardDistribution license, although the advertising clause has been rescinded July 22, 1999.)
- derivatives must be similarly licensed (i.e. the GnuGeneralPublicLicense)
Licenses vary considerably on which of and how these restrictions apply. FrankHecker?
has written (draft 20000620) a clear (though long) piece that explains the variations.
Depending on the Software, there are quite a long list of licenses involved in OpenSource
, author of TheCathedralAndTheBazaar
commentary, and others have founded an organization and site to promote the concept.
Potential down- and upsides to OpenSource
- Anyone can sell the software without having to give a penny to the original programmer(s).
- However, the OpenSource programmer
- is not tied to a particular employer, so can program what makes their heart sing.
- is free to offer consulting (and special client customizing) services on the open market, like e.g. on the OpenMarket? at SourceForge, where s/he will be in a unique position.
- is free to buy domain-names that represent their programming ideas, which they develop openly in the community, thus getting more exposure than by million-dollar marketing campaigns, with the consequent opportunities to sell/rent/lease these domains for more profit than they would earn as employees. As a real example, you can start to program StocksAtHome?, DomainsAtHome? in analogy to SetiAtHome just right now. Contact here or via the open WikiTrails: ExtremeOpenBusiness or the (to be created) ExtremeOpenProgramming. -- FridemarPache
- Home users aren't going to pay hundreds of dollars for an OpenBSD .ISO, when s/he can quite legitimately get it for a free download or from a competing shop for a few bucks (though businesses are likely to purchase in order to have expert support).
- OpenExpertSupport? can be superior to ConventionalExpertSupport? (due to avoiding the hotline bottleneck)
- Not every conceivable product is available in open source. It requires that enough programmers share an itch that the user may have.
- The more OpenSource operates as an ExtremeOpenBusiness, the more likely to fill in the gaps.
- Something comparable to MicrosoftAccess, consisting of a NimbleDatabase engine, ODBC interfaces, and GUI tools (OpenOfficeBase is still too immature).
- Part of the theory behind open source is that if it were really a big enough gap, someone would do something about it. Either this theory is wrong or this gap is not really as much of a gap as you think it is. This has already been discussed somewhat on NimbleDatabase, but I think the general attitude among users of open source software is that things like Berkeley DB and mySQL+phpMyAdmin are good enough and nimble enough (for some definition of "nimble") that there really isn't much impetus to create something that is closer to Access per se. (In fact, in the open source world there is more respect than in the commercial world for the PowerOfPlainText; in some sense, the open source hacker's idea of a nimble database is more likely to be tab-delimited text files and sed/awk/perl.)
- Those DB's listed do not fit the definition of "nimble", and plain-text may be good for inter-process or inter-system communication, but is often lousy at interacting with tabular information. How would you like to use a command-prompt-only spreadsheet, for example?
- See TableOrientedToolWishList.
- The canonical example is an ERP system. The problem with OpenSource is that only projects of interest to programmers get the attention.
- Or programs that company programmers get paid to develop, as long as the company paying them isn't one of the closed-source zealots of the world.
- Open-source products tend to have poor or inconsistent user-interfaces. As bad as Microsoft products are, at least one can find most functions in a fairly short time by noodling around the menus. Open-source products seem to often have functions that are nearly impossible to find or figure out unless one reads the manual or Googles a solution. I believe commercial firms, such as MS, do extensive actual testing with real users, and fill in the biggest UI gaps based on that experience. O.S. projects generally don't have the budget for that, and UI gaps stay gaps. One MS "trick" is to sometimes make multiple ways to do the same thing such that one will eventually run into the solution. It may be in the text menu, tool-bar (or ribbon), and right-click menu under "other" all at the same time, for example. It's not elegant, but at least gives the user a chance. They don't do this to all commands, just the ones that seem to stump users the most during user testing sessions.
- What a gross over-generalisation. Many open-source products have superb user-interfaces. A vast number of commercial products have dire user-interfaces, but you've probably never seen the majority of them. Some Microsoft products are a user-interface nightmare, with bugs retained through over a decade of updates.
- That's my honest personal observation of open-source products. I try to use open-source when I can, but the UI's can be damned frustrating. If your observation differs, so be it.
- It would be useful for you to identify the open-source products that you find frustrating, rather than pointlessly conflate software products' quality with the manner in which they're distributed.
- I don't think it's "pointless", any more than your general observation notes are "pointless". Why couldn't you just ask, "I'd be curious to see specific UseCase's of UI problems." No need to make it personal and rude. Rudeness doesn't help this wiki nor is more likely to produce the desired affect than the polite approach. General anecdotes are generally better than zero evidence, by the way (EvidenceTotemPole). If you personally don't like general anecdotes, that's fine, but don't extrapolate that to other readers. And, you did such your very self. --top
I'd like to clarify the difference between open source as platform
and as a development method
At the risk of defining YetAnotherMethodology
, I would like to characterise OpenSource
. This list is an interpretation of my reading of EricRaymond
's The Cathedral and the Bazaar
book ISBN 1565927249
. The purpose of this characterisation (I'm not a fan of PigeonHoleThinking?
, but sometimes it has its benefits) is to try and draw parallels between OpenSource
in order to define what might be understood by CorporateOpenSource
- Roles defined:
- Development Coordinator: someone who is responsible for maintaining a single codebase, i.e. revision controller. This person is clearly known and respected in his/her role.
- Developers: People directly involved with development of the software. Usually in close contact with the coordinator, and in fact these roles can overlap or be rotated.
- Co-Developers: Also sometimes know as Users. Offer feedback, advice and fixes, however, are not directly involved in development.
- Beta testers: Users in the sense of ClosedSource customers. I.e. find bugs and give feedback but lack the know-how/time to fix the bug directly in the code.
- Global code ownership: no single person owns the code.
- Release early & often: a short iterative cycle.
- Users can be co-developers: extending the two heads are better than one principle to many heads.
- PairVersionControl?: because of the centralised development coordinator, at least TwoSetsOfEyes check any changes in the main codebase.
- Unwritten rules: for handing over control of the codebase to someone else, and for preventing version fragmentation.
- Plan to throw one away; you will anyhow is quoted by Raymond from TheMythicalManMonth.
- Perfection (in design) is achieved not when there is nothing more to add, but rather when there is nothing more to take away. is quoted by Raymond from AntoineDeSaintExupery
- Lots of Feedback: from beta testers and users.
See also OpenSourceProjectOrganization
Note the above describes the Bazaar Development Process described by EricRaymond
are involved strictly with the practice of providing full access to source code to your clients without imposing onerous restrictions on its use.
[If no one objects here, I'll come back in a week or so and ReFactor
the first section to better reflect the 4 freedoms, and OSS Definition]
Homebrew and Open Source
Are the OpenSource
communities really a software version of the HomeBrewComputerClub
? I guess the key differences are 1) software vs. hardware hacking, and 2) licenses to guarantee everyone's hacking stays in the community.
I would be really interested in thoughts on this from a former member of the HomeBrewComputerClub
(1970s/1980s Silicon Valley group that started Apple, and many other computer companies).
As both an original Homebrew Computer Club member, and open source
proponent (I was part of the original GNU WebChat?
project in 1995, and
have enjoyed using Linux since 1994), I'd say the most stunning similarity
between Homebrew and today's Open Source movement is the spirit of freely
sharing information and ideas. At Homebrew code was often shared freely,
just as we did with schematics and information about group chip buys.
If you are interested in more detailed information about the Homebrew
Computer Club see http://www.bambi.net/bob/homebrew.html
Websites involved in Open Source Dev:
People involved in Open Source:
and the FreeSoftwareFoundation
reject "Open Source". They promote FreeSoftware
, which is philosophically distinct (and predates OS by about a decade). However, FreeSoftware
is often considered to be a subset of the OpenSource
It's suprising that MicroSoft
has not been using a MondeGreen
as open sores
within its documents.
In UserFriendly, Illiad used this represent industry ridicule of OpenSource in early 1999; two years later, he played on his earlier joke by referring to MicroSoft's SharedSource? plan as 'shared sores'.
Question from someone else: is MicrosoftCorporation into SponsoredOpenSource these days?
There's also Castor, which is a java-based project that generates source for java objects that represent XML data files.
Why doesn't someone create a Wiki for Source Code examples? Or, if there is one, where is it?
You mean, like CodePedia and MassMind?
Are there any others?
Are there any good examples of failed open source projects, what happened, and how things could have been different (with or without open source development)? I have heard many good things about different aspects of the open source paradigm, but, I'd really like to know more about the down side of open source development. That way, I can have a more rounded understanding of the pros and cons of each. Thanks. - IntaekLim
Specific examples are what you asked for, and I hope someone more informed provides some.
Broad conclusions, however, need not anecdotes, but a broad base of evidence. Good attempts to derive lessons from well designed studies:
The Institute for Software Research at the University of California at Irvine has a large body of empirically-based research available on its Open Source Software Development Project's homepage at http://www.isr.uci.edu/research-open-source.html
The International Institute of Infonomics, University of Maastricht, Netherlands published their Free/Libre and Open Source Software: Survey and Study (FLOSS Study) in June 2002, available online at http://www.infonomics.nl/FLOSS/report/
Both resources might help you sharpen your question, as different criteria and metrics for measuring 'success' and 'failure' make comparison of open vs. closed software development problematic at best. We can't see inside closed shops as easily as we can browse Source Forge (see Part V of FLOSS Study: "Source Code Survey" for an attempt to glean information from code repositories). We have no comparable way of learning closed shops' true rate of 'success' on any conceivable metric; the best proxy would be a sample taken to be representative of the entire population of closed shops, but even then, the ones that refused to participate in such a study might well differ systematically from the norm. Failures certainly may make it to market, but they are not generally advertised as failures. For that matter, nominal open source projects that are failures on commercial and conventional open source criteria alike may well be counted as successful by their primary developers, for instance, student projects. These would need to be somehow eliminated from any code survey. In sum, like most software quality or programmer productivity questions, this is a very difficult question to answer empirically.
The conventional wisdom seems to be that systems tools or infrastructure software attracts more &/or more talented developers to open source projects than application or enduser software, making the latter more prone to failure in open source development (see examples above). How would one operationalize these variables in order to substantiate or falsify this perception? I'd like to know myself. -- PaulWilson
Please provide a link on OpenSource
rationale... as the only profession on the planet that en masse provides a cost free service I think this would help: much appreciated.
As a developer, my time and sometimes my ability are limited, so I use OpenSource software. Because I rely on OpenSource software -- the product of other developers' effort -- I feel it appropriate to contribute my effort in return. Therefore, I write OpenSource software.
Without OpenSource, we would be forced to reinvent many wheels, and the evolution of software would thus be impeded. Earning a living from software development is only a small motivation -- for me at least -- to write software. I mainly write software because it's my contribution to building a better world, so I give it away.
For every example of a successful, useful OpenSource
project, I can give you 20 or more examples that ended after the few programmers that created the project, stopped working on the project so they could get a paying job to feed their families. I am well aware of the few very successful OpenSource
projects including Linux, Apache and others. I would like to point out a few of the problems with OpenSource
- What happens to the businesses where their very expensive programmers use the "open source" code and then the OS project is abandoned? The programmers working for that company got paid but what does the company do now?
- Should a company that pays thousands of dollars for software enhancements, have to give that source code to their direct competitors because they use open source code elsewhere in their project?
- What happens to the software company that invests millions on designing, creating and finding a good useful set of programs only to have somebody create an "open source" copy of the final design, even though all the code was created by themself? It is at least an order of magnitude easier to copy someone else's design (your code only) rather than design something original yourself. You can't patent ideas after all.
- What harm has come to computer language developers because most computer languages are just given away? These companies lock businesses into their language by the business's programmers just using the language and then overcharge for service, or other goodies that can only be got from that company. Is this good? Even free software that isn't OpenSource has the potential to harm other companies by devaluing what they have created. How many potential computer languages and tools would have been created if others hadn't spiked the market with "free software"?
- Some people have said that "software should be free" for moral reasons. What is moral about people devaluing the work of others? Software programmers are amoung the best problem solvers of any kind, anywhere, but are rarely valued at the level of skill they have and can demonstrate. How much has "open source" cost all professional programmers in loss of perceived value?
For all the reasons above, I don't think OpenSource
or "free software" is a victim less crime. --- DavidClarkd
Contrast with ProprietarySource
See also: LinuxCommunity