I've been thinking a lot lately about the role of government from a technical perspective.
Internally at the city, we run Windows. We have a massive amount of software that needs to be written. We also have a very small development staff. Because of that, we picked the .NET Framework for our development needs. Because we look in the Framework before reinventing the wheel, our average development cycle on a tool is about eight weeks.
However, we've been preparing to release some software to the public, namely a real-time mapper component for our town. I developed the core component in five days in my own time as a lark, but it worked well enough that we've integrated the component into almost every project here in the city. And we're releasing it for Windows only.
I can hear the open-source zealots screaming, "Why are you ignoring your Linux users? Why are you ignoring your Macintosh users? Why are you ignoring your FreeBSD users? Why are you telling people that in order to use your service, they have to pay money to a monopolist, etc., etc." I can explain quite easily.
First, our stats. We use AWStats to gather statistics on the visitors to our website. While not an ideal way to gather operating system usage statistics, given that we are a local government entity, it is safe to assume that we will be getting an accurate cross-section of our computer-using citizens.
As of 8:09am this morning, Windows was at 95.9%. Macintosh held 1.1%, and Linux and FreeBSD were both on the list with 0.0%. (Update: This means that Linux and FreeBSD each had only 1 visitor. Due to the level of traffic on our site, the single visitors were not enough to be statistically meaningful.) The remaining 2.8% are search engines and tools that we use internally.
Now the zealots are going to yell, "What about Mono? Why couldn't you write the tool in Mono? That way, you'd also be supporting a Utah company (Novell)." We code in Visual Basic .NET here at the city, and until Mono has their Basic compiler functioning, the ROI isn't there for us to port it to Mono/C#.
Now the zealots are going to yell, "This is a vicious cycle. By only releasing software for Microsoft products, you are reducing our ability to compete, because when people see you release software for Microsoft products, they'll buy more Microsoft products, etc." Let's say I did release a Linux version. The Mac guys could make the same argument about me utilizing the x86 architecture. "It's not fair that I don't also support the PPC..."
As much as we would like to believe that government exists to ensure the rights of all citizens, occasionally governments have to not serve a portion of their community. We have a portion of our citizens who do not want flouridated tap water. We have a majority who do. In this case, we are serving the majority. The minority who do not want flouride can go buy bottled water if they want to.
It's the same with our software. We are serving the needs of the majority. Those in the minority can buy other mapping packages if they want to, or use a free service like MapQuest.
Government is like the original Ford. You can have any color car you want, as long as it's black. Once every election cycle, the people as a whole make their choice. Our role is to fulfill that choice. As for software, people make their choice with their pocketbooks. When 95.9% of your customers are telling you something, you listen.