My Pages

Sunday, November 21, 2010

Where is FOSS now?

According to Mozilla 86% of it's revenue comes from Google. This made me wonder what would happen to Mozilla if Google decided to revoke funding and focus on developing Chrome more. Many people are already starting to switch to Chrome which, at some point, one would consider this to be a conflict of interest. Why? Well, if they put an ad for Chrome on Google homepage and the homepage of Mozilla links to Google... Well you get the idea.

Mozilla (Firefox, Thunderbird) are one of the best examples of FOSS (Free/Open Source Software). Users have never once paid for the software that they are using; however, I would like to point out that they ARE paying for it with ad sales. What are Ad Sales? If you use Facebook then you'll notice the adds on the right hand side of the page. These are paid advertisements (i.e. the company that the Ad is supporting paid Facebook to put that ad up) that are targeted towards people whom Facebook feels will purchase those products or click on the ad itself.

Of course, many people get angry about the ads and how annoying they are. Many others feel that software should be free and should not have to have ads. The problem with this thinking is that you end up with software that is either 1/2 done, full of bugs, or worse becomes vaporware. This occurs because if the developer(s) are not receiving any funding from the users of the product; then they must have a full or multiple part time jobs as their main source of income.

This is bad because the developers are usually unable to focus directly on the software itself. Even if there is a group of 2-3 people it becomes hard to make decent progress. So why am I talking about this? Because I feel like people who complain that all software should be free and there shouldn't be all of this marketing on the sites really don't understand what it takes to create and support a piece of software.

I do believe in paying for software; I believe that if I am going to own a copy of Microsoft Office or Windows then I should have a legitimate copy of it. One might ask why I would prefer to pay for the software; my comment is that I know I am keeping another developer employed as long as I purchase the software. Now I am a Unix user and I do quite a bit of development in Unix; and to this I would be more than happy to address.

In my time of developing for Unix; I have seen many changes within libc between 4,5,6 and libssl, regex.h etc... Some of the things that I've seen are when functions get deprecated or when functionality gets changed and you are forced to go back and make changes in your code, notably with #ifndef's, to get around the changes depending on where the application will reside (i.e. you need to now support 3 different versions of a function call that changed in each version). This is the life of FOSS developers.

The FOSS community is pretty soulless in their ability to make things backward compatible. Many times the people who work on the *nix kernel or some other development library don't really care that much for preserving the original functionality and usually don't care. Their facet is that you are using their library and you are at their mercy if they decide to change something. Note that this is where I see the disconnect in the FOSS community. Watching some application that someone wrote that I found really useful that the guy doesn't want to keep up anymore fail because I did an apt-get upgrade.

Sadness then ensues when a function that was linked against no longer exists etc... As such, I'm now have 2 choices; either A) I settle for some half-assed solution, or B) I fix the code from the original application. This of course is what some would reason I should do, pick up the code and fix it, this is noted but if I was not a developer then this would be much harder than anything (as I would have to learn how to program). So why would I bring this up? Because if you look at the Window system; they provide a level of backward compatibility that is completely redeculous.

Windows has a level of backward where you could run an application from Windows 3.1 on Windows 7. Why? Because the developers for Microsoft has ensured that all changes to library functions fix an error in the function but do not change the underlying functionality of the function. They also do not remove functions after they have been created. So what is the difference here? Easy, one is a fully supported application that people develop all the time and are paid for the supported and continued development of the product (Microsoft) versus an application that people are asked to donate money to (Linux Kernel).

Why did I bring up the example with Facebook/Mozilla earlier? This was to show that although people THINK that Facebook is free; someone is still paying for the product.