In my first post here at Free Software Magazine, I mentioned that I actually like using Microsoft Windows. People seemed to let this go or find it not worth commenting on, maybe because my goal is to move away from it. Not that I expected rabid opposition. Not at all. GNU/Linux users are well-known for being quite mild and reserved in their opinions. If we must go back to my drug use analogy, it could also be that readers here were supportive of my desire to seek treatment and rehabilitation and didn't see the need to condemn me for past transgressions. (But really now, the drug metaphor has to go.)
Perhaps just as egregious a violation of the principles of free software has been my use of Visual Basic over the past ten years. And similarly, I'm going to tell you that I like programming in Visual Basic. (Version 6, specifically. Not VB.NET/Visual Fred.)
Really? Visual Basic?!
The way I see it, there are two issues here. One is the (lack of) freedom of the language and that's mainly what I want to talk about. Two is the language itself; the contempt that people have for Basic. Let's briefly address the shame and scorn associated with using the "wrong" language before moving on to the topic of freedom and sharing.
Most people have strong opinions about programming languages, of course. While I think it's good to be aware of the merits and shortcomings of different languages, most of the debate is extremely tiresome partisan bickering. Why is that? Does John's use of Ruby infringe on Sally's use of Python? Is it because Billy Bob never wants to support another Perl program and would like to see it die a painful and unmourned death? Is it the desire for validation, that we want to be acknowledged for using the best darn language there is?
I know it's not always like that. I didn't say all of the debate. Just most. Some debates are more civil and pragmatic about the merits of different languages for different purposes. But try introducing Visual Basic in to the discussion and you're likely to experience some caustic ridicule and disdain from self-satisfied hotshot programmers.
I have to confess: I care about that kind of stuff more than I should. Am I being overly sensitive? Maybe. On the one hand, I don't care if Bobby wants to put down VB and VB programmers. On the other, yes, I'd like to be taken seriously as a programmer, even if the language I'm most proficient in is the much derided Visual Basic. It's kind of a personal problem if I care what other people think, I guess.
One more time: Visual Basic?
Yes. Visual Basic. I learned it in school and on my own before taking an internship with a company to develop a VB program along with another intern. It was part of a large suite of applications used by the company; client/server programs that talked to an Oracle database. I went on to work at this company and with this suite of applications for over three years, and it gave me the perspective of knowing that VB could be used for real work, so it was hard to take seriously the people that dismissed it out of hand. I knew that VB was a tool that added value to business. (I suppose now I should hang my head at being a corporate applications developer, which is also way uncool. It's just so darn hard to fit in with the "in" crowd.)
I had the opportunity to learn Java and move in to a new job where I used that instead of VB, but I continued to use VB for little utilities that helped me and my new team do our job. And I've used VB for all kinds of personal applications. It's enjoyable to program in. It is so easy to put together a GUI to do some odd job. It can be made to do some pretty cool things, I think.
Another criticism I often hear is that VB is too easy--that it lets any idiot think they can be a programmer. This is silly. We shouldn't complain about lower barriers to entry. "Easier" languages and enabling-tools let so many more good people with good ideas play. People that might not learn C can still do some valuable work with a language like VB.
Yet still, I often feel like a half-programmer. As if it's not good enough. As if it's something to be ashamed of. Setting aside the question of freedom, which we'll take up next week, why should anyone feel down about the programming tool they use? With VB and the applications I've created for my employer and myself, I've had the opportunity to engage my mind with logical thinking and revel in the joy of solving problems. I've been thrilled to create programs that solved problems for myself and others. That made things better. Isn't that why anyone programs? VB lets you do these things!
I'd end with a plea to be kind to all those beaten-down VB programmers out there and allow them to pursue their craft with dignity, but I can't fully support that sentiment. (Other than that you should be kind.) Because of course, VB is totally unsuitable for use in a free society. Still, don't be too harsh on VB programmers because you think they are serfs using an uncool, toy programming language, but rather have pity on them because they are sharecroppers who could instead own the land they farm on.
Now playing across town
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).