Last week I mentioned that I enjoy programming in Visual Basic and suggested that people shouldn't act so superior and look down at dweebs like me who program in dweeby languages. Today let's talk about why Visual Basic is an awful programming language and anyone using it should run kicking-and-screaming away. (I'll admit that kicking and running may be difficult to do at the same time.) Run away, not because it's lame, but because it's so horribly unfree.
Who owns this thing?
People sometimes question free software projects because very often no single organization stands behind them. Who are you going to hold responsible for Program X when it is causing a problem for Corporation Y? We've seen there are many support models to be had with free software, yet still there is this concern about ownership and responsibility.
It's so much better if a company stands behind a product. Take Visual Basic, for instance, backed by the full faith and credit of the Microsoft Corporation. No one ever got fired for buying Microsoft, I think the modified saying goes. Except of course Microsoft can really stick it to you when they change the game and you have no alternative. (Or an unattractive one.) Which they did with the move from VB6 to VB.NET. Here they had a thriving language with millions of users and they made significant changes that broke compatibility in important ways. Cries of outrage were heard from around the community. But did it do any good? Not that I'm aware of.
The lesson is that with a programming language/environment like VB, you're at Microsoft's mercy. It sounds obvious, probably, but it still surprises me that Microsoft would make such a boneheaded move and make it so glaringly obvious how much this can hurt you. Companies have made huge investments in previous versions of VB up to 6, and now they are faced with a very expensive migration. In a comparably free software project, with so many people unhappy about the change, it's virtually certain that compatibility would be maintained.
(Parenthetically, I think VB6 and applications made from it will work for a long, long time. No doubt they will work in Vista. The villagers would march on Redmond with torches and pitchforks if not. And then I suspect it will take 8-15 years for the next version of Windows to be released, if Microsoft is even pursuing the same business plan at that time. But still, how many people want to travel on an evolutionary dead end?)
Sharing (who doesn't own this thing?)
Even if Microsoft hadn't demonstrated so clearly how little they value the investment made by their customers in VB6 applications, I would have had to eventually ditch VB in favor of free software. Because the more I followed the free/open source software movement, the more I wanted to take part in it, to make contributions whether in code or documentation or promotion. And it would be silly to work on GPL'ed VB code. A non-free language on a non-free platform. Maybe there are people doing it, and I don't want to belittle their efforts, but it seems pointless.
My experience in mining for VB help and sample code also highlights a difference that pulls me to the free software side. There are a lot of helpful people in the VB community. Great forums and web sites, filled with useful suggestions and code. But as often as not, the samples you find have all these niggling restrictions on them. You can use this code in your compiled application, but you can't share the source code. Or it's for noncommercial use only. And so on.
Not to be ungrateful, since these little snippets and classes and utilities teach me and save me time, but come on. Why are they putting out these samples? Probably to help people. Very admirable. But does the person that makes a handy CRC32 class really think they're going to get rich off of it? Or are they afraid someone else is going to use it and by doing so make a million bucks?
If you're going to put source code on the net for all to see, make it free.
I do sound ungrateful, don't I? It's just that it seems so petty to put restrictions on relatively small bits of code when you look at the free software movement and all the great code out there that is freely available. It feels so right to make software this way. I want to work as part of a community that explicitly defines the freedom we have to work with software. That values and encourages sharing, with no strings attached. Except that you must share in turn. Which I'll do. Gladly.
In other venues: free culture
For a tale of software licensing, patents, and DRM gone awry, please visit the Moving to Freedom web site at http://www.movingtofreedom.org for my science fiction story, Picnic. Sure, it was rejected by print magazines, but it was rejected nicely.
Reusable with this attribution, and please note if modifications are made: Copyright © Scott Carpenter, 2006. Originally published in Free Software Magazine. Creative Commons Attribution-ShareAlike License (CC-BY-SA-2.5).