Briefly on Software

Hackerdom, Philosophy

Today is a computer-filled world, and computers need software. A computer without software is quite like a engine without a car to go with it; yes, you can run the engine on full speed all day, but it's not going to bring you any closer to wherever you want to go. Simply put, without software, a computer is ultimately useless. Today, computer usage having grown mainstream, we have a vast number of people/corporations out there who stake their future on making software; and it appears that (as I suppose it does in other fields as well) these can be divided into two groups with distinct philosophical outlooks on software and its purpose.

I will illustrate these two, as I usually do, by using two groups with diametrical philosophies. The first example of the day I'm sure you've all heard about: The Microsoft Corporation. Microsoft occupy a large portion of today's software and hardware market, and I'm sure that 99% of all home computers are using their software ? typically one of the many Windows operating systems they have under their belt, at the very least.

Now as anyone with some computer society awareness might be able to tell you, Microsoft is a much-maligned company. Throughout the years they have been accused, often accurately, of dealing in shady and unfair practices, many of which are difficult to understand for someone who lacks an engineering education. This was temporarily brought to public attention a few years ago with the famous antitrust case which is still being argued ? it will be a long while before we see the end of that, I'm sure ? but the majority of the issues people have with Microsoft are too arcane for Average Joe to fully grasp.

It might suffice to describe the practices of Microsoft as highly self-preservative, as there is one common theme that runs through most of them: Attempts to make matters very hard for any potential opponents to gain a foothold in their market. An oft employed tactic is using ? some would say abusing, and I may be bound to agree ? their position as a de facto monopoly to break compatibility with other systems. It may elude the common user that Windows is not by far the only way to work with a computer ? after all, it is most these people are ever exposed to ? but there exists a wide plethora of operating systems, hardware setups and various software suites out there, many of which were around long before Microsoft.

In order to preserve some sanity among these many different systems, standards were established, a common practice not exclusive to the computer science industry. These standards were mainly intended to allow for interoperability between systems ? for instance, it would be disastrous if text files written on a Macintosh computer were unreadable on an x86 PC ? and generally, to preserve compatibility between the myriad of ways to manipulate data on a computer. This is generally regarded as a good thing, for obvious reasons. However, for a corporation with little to gain from interoperability (already dominating their market) and everything to lose, standards are a disaster. The reasons for this is related to market share flow.

Suppose for a moment that the computer market consists only of Corporation�A and Corporation�B, each having a 50% slice of the market cake. Some arbitrary body, independent of these, sets standard C for, say, rich text documents (that is, documents with more than just plain text; different fonts of different sizes and styles, embedded images, et cetera). Now, both A and B, knowing that C is better than they currently offer, both rush to implement C. After a couple of months, both release their own products for dealing with these C files. Now, it just happens that Corporation�A's product is slightly more feature rich than Corporation�B's product ? so naturally, A get more customers, and a larger slice of the marketing cake. B would then, as a response, improve their product again, and a technological arms race ensues, with the average level of software sophistication steadily rising; quite a good thing.

Now suppose that Corporation B, despite their best efforts, lag behind A considerably, and fail to keep up with the pace. Soon, Corporation�A will dominate the market ? not surprising, given that their product is superior ? suppose a 90% slice of the cake. The market flow was in their favor, due to a simply better product. But, at this point, something happens. Corporation�A now has market dominance, and their products are most widely used. Suppose now, that Corporation�A, fearing that Corporation�B is on the verge of a breakthrough that would tip the scales in their favor again, improves on standard C ? let's call their improved format C-XP ? but do not release information on exactly how they improved it all. Within months, their new C-XP format is widespread. However, as you might have noticed, it is not interoperable; since A did not divulge the specifics of their format, no one else can implement support for it. Corporation�B releases their new breakthrough soon afterwards, but much to their chagrin notice that no one switches back to B, despite their product being superior. What has happened?

After A gained its foothold, it started implementing its own ways of doing things, which were by convention non-standard, simply because they did not divulge any details. By making sure this new format was the widespread one ? either by bundling it or making it an unchangeable part of their software, or simply by encouraging it, either being an easy task considering their near-monopoly ? they ensured that anyone who was considering switching back to B (because of its attractive new features) would be put off by the costs of switching to a system where all their old files could no longer be used (since, of course, C-XP is incompatible with C). This is called an artificial demand ? a demand for A's products caused not by A's products being superior, but rather because of A locking customers into their products if they want to retain compatibility with A's earlier products (which were established by 'legitimate' means).

So as we can see, by sticking to proprietary ways of doing things, A has pretty much ensured that they stay in their monopolistic position. One interesting thing that might be worth pointing out that if A truly had a superior product, it would be better if they released their specifications publicly. This way, other vendors are encouraged to implement this more open standard, and the flow FROM these other vendors to A's product would increase (given that their product is better). Indeed, by not following open standards and instead implementing their own, A can relax their own product quality because no one can move anywhere anyway ? an effective customer lock has been established. If the company were not in a monopoly position, this would pretty much be impossible; this method rarely attracts new customers, unless they are also dazzled by the quality of A's products.

Time to snap back to reality. Corporation�A, as you might have figured, represents the Microsoft Corporation, who are notorious for exactly this kind of business practice; violating existing standards and enforcing their own instead. It's indeed easy to see how this is very favorable to Microsoft themselves; product lock-in ensures plenty of profit, as long as they keep their software at a fairly acceptable level. Whether this results in a situation profitable to the general public, and the state of computer science as a whole, however, is something else.

Historically it's been easy for Microsoft to employ tactics like this, as the alternatives have rarely been viable; Unix-like systems have been unable to match Microsoft outside academic use. Recently however, with Linux becoming more and more friendly to the average user and more and more powerful, this has become increasingly difficult. Combined with an outcry from the engineering community, it's put Microsoft in a bit of a pinch.

Onto our second example, then: The Open Source community. Unlike Microsoft, the OS crowd (that's Open Source, not Operating System) is unsurprisingly not a corporation, but rather a loosely defined group of people. There are several companies out there that fully support the Open Source concept and employ it regularly as a business practice, making good profit. The very concept of Open Source might also be confusing to the uninitiated, so here's a brief description. Typically, when a company writes a piece of software, they want to keep the source code for it secret, much like an engine designer would want to keep the blueprints to his engine secret and just sell the engines. This is purely financial, of course, and is probably a sane financial move. However, there are people who do not agree that this method ? closed source ? is the only way to go. Some do not have a profit interest in the product, and others find their profit elsewhere in the producer-consumer chain. Others yet have other motives, but they all have one idea in common: Source code should be open; that is, available to anyone and everyone.

The idea of Open Source has some interesting implications: Anyone can take an existing design and improve on it to create a much better product than before, increasing the technological sophistication in the world, much like he could with the open standards mentioned in our hypothetical financial situation above. Now, you might expect that this would lead to more monopoly-type situations as seen above, and in some unfortunate cases it does. As a whole, however, the Open Source community encourages source to be open and available, and progress is being made in many fields independent of corporations. There's one particular thing in place to explicitly combat situations like this, in fact; The GNU General Public License, or GPL for short. It is a license for source code, drawn up by the Free Software Foundation, that explicitly disallows this sort of behaviour by forcing people deriving new works from GPL source code to license their code under the GPL as well. Put simply, one can say that once you go GPL, you don't go back.

Now as previously mentioned, corporations do make money off Open Source. This might seem baffling from a traditional point of view; surely a company that reveals its innermost secrets to the world cannot be successful? As a matter of fact, they can be. The idea is not to make money off the programs themselves, but on the surrounding business such as hardware setups, upgrades, technical support deals and education/certificates. By releasing the program and its code freely, the company has in fact found an invaluable resource: peer review and improvement. While the company itself may pay people to work on their project, they have also acquired a vast corpus of people who work on the program simply because they want a better program, and by extension this benefits the company who employ the program as part of their business strategy. Some companies even build systems from part proprietary code, but based on a vast, common ground of Open Source programs with much success.

I think that in this last paragraph, we have caught a glimpse of the fundamental philosophical difference I mentioned in the opening abstract. People do work on these projects in their spare time, perhaps for fame and recognition, but more likely because they want to make the program better. If a particular program doesn't offer you everything you need, you can just improve it so that it does do what you need it to do ? if you can write good code, that is. Your changes, should you choose to give them back to the community (perhaps as a way of thanking them for providing the program to you to begin with), can then benefit others in the same situation. Through this cycle of improvements, the quality and sophistication of freely available programs is steadily rising at a quick pace, and nothing is kept secret. Standards are followed, and interoperability is everpresent. So what's the difference here?

The main difference is that no one is trying to make any money off of this. At least, not as a primary goal. It seems as if the main goal of all this is to, simply, make better programs. Looking back to corporations such as Microsoft, we see another view; their main objective is not to improve software, but to make money. Indeed, it seems that a large slice of the reason they are in the computer business is that it is highly lucrative. This I believe to be the fundamental difference between large-scale software corporations and the Open Source collectives; one strives primarily towards profit, with software design as a means to achieve profit, while the other strives towards better software, with profit as a means by which to support this evolution (certainly, development is not cheap, and there's nothing inherently wrong with profit). Both of them lead to better software, and both generate profit; that is not to be denied. It is clear to see, though, where the emphasis lies in the different groups.

One might ask oneself why we are here, and what corporations are good for. One view states that the prime objective of corporations is and should be money generation, and indeed this view seems to be the driving force behind many young entrepreneurs. The vision of a future as one of the world's richest men is certainly appealing. Then there's the alternative view that corporations ultimately exist to serve the interests of mankind, to further their respective fields and make a better future for everyone, and that profit is merely a way to sustain this activity.

If it's not already obvious, I might state my personal opinion on this (as if it didn't already saturate this entire article!). The purpose of corporations, and all manner of communities, indeed of our very existence, must inexorably be to further society and make progress. It's a bit sad to see the blatant egoism and chronocentrism of many of today's businesses; that they offer a service merely for the gain of lucre, and improve only reluctantly not to fall behind. Corporations surely have a place in our society ? it is irrational to expect to get something for nothing ? but I believe that ultimately corporations like Microsoft hinder the progress of the field more than they further it, in the long run.

Good article. I agree with you totally. But one problem with open source software. Is that their isn't enough quality open source software out their. Look at Adobe Photoshop CS vs Gimp 2.0. Or Maya vs Blender. Closed source companies like Adobe and Alias do make way better software than the Gimp project or Blender. This is one reason why major CG companies like ILM or Dreamworks use Maya instead of Blender. Or Photoshop instead of the Gimp. When you employ thousands of programmers to develop a program. And this is their career. The final product will more than likely be much more polished and advanced than any open source solution out there. Plus support is also where these companies shine. Their are tons of tutorials and publications out their for closed sourced software. Not much for open source software. It is easier for someone to learn how to use Office 2003, Photoshop, or a Macromedia product. Go to your local bookstore and try to find a book on Quanta or Open Office 1.1.1. You will need allot of luck. But you will find tons of books on MS Office, Photoshop, etc... So although I fully support and use open source software. It will take a miracle for open source alternatives to ever make it to the level of closed source applications. We can only hope. And hope it's in our lifetime.

[This is one reason why major CG companies like ILM or Dreamworks use Maya instead of Blender. Or Photoshop instead of the Gimp.]

Companies like that employ their own staff of dozens of developers who write their own in-house software for doing such things. Sometimes this software is based on existing Open Source software. Film-Gimp is a great example and was used extensively for the Scooby Doo movie among others.

[When you employ thousands of programmers to develop a program. And this is their career. The final product will more than likely be much more polished and advanced than any open source solution out there.]

A large number of programmers only slows the project down. Brooks's Law: "Adding manpower to a late software project makes it later." What the Open Source community lacks is direction. They improve projects by adding things they need and are not concerned with the overall quality as perceived by someone who is new to the scene. This is, to some extent, "fixed" by companies (Redhat, SuSE et al) that base their products on Open Source software and need a consistent product, that looks designed, not evolved.

[Go to your local bookstore and try to find a book on Quanta or Open Office 1.1.1. You will need allot of luck.]

Surprisingly, it's not hard to find books and guides for Open Source software. I believe there are several books written about OpenOffice already. Indeed, some distros even ship with large books. My Redhat 6.2 CD was accompanied by a huge book about Linux.

[So although I fully support and use open source software. It will take a miracle for open source alternatives to ever make it to the level of closed source applications.]

It's the lack of direction, which hinders progress in the Open Source community. I don't know if there are any good solutions for this problem out there, though.

Why Photoshop CS is better than The Gimp? Well... Adobe started developing his software a lot of years before The Gimp... and in some years The Gimp growed up exponentially!

...

I'd also like to note that the number of books about some software package is closely related to the popularity of that particular software package.

I would most definitely argue that the purpose of a corporation is to earn money; and at that, money for themselves and their shareholders specifically: by that distribution alone to improve the general condition.

There is absolutely nothing wrong with such a position. One can go about making money honestly or dishonestly, that is certainly true, and without doubt the dishonest should be condemned. However, simply because one seeks to substitute the motive of financial increase for one of the general welfare does not make the corporation or people involved any the better people (I would in fact argue that for the most it winds up producing disingenuous people).

Quite in short, though I hold no feelings against Microsoft, I would trust them much further to see to the business of manufacturing software for profit than I would see them manufacture software to improve my own societal well-being, a feeling which I would extend to any other community, corporation, or entity.

[quote]This is one reason why major CG companies like ILM or Dreamworks use Maya instead of Blender. Or Photoshop instead of the Gimp.[/quote]


Sorry I think you have this backwards.
Dream works uses Linux and open source software on their movies. They switched to OSsw so that they could make changes to the SW to fit their needs, and if I'm not mistaken ILM is the same way.


[quote]Go to your local bookstore and try to find a book on Quanta or Open Office 1.1.1. You will need allot of luck.[/quote]

Sorry but I was at a book store a week ago and in their computer section they had a book on OO.o 1.1.0


[quote]So although I fully support and use open source software. It will take a miracle for open source alternatives to ever make it to the level of closed source applications.[/quote]


Here again you are mistaken. Was it not just a few years ago people said Linux would never be good enough to use by the average Joe on a day to day basis? Well I am him. I am no Linux guru but I use, Linspire, Knoppix, and Mepis Linux.
All install to a harddrive in far less time than windows does. They self configure everything on my computers and I have 5. And in just a few short years (2 to be exact) Linux has become more than good enough for me to remove it from my computers. Other than wanting to watch a DVD on my PC I do not need Windows any more and since I have two DVD players in my apt I dont even need it for that.
In just a few short years (again) Linux will have made HUGE advancements and will be well beyond anything MS or other Propriatery software makers have. Open Office is already poised to take a large market share from MS, MS Office because of the MSO price and the fact that many of the functions in the software are not used by a large majority of small to medium sized companies.

Also please look up The Open Source CD Progect and the GNU CD. Both full of very good OS (Open Source) software.

And in just a few short years (2 to be exact) Linux has become more than good enough for me to remove it "WINDOWS" from my computers.

Left a word out.

Very good article.

It is a bit redundant for long time Linux users like me, but I feel it would be great for the general public. In fact, it's so good at this aim, that I believe you should consider a career as professional writer.

I suspect you will be contacted, if you were not already, by some mainstream media, asking to purchase the rights to reproduce your article.

Well done!

good article ,

but i just would have hoped u to focus more on the ethical need for people to switch over to open source softwares, by the way does anybody here think that students contributing to open source movement put their hands into fancy sounding projects and lose sight in the middle and the software remains very unpolished

Well written, but I think you are misguided in your conclusions about the purpose of corporations. Corporations have no purpose. They are simply legally constructed entities which are allowed to operate like artificial people within a society. They are critical to enabling any enterprise to scale beyond a single person. It is naive to suggest that corporations should exist to better the community. Each exists for whatever purpose its founders desire, which could be wealth generation, organized crime, or philanthropy. And that�s fine. Society doesn't and shouldn't care.

What about all the unfairness and injustice caused by Microsoft and other monopolies? Have faith that free market economics will sort things out. At the moment, the market happens to be too unsophisticated to see the benefits of Open Source / Free Software. If F/OSS is really right for the world, the market will figure it out eventually and thing will change.

It's good to talk about all this, but if you really want to help the "cause", the best thing you can do is to follow the Red Hat/SuSe/mySQL model: start/join a software company, embrace Open Source, create a great product, market the hell out of it, repeat previous 2 steps.

Thanks for the article.

> Society doesn't and shouldn't care.

Doesn't, true. Shouldn't? I think they should. The purpose of corporations today is as you say, highly personal. However, I believe that if the field of software is to progress, purposes have to shift from these personal motivations to such that are beneficial to society at large instead, and I think that people should expect this from corporations.

What is today isn't necessarily what should be, and I don't claim what should be is today either.

Making money and free software is not mutreal exclusive. In fact, sevral companies are making MORE money on theire software after GPL'ing it then before.
Examples herer are MySQL and Trolltech. Bout project would never have been used mutch unless they had released theire source. Because it it is used mutch, people buy services (mysql) and commersial licenses (to use the products in propitery programs)

One major difference that I see between propriatary software and open source software (OSS) is that all the OSS seems very derivitive or imitative. Operating systems, unix for example, high level languages, PostScript and the subsequent desktop publishing revolution, were all developed as propiiatary efforts. Today, the OSS efforts in operating systems and compilers are of high quality and in frequent use. There is little professional level products to compete with Adobe's Creative Suite. The OSS system reimplements existing standards, but it does not seem to pioneer new areas.

[Quote]The OSS system reimplements existing standards, but it does not seem to pioneer new areas.[Unquote]

How many software areas for day to day use are still uncharted? From a users viewpoint, the Proprietary world has produced all he would ever need.

FOSS hasn't been up to steam as long as Proprietary companies have been. So yes, there is a lot of software written that performs functions that are allready there in Proprietary form.

FOSS do have their little innovations, but as they provide an alternative system, they are mostly viewed as those that create "copies" from proprietary stuff. (Nevermind that the Proprietary world has it's share of "duplications").

Ultimately, FOSS is about the benefits of the licensing model. It gives much of the controls to the user and not the vendor. Not everyone cares about his rights this much, but hey, it's your party...

well written X-G, t'was a good reading.

I think we have all grown out of the stage where communism is a curse word, and I would venture to say that communism in a form has worked in the open source world. I am amused at comments from the proprietary world that attempt to use that as an insult, communism in it's purist state is not an evil thing it just so happens that it's implementation thus far has been flawed. Ironically in the computing world the tables have turned. The capitalistic approach has had a flawed implementation as stated above and the "communistic" implementation is showing it's stength.

[I am amused at comments from the proprietary world that attempt to use that as an insult, communism in it's purist state is not an evil thing it just so happens that it's implementation thus far has been flawed. Ironically in the computing world the tables have turned. The capitalistic approach has had a flawed implementation as stated above and the "communistic" implementation is showing it's stength.]

Perhaps "communism" isn't the right word for it? To me, the whole Open Source movement is an example of a free market where goods and services are exchanged for the lowest possible price.

Indeed, with communism, the code would have to belong to everyone, but it doesn't. It belongs to specific people, who then let others use it in accordance with some license, which can be quite restricting. It's more "sharing what you have in abundance," (philanthropy, if you will) not "giving everything to the community" -- and the thing you do have in abundance is knowledge, time and code. You are giving away a small part of your mind and time in exchange for free goods and services from others.

So we end up in a world where underlying technology is practically free, there are many alternatives to each part of it and services can be built and grown on these.

Software isn't a product, it's a process. You don't buy it and consume it, you acquire it and you use it to get something done. It's means to an end, not the end itself. The games industry is perhaps an exception to this rule.

With proprietary software, the illusion of a product is still there. With Open Source, the illusion disappears -- software really does become a process in your mind and not a product.

I don't think Open Source is a communist movement. I think it's a movement of people, who value the availability of free tools, so that they could build services and other things on them.

When you start out by citing all the accusations ever levied against one side in the very first paragraph you discuss that side (before you have even outlined the characteristics of that "side"), you have revealed that your article will be a polemic and not one that can be counted on for a well reasoned and fair discussion of the pros and cons of the two approaches.

That software is not a product makes no sense. It's a tool, and like any other tool, one can buy and sell it. A car is a tool, a "means to an end". We don't consume cars, but we don't call it a process. Nor do we get cars for free.

Well okay, we eventually junk the car, just as we eventually delete an application. Both are still products that can be bought and sold.

Open source software is based on a gift economy, where things of value, like software, is given away for the benefit of the community. Instead of a direct monetary or service/good exchange, prestige or "good feelings" (for example) are received by the producer.

Microsoft, as a monopoly, represents an inefficiency in a market economy. However, there are ways to resolve this inefficiency while maintaining a market economy; see oil and telephone industries. There is an inordinate focus on Microsoft, to the point that one ignores the rest of the software industry that may be working well in a market economy. Do we all wish telephone and oil industries not operate as market economies?

I view the open source community as another competitor that helps drive innovation. By providing features for free, commercial companies must provide new features in order to be able to make money. This is not to say that the open source community does not innovate. The point is that commercial companies have a strong motive to innovate faster and farther than non-profit organizations because they generally have better organization, greater resources, more focused direction, and greater urgency to innovate. Open source software complements, not replaces commercial software.




HTML is disabled in comments. 4096 characters maximum. URLs are automatically marked up.
What's this?