I’ve been reading about two programs. OpenOffice is like MS Office and GIMP is like Photoshop. Both MS Office and Photoshop are expensive programs, yet you can download these open-source ones and appear to have the same functionality (more or less).
Now I haven’t used these programs, but here’s the impression I get on open source: Volunteers create it, and the open source allows them to update or tweak or create add-ins. Basically, people sit at home and think “what can I add to this program?” and add lines or objects to the open source.
Is this accurate?
The volunteers appear to have extensive knowledge of Microsoft or Adobe in order to make these clones. Are they cracking into MS Office to duplicate the functions? Or is it just that they know how to program really well?
Since these are given away free, has MS or Adobe ever complained?
They’re not “clones” in the sense that they’re exactly the same, but with different names…they’re just “clones” in that they accomplish the same things. I don’t know much about computer programming, but I’d bet there are significant differences between, say, OpenOffice and MS Word. Just because they accomplish the same thing doesn’t mean they’re identical code-wise. GM doesn’t get mad because Ford makes cars too.
I don’t think you will find that many people that agree GIMP is a replacement for photoshop. OpenOffice is a pretty decent replacement of office provided you don’t want to do that much advanced stuff.
It is a lot more formal than that. There tends to be a group of people who vet updates and coordinate what features need to be added. Some programs like open office have programmers paid by companies to work on them. Sun did a lot of the open office development. I don’t know if they still do.
The only cracking into that is done with openoffice is reverse engineering the file formats of office. It is reasonably clear to those skilled in the art what it takes to do any of the functions of either GIMP or photoshop. It is a lot of work to get the program written and debugged but once the functionality needed is known that are a great number of programmers skilled enough to write the programs.
I am sure they do but the complaints tend to not be taken that seriously because it is not like there are laws against writing programs.
It’s more than that: OpenOffice started out as a commercial product, which Sun bought and then open-sourced. They did that for two reasons:
[ol]
[li]Sun offers a commercial version (StarOffice) to paying customers, with some bells and whistles and (more importantly) guaranteed support. The open-source license allows them to do that. This way, they have the open-source community carry part of the load, while still being able to ask money for value-added; a win-win situation for everybody involved.[/li][li]Sun decided that, what with Microsoft using its desktop operating system monopoly to attack the server market, having a free, professional-quality office suite out there was strategically valuable for Sun. Valuable enough to spend a considerable investment and then give it away for free.[/li][/ol]
It would be very hypocritical for Microsoft to complain. The first version of Microsoft Word was an unashamed clone of WordPerfect, the market leader at that time. Likewise, Microsoft Excel looked very much like Lotus 1-2-3 at the time, the first Windows version looked more than a bit like Apple’s MacOS, etcetera.
Mature products tend to look alike because the market has discovered what works, and there’s no point in being different just for the sake of being different. Innovation is overrated as a way to win markets; there’s often more value in just building the same mouse-trap (or even a slightly inferior one) at a lower price.
Hmm, maybe I misunderstood the question about whether Microsoft complains about OpenOffice etc.
There’s no secret technology involved in building a wordprocessor. The basic concepts are common knowledge, and the algorithmically tricky parts (e.g. right-justifying text) have been publicly documented for years. In fact, a technically superior but much less user-friendly alternative (TeX) existed as open-source software long before Microsoft produced Word 1.0.
That’s not to say that it would be easy to design a wordprocessor of that complexity. But that’s all it takes: good software design skills. And the kind of people who enjoy programming enough to spend their free time on it, tend to be better than average, to put it mildly. There’s no “espionage” involved, except in the area of compatibility with Microsoft’s file formats, as gazpacho mentioned.
By the way, the situation like with OpenOffice, where Sun bought a proprietary product and open-sourced it for strategic reasons, is actually quite common. That’s not to say that there are no open-source products written from scratch by volunteers for the fun of it – Linux is the most obvious example, and I believe The Gimp was also developed that way. But on the other hand, there are plenty of products developed by commercial companies who have chosen for strategic reasons to “give it away” as open-source.
Two good articles about the various reasons why a company may choose to do that:
Yes, as others here have said. Note though that many open source projects are worked on by a team of specific developers, and not just any schmo wandering by is allowed to make changes to the code repository. Projects on SourceForge and other hosting sites are protected like this. Some projects are hosted on corporate sites, and only employees of that company participate in development.
Of course, since the code is open-source, anyone can copy it and start their own project based on it —an event known as forking. A famous example of that are the various BSD operating systems (OpenBSD, NetBSD, FreeBSD), whose founders all went in different directions because they had different priorities.
You need to know how to program well anyway, to make a successful software product, whether you pilfer techniques from your competition, and whether or not you charge any money for your work.
But I would guess they’re not cracking MS-Office, since there’s little to gain by looking at Office’s code. It would be machine code anyway they’d be looking at probably — not the original, readable source, which is locked away within the bowels of Microsoft somewhere. On top of that, probably a big chunk of MS-Office is wedded to the particulars of the MS-Windows family of operating systems. The people writing Open Office want it to work across many platforms.
All in all, you’d be better off starting from scratch.
I feel the need to correct a potential misconception.
I’d actually say that this is not accurate in most cases (at least not for the originators). For the most part, people write software they need. Many release it as open source to capitalize on the knowledge and work of others, who most likely have the same itch that needs scratching. For instance, my research group has a project up on SourceForge. We wrote it as a research platform.
Function is separate from implementation. There is an infinite number of ways to implement any complex software; little knowledge of the internals is necessary.
This is very accurate. Good programmers hate to see a wheel invented twice (unless the existing wheel sucks) so if they’ve worked on something to achieve a goal, and it works, and it’s not anything they could successfully market themselves (or would want to bother with), it makes sense to release it under a BSD or GPL license, where hopefully it will get picked up by others and improved upon. There’s also a sense of reciprocity: someone might use a lot of open source stuff to get their job done, so sometimes it’s nice to pitch in when they have something to contribute back to the world.
Also, note that a lot of the more popular open source software out there is profit driven. For example, MySQL is very popular for databases, and you can download it and run it freely, but they make money on support contracts and licensing for inclusion with other software. Likewise, PHP is a very popular scripting engine, and is freely distributed, but the company behind it makes money selling licenses to the core scripting engine and various other software (optimization engines, development environments, etc).
Note that reverse engineering is OS is not limited to just file formats. Take the Wine project: a project to allow you to run MS-Windows apps under Linux. In order to provide compatible libraries and such, a lot of knowledge about how MS dlls work is needed. Some can be found in MS documentation, but MS doesn’t document everything (people find MS-Word and IE use undocumented calls all the time) as well as some specs just being flat out wrong. So folks have to resort to feeding sample calls to libs, seeing what happens, tracing and decompiling code, etc. Very messy and time consuming.
Also, the Samba file system project has had to delve into a lot of undocumented internals. (Which has made MS quite unhappy as they’d like to control cross platform Windows-style file sharing.)
Note that MS itself uses Open Source code all the time. Original Mosaic code is used in IE, the zlib compression library, they have their own version of Kerberos, etc. Which raises certain questions about “If OS is so bad, then why do you use it all the time?”
Yeah, advanced stuff like, say, a grammar checker. FOSS (Free/Open Source Software) like OO and Gimp is still sufficiently incompatible with their comparable closed source versions that you constantly hit up against things working unexpectadly or just not at all. But as they say, you cant beat the price.
Guys, let’s not turn this thread into Yet Another Software Bitchfest/Dickwaving Contest. This is GQ and the guy asked a perfectly good question.
Open source is how all software was in the early days, back before anyone thought you could make money by selling it. Early IBM user groups (SHARE for example) shared source code (and still do) back in the 1950s, when ‘computer’ meant ‘huge room-filling machinery with components larger than filing cabinets’. This spirit of openness prevailed (and still prevails) throughout a lot of university computer centers, most notably the ones at MIT and UC-Berkeley, long after the commercial world had almost completely gone proprietary. There have also been a lot of hobbyist communities: Every marginally important home computer system, from the Amiga to the Sinclair, has developed some form of source-sharing programming community.
OSS isn’t completely volunteer-driven these days, however: IBM (along with a lot of other companies) pays people to work on Linux, Sun funds OpenOffice.org, Red Hat funds work on Red Hat Enterprise Linux (something that includes modifications to the base Linux kernel, which are then available for anyone to pick up and use themselves under the terms of the GPL) in addition to paying a support staff to hand-hold paying customers, and the Free Software Foundation pays for some programmers (I’m not sure what they work on, probably GNU Project tools).
Partially true, and there are a lot of projects that would die if this kind of public interest in them were to dry up. But all software projects have some kind of core development team, usually including some single person who acts as Benevolent Dictator (usually the project’s inventor or hand-picked successor) and has veto power over what goes in and what stays out. This is very important from both technical and social perspectives: From a technical point of view, all software needs direction to keep it coherent and not an incomprehensible jumble of ad-hoc features. From a political point of view, people need to have someone to blame and look to for a final answer. Truman had it right: A leader has “The Buck Stops Here” written on his forehead.
(Of course, final veto isn’t really ‘final’ when it comes to Open Source. Anyone can take the code and move to a more hospitable (or simply more active) group, a process known as forking. Forking is extremely rare, however, despite the fact all Open Source licenses would seem to explicitly encourage it. Both Rick Moen and Eric Raymond have written on this subject much more extensively than I could here.)
This is wrong. Most open source software is buggy, bloated and badly designed. Very often the people who should never be allowed near production code are exactly the ones drawn to open source software. One only needs to witness the horror that is emacs to understand this.
Amazing. One post after “Guys, let’s not turn this thread into Yet Another Software Bitchfest/Dickwaving Contest. This is GQ and the guy asked a perfectly good question.”, you said this. Just stunning. Mr. Connery, you have the board.
The guy posted an opinion dressed as fact. I don’t care what any previous post said before mine, Walton Firm’s post was incorrect and I called him on it. If you wish to characterise that as a “bitch fest”, be my guest.
Scot Plaid, have you anything relevant to add to this thread?
This guy posted an opinion dressed as fact. I don’t care what any previous post said before mine, Dominic Mulligan’s post was incorrect and I called him on it. If you wish to characterize that as a “irrelevant”, be my guest.