sj: programming, ethics, embodiment

Of all the places to find something insightful, I ran across this little quote in the “Bush goes on a hunger strike” article on the onion.

“You must be the change you wish to see in the world.” -Mahatma Gandhi

I was just writing about the programming project with M. I mentioned at the end that he is working in asp and that I won’t work with him because of it. This quote got me to thinking about why…

A little technical info. Active Server Pages are a way of generating dynamic html that is used in conjunction with Microsoft’s IIS server. (There are arguably other ways to run asp’s, but in the end if you really want to use them then they have to be running on a Microsoft operating system.)

In order for two computers or two programs to talk to each other they have to have a contract of some sort worked out. Right now I am typing in English; you people can read English. When I say contract that is what I mean; an agreement to some basic rules. In this case words and sentence structure.

The agreements that computers have are called standards. Having a standard means that Jane and Joan can talk to each other because they each learned English even if they have never met before. Sometimes a certain group will create a standard that is only used within their group. This is appropriate when they only want to work within their group, but if they are a part of a larger community then their communications can’t be understood by everyone. Inside jokes could be analogous to this; a special meaning for a certain set of words that only makes sense if you are part of a certain group.

To move it back to computers, there are standards for how html works. A public group of people describes what can go into a webpage and everyone can read that. Browser makers will add extensions sometimes though. Internet Explorer, for instance, added a special tag that would make a marquee scroll across the screen. It is a nice effect, but they have essentially added to the language. People who go to write a browser will not know about the marquee and their browser won’t know what to do when someone has a marquee in it. It makes it so that if someone’s page uses a marquee then it has to be viewed in Internet Explorer to look right.

Sometimes standards are kept secret and intended not to be used by anyone else. These are called proprietary standards. (A new law called the DMCA restricts how people can work with proprietary standards.)

ASP’s tie in with several proprietary standards from Microsoft. Essentially if you write an asp then it will have to run on Microsoft’s operating system. This is the benefit of the proprietary standard. (It is conceivably possible to run an asp on another os, but it requires special work and I have never seen it done.)

I am not willing to write in asp, not because it is Microsoft, but because it is proprietary. It limits the choices that people who want to use my work have about how they can use it. Some people might want to have a school newspaper, but don’t have a few hundred dollars to spend on a copy of IIS so they can run it.

In my opinion certain things should not be controlled by a single body and basic frameworks like this is one of them. I want to live in a world where the basic tools that people need to work are free. As a programmer the programs that I write will affect the infrastructure of the places that they are used. In Huntsville they got a new linux box tun run their calendar and could not get rid of an old mainframe because of the piece of software that ran on it.

I want to create a few limits down the road as possible. If I choose to support open standards with my work (and particularly if my work is good) then I will make those standards more popular and more widely used. The same is true if I use proprietary standards. I think individual action does matter even though it seems as though one person can’t do anything. In some small way we create the sorts of worlds that we choose to live in.


P.S. If any geeks want to call me on it, I know that the java spec has not been given to the ecma. The jcp is an active part of the development process though and there are publicly available specs published for the vm and completely free (as in speech) implementations available.

Leave a Reply

Your email address will not be published. Required fields are marked *