This is a rant-sponce to Richard Stalman’s (RS) Javascript Trap.
First, I really am glad that RS is vocal in the community. He’s done a lot of good and if there is no one to argue the point then we become complacent. That said, I am not always his biggest fan, and I often think that he takes things too far, looking at the world in only absolutes. I’m sure that it’s a great way to make the world easy to deal with and give you an ulser in the process.
The problem that I have in his bit about javascript is that he is proposing something that doesn’t even fix the problems that he outlines, and in the process creates a bunch of headaches.
[goal] allow the browser to shift to a ‘free’ version of any application that is ‘not-free’
[RS-solution] tag every thing with a licence and have the browser fail over.
While I can see his point, to make this work you would have to have some standard way to pack up a licence with the app,and for every transaction, async or not. With out this standard then you can not begin to teach the browser what is ‘free’ and is ‘not-free’. Thats a lot of redundant bandwith that is only going to be useful to a small slice of any given audiance, thus I don’t think that there will be much buy in.
Though, just for a bit lets pretend that there was a good standard way that you could tag all code that is sent to your browser with a some kind of ‘free or not’ bit. How would you address the proper fail over? The only way that I can even begin to think about this would be to have some global registrar that would map non-free apps to there free alternative. Because this is the web the interface for this would again have to be taged with the ‘free or not’ bit, so even to get to a point where you could even do this you would make a reqest to Google Docs (the example from RS’s article), your browser would see that your trying to use google docs, if it’s smart it would first look the the global registrar, look up Google Docs, see if there are any alternatives, then ask you if any of these you would like to use any alternatives. If you pick one then your browser would then make the request for data from Google analitics, and pass that data to the alternative and then show you the result of what ever the output of the alternative was.
Sure you could “streamline” a few of these steps by having the alternative be installed as some local plugin, it would speed things up a bit, but it’s still a real long way around the issue. In the end all you would end up with is seperate code bases that happen to manage the same data, you would have programers that are struggling to mantain API compatablity and comply with all the given featuresets of what ever it is that there cooking up.
This is the most backwards way to attempt to FOSS-a-fy web-apps. What this approach basicly does is to state that every ‘non-free’ app is perfect the way it is, so perfect that we need to duplicate the effort just to make a copy. FOSS was all about having open solutions that you could remix to save time. If you found something that did 90% of what you wanted you could just modify it enough to get what you wanted. If we follow RS then we need to give up the 100% of what has been done to completely recreate it with the right licence. Seems like a waste of time to me.