How can software be free?

I was accompanied part of the way home today by a colleague from Cartesian – that’s a sort of group company; linked with Direxions. Well, Cartesian’s top guy is also my HoD. This lady is a cheerful person minding her own business; and not minding minding others’ too. You know the type – you can get amused at them, exasperated with their cheerfulness but you can’t get angry with them. The missy is intelligent too, if you go by the stuff she does. I don’t see too many women in the crunchy numbers department.

Now the point is, the boys (and girls) at Cartesian are developing web apps. The missy asked me what ASP and PHP were. Succinctly, they are scripting languages – my answer. The next question was about MySQL. She had a problem with its interface. Well, that depends on what client you are using to do your job. A jargon gap (we are in different fields, after all) prevented me from explaining that to her. That can be fixed; I hope to do it tomorrow. Her next question floored me.

How can MySQL be free?

I’m using Linux since April 2003. I have been reading up on Free Software and Open Source since then. ESR’s essays. Followed a couple of mailing lists. Blogs by Linux users. Lots of stuff. I have “got” the theory – ideals, nuts-and-bolts – whatever – of free software and open source. I believe I understand why software should be free. And why quite a lot of it is free.

I’m basing my toolkit on LAMP – Linux, Apache, MySQL, PHP/Perl. I know their merits and demerits(!?). I know various tools, frameworks and applications that help me on the way. I can do a pitch for any of these to my colleagues (in Interactive) or to my boss or to a tech friend.

But how do I explain to the missy why she can use MySQL for free? As concisely as possible?

You see, missy, I subscribe to the belief that software should be free. Free as knowledge is free. Free as in freedom. Free as in mukt. That’s the way software was in the seventies and early eighties. Before IT became a money earner and the big corporations stepped in with patents and licenses. And there is an amazingly large group of people who share my belief. This group is large enough to give me a free operating system, a free web server, a free scripting language, a free database and a lot many more free software.

How does free software work if there is no money involved? Simple – we all help out. By participating in actual development, doing bug reporting, improving documentation, introducing the software to new guys and helping the new guys to get up and running; and in many other ways. Its co-operative. Collaborative. So long as you are willing to help out, to help yourself, to learn – the software and its community is there for you.

But why would anyone make software for free? It is not at all altruistic. Part of it is ego – we make this superb software.

Part of it is simple need. You got an itch? Scratch it!

The creators of Apache needed a good web server. They created Apache. A lot of people found that Apache also served their requirements and pitched in to help the original team. I use it too. Larry Wall wanted a scripting language good enough for his needs. He created Perl. Along with millions of other coders, I find Perl damn indispensable. Rasmus Lerdorf replaced a bunch of Perl scripts (that he used to maintain his website) with a better tool he created – PHP. Hopefully, you will be seeing a lot of PHP code in the comings days, missy!

Then how do companies like Red Hat and MySQL make profits? Why would people pay them if the software is free? They don’t! Selling software like it is a tangible, physical object is history. What people pay for is support. Service. The guarantee that a certified tech will be there to hear out your problems and solve them. If you want to skip out on that and instead depend on the community (like I do for all my free software), then the software is also economically free – muft.

Did I answer your question, missy?