Tuesday, June 29, 2004

Software Revisited

If you don't care about software, just move on, there's nothing of importance.

Of course, since you live in the world today, you contextually interact with software (ATM machine, credit cards, cashiers, newer cars, cell phones), and I think you should care about software.

A while back I listened to Richard settlement. He's basically the creator of the Free Software movement. And that's free as in freedom, not as in free beer.

Anyway, the main thrust is that all software should be freely renewable, freely modifiable, freely distributives, and anyone should have access to the source code. That a lameness definition of "free software", a slightly more in depth version is here. We can argue whether or not "free" is a good name (see the section "Linux isn't free" here, but not right now. If you care, the difference between "open source" and "free software" is that someone can distribute an "open source" program without distributing the source, the "free software" disallows that option.

I debating with a friend about whether or not the "free software" license could hold for all software. In other words, if all software was "free", would we have the software we need today.

His thought was, "No". He thinks that there is some software that costs so much to develop, that no one person/company will invest in writing the software because if they give the source away, they'll not be able to recoup their investment. However, he couldn't come up with an example that I thought was reasonable, and I don't think he was convinced either. That's not to say we somehow "proved" that there is not an example that fits his criteria, but I think it is unlikely.

There's also the misconception that you cannot make money selling "free software". I think that's ludicrous. At work we're paying $250,000 per year for 35 user licenses to run some debug software. It's crap debugging software, and I'm working my hardest to get it kicked out because I think it's a waste of money. If someone came up to our department and said, "I'd be willing to support GDB/DDD for half of that", I don't see how we could refuse. In fact, that's what I'm trying to get done.

You just can't think of selling software in and of itself, at least not for very much. You have to sell a service. And, clearly, companies are more than willing to spend huge amounts of money for software today (that they can only run a limited number of times), so why not spend the same money for the upkeep service of different software?

Ok, so I've been talking about what a big company, like Intel, might do.

How does this affect you? A simple person?

Chances are, you probably don't care about seeing the source code. But you'd probably be happier if you knew you could install and run the software you just bought on as many machines as you want. And if a friend wanted a copy, you could give it to them. Sounds good, yes? Perhaps it sounds greedy to you. But you can give your friend a book or a recipe for paprika chicken, why not a computer program? It is yours after all.

But forget about that argument for a second, let's talk real money: taxes.

Think of where your tax money goes. A surprising amount goes into buying and supporting software. You've got different states/cities/counties all buying different programs to do payroll, billing, monitor traffic and weather, and data collection and processing of all kinds.

Imagine the following scenario: the city utility department is licensing some software to gather all the billing and usage information, and send out bills to the customer. Imagine that company goes out of business? What now? The city is screwed: the license expired, and there's nobody to support it. What if there's a bug? No way to fix it.

Your tax dollars are going to fund software that is proprietary, and if the company goes out of business or even changes their mind, you get the shaft. Don't you want the city to at least have an exit plan? Perhaps access to the code in the event of the company going out of business?

That's chump change though.

Think about military defense spending. You see that we're going to spend about $400 billion on defense. How much could go to software? How about $20 BILLION!!!! Wouldn't you want to know that the military has access to the source code? Would you trust someone like Microsoft to write your missile guidance system? What about national security? How do you know that the company you're buying your software from hasn't outsourced the software writing to a some third world where a terrorist from Afghanistan or Pakistan could insert malicous code? Hell, even the U.S. breeds terrorists - think of the unabomber or Timothy McVeigh. If you can't see the source code, you cannot tell if there is a back door that allows an untrusted person to do something we wouldn't want them to do.

Don't just blow that idea off. Think about it. We're talking national security! The missile guidance system, air traffic control software, your social security checks, all this is likely proprietary and you have no idea whether it is safe or not.

Ok, so national security doesn't appeal to you. What about voting? Do you want to know that your vote counted? Do you want to ensure that someone didn't rig the election? That someone didn't hack in and change the results? Well, in the U.S. you can't be sure. If only you lived in Australia, then you could be sure that the software counting your votes is both secure and fair. But no, in the U.S. we're paying billions of dollars on electronic voting systems that don't work, that are insecure, and that don't even provide a paper trail to allow double checking!

Software, you're paying for software that you'll never have control over.

And worse, it has a huge impact on your life.

1 comment:

globalrenovation said...

You got my vote (but what did you do with it?)... free for all time!