As I was walking across campus in the beautiful snow today, I had a little revelation:
The biggest threat to Free Software (Free as in Freedom) will not be proprietary software, it will be psuedo-open software.
The web has always been sort of open source. If you are using Firefox, you can look at the code for this page right now by pressing CTRL+U. It takes like a millisecond. It’s that fast. And two recent web technologies–AJAX and GreaseMonkey–have enabled an even greater degree of openness. But this openness can be deceiving.
Probably half of you are wondering what a cleaning solution and an oiled orangutan have to do with the internet, so here’s a quick explanation of what AJAX and GreaseMonkey are:
AJAX
It used to be that the web was simple. People created web pages. Web pages had hyperlinks in them. People clicked the links, and they got new pages.
But around 1995 the clever people at Netscape decided that they were going to let people put little programs in web pages, and so they invented a programming language for web pages called Javascript. Ten years later, we are finally figuring out what kinds of cool stuff we can do with this, and that’s where AJAX comes in.
Under the AJAX model, you download a web page, and those little Javascript programs can keep talking to the computer that page came from, getting more and more information. So when you visit Google Maps, and you click and drag the map, the web page is just talking to the server asking for more map. You don’t have to click any links or change pages to get more information.
GreaseMonkey
GreaseMonkey is an extension that you can download for the Mozilla Firefox web browser. It lets you write your own Javascript programs that you can add to web pages. It’s kind of like infecting the page with a virus, except it’s a good virus. It’s one that makes the page better.
A few days ago I wrote about some GreaseMonkey scripts that I wrote. One is a little program that goes through every web page I visit and adds the address of every link to its tooltip so I can see it when I mouse over the link. The other is a program that changes the Google results links so I can copy and paste them.
Enabling Openness
So, how do AJAX and GreaseMonkey increase openness? Well, an AJAX web application is made of two parts: 1) the web page with the Javascript programs that is reacting to the user and assembling the page, and 2) the web server that is passing data to the page. What makes this arrangement more open is that can replace the page (part 1) with your own page that does different stuff.
So when Google released their AJAX-oriented Google Maps application, people made all kinds of applications that did just this. I use Gmaps Pedometer to measure the routes I run, and it’s a great example of what can be done.
Riding on the coattails of the AJAX movement, GreaseMonkey enables even greater openness. It lets you change how AJAX applications work without having to build a whole new site, as the Gmaps Pedometer people had to do. With some limitations, GreaseMonkey makes the web page half of AJAX applications pretty much open source.
The easy sell
There are a lot of benefits to Open Source software, and when you compare it to proprietary software, the value propsition is pretty clear:
- Anyone who wants to work on an Open Source application can just jump in and do it. That means lots of people thinking up cool innovations and making them happen. It makes software exciting again.
- If something truly annoys you, you can just fix it.
- You own the code. You aren’t at the mercy of some developer to fix and improve your software. If push comes to shove, you can do it yourself. Business love this, because it gives them more leverage.
- Lots of people see the code, lots of people test the code, so it generally has fewer bugs.
- The only kind of proprietary applications that get built are ones that are worth building a business around. If it can’t make money, it doesn’t happen. In the Open Source world, however, the only requirement is that there is a developer that things something is worth building, so you get a wider range of software.
- It’s cheaper to get. You don’t have to pay.
- It’s cheaper to develop. You might have 20 companies each contributing one developer, and each company reaps the benefit of the other 19 developers that they aren’t paying. If you wanted to build the same software under the proprietary model (i.e., alone) you’d have to pay 20 times the cost.
The problem is, while these AJAX-enabled, GreaseMonkey modified applications offer some of these benefits, they don’t offer them all. #1 is especially powerful, because it pulls developers away from fully Open projects. The Web 2.0 world, where all this AJAX stuff is happening, is really exciting, and developers have access to a lot of interesting code. But they don’t have access to all of it, and when you hit a wall and realize that you don’t have access to the code you want to change (because it’s running on Google’s servers, for example) that’s going to be pretty frustrating.
And while it may not seem like it, proprietary software developers are still the gatekeepers. Gmaps Pedometer will only function as long as Google keeps Google Maps up and they don’t change the API, or introduce security measures to lock out 3rd parties.
Thankfully, the web is an ecosystem, and if Google locked out 3rd parties, those parties could just switch to leeching off of Yahoo or Microsoft. But this brings us to my main point.
The Dark War
AJAX and GreaseMonkey give us a lot. The developer community growing up around them is exciting. It’s fun to write apps, and we’re seeing a lot of cool Mashups. It feels a lot like the Open Source community.
However, we don’t own the software we’re writing. There are restrictions hiding in the shadows that will come to bite us. And the people who control these applications in the end are beholden to shareholders. It’s tempting to buy into these technologies, but we must be wary of these facts.
I am not saying that we should stop hacking AJAX applicatios and disable our GreaseMonkey scripts. They are useful and fun, and half-open is better than closed. What I am advocating is that we continue to be aware of what elements of our computing world are still closed, and try and support more open ones.
MovableType is perhaps half-open and for a while many people supported it because it was high quality, and had a lot of the benefits of Open Source even though it wasn’t truly open. But when Wordpress appeared as an alternative, a handful of Free Software devotees rallied behind it and now it is eclipsing MovableType in terms of developer brainshare. And that’s a good thing.
So I’m keeping an eye on Nutch, the Open Source search engine, even though I use Google every day. And I’m watching the Hula email server while I send messages through gmail. Certainly if I find myself writing uglier and uglier GreaseMonkey hacks to get Google’s stuff to work the way I want, I will start seriously thinking about switching to the Free alternatives.
The time may come when it’s important that people start shifting to these applications from the proprietary alternatives, but for now I’m just watching.