the web: where open source is king

April 1st, 2007

If we take a quick look at free software vs proprietary software, here are the key differences:

  1. give or sell (free) vs sell (prop)
  2. free to use, modify (free) vs free to use-as-is (prop)
  3. free to give away (free) vs cannot give away (prop)

Now, people like Bill Gates believe that the only thing you would ever want to do with software is get it and use it. This is a strange and limited outlook on things. There are such huge piles of software out there that everyone can save money by reusing stuff, rather than building from scratch. And guess what? When you find code that you can use in your project (an application or a library), and you want to adjust it to your needs, you need the source code.

This is where the web comes in as a whole new dimension. Because if you recall the list above, point 3 falls out. If you build a website that uses a piece of software, that does not count as distribution. So let's say you're a big company and you want to develop a new product... You would like to use free software, because then you can save lots of time and money. But if you do that, and you want to sell your product, you have to give away the source code as well. So some other company can pick that up and resell your product. But, if you just have a website, then even though your users will use the product, it's not distribution, and you're under no obligation to give away the code.

Well, that's nice and all, but so what? Isn't that only useful for web software like apache, php and whatever? Actually, no. The web is increasingly becoming a place of rich applications. There are more and more websites that aren't just pages, they are applications. Everyone is talking about web applications these days. Some pundits are saying that the future is the web. And that browsers will be increasingly critical as a client to this world. In fact, Firefox has various ideas underway to "connect the dots" and make websites feel more like desktop applications. This is already happening with things like AJAX, when you click a button and some part of the page is refreshed, without having to reload the whole page. The distinction  between web and desktop is getting blurred.

A case study

So let's say you want to build a web application that is an image editor. (I know it sounds silly, but there are actually several people doing this at the moment.) So if you think about what a web image editor will be like, you probably want it to have the same (or many of the same) features that image editors do. If you take Photoshop, which is the most popular one, it would be really nice if you could offer the same features, wouldn't it?

But guess what, as a developer, all you can do with Photoshop is look at it. Now, if you take the gimp, you have the full source code. So you can rip out the parts you need (the code having to do with scaling images, applying filters and so on), and put that in your web application. Of course, there is still work to do, because you have to connect the bits from gimp with your web interface, perhaps you need a wrapper of some kind. But this is all easy stuff! This is just connecting the dots, it's the gimp code that's the difficult part, that's where the domain logic comes in. You don't have to know much about image editing to build a web app reusing the gimp, but you do have to know all about it to write the gimp.

The big picture

That's just one example. With gazillions of free software packages out there, there is no limit to what kind of web application you can build. All that the user will see is the webpage, so underneath you can connect any number of applications that work together in producing the result. So you can build a website that has all kinds of features. And you can make the site free, or you can fund it with ads, or you can charge a subscription fee, it doesn't matter. Either way you can reuse existing software without having to give up your advantage by offering the source code.

And that's all because you have piles of free software lying around for use. Proprietary software is completely useless here.

For companies like Microsoft, this is horrifying. "How can we survive if we can't sell our productivity software?"

Ps. I'm surprised that I've never seen anyone make this observation before. Someone must have noticed it.

:: random entries in this category ::

2 Responses to "the web: where open source is king"

  1. erik says:

    Good piece. And lol:

    "So let’s say you want to build a web application that is an image editor. (I know it sounds silly, but there are actually several people doing this at the moment.)"

  2. Nawaf says:

    Nicely written..
    Although a web image editor could prove very useful for people who mainly use public computers (i.e. cannot install any new programs), or people who can't bother installing proggies in the first place :D