[Warning: This post is rated PG-13 for mild adult language. Children under the age of 13 should be accompanied by a parent or guardian (but not, repeat, not Michael Jackson).]
If there's one thing I like, it's the opportunity to clarify my point of view over a controversial topic.
Some of you may recall (and some of you will never forget) Kathleen Dollard's essay in "Visual Studio" magazine entitled "Save the Hobbyist Programmer."
Some of you will also recall my response (which was actually up before the article printed, in case you're wondering about the dates on my post and the article).
It seems that Rogers Cadenhead certainly remembers it. At least he seems to remember, but memory can be tricky - even when we have the original post to which we can refer, or the cached Google version if you prefer to see it from an independent source, it's still possible to make mistakes.
Rogers was putting together what he calls a "hack" using FileMaker. If you've never used FileMaker, then think of something along the lines of Access Forms. It's a nice little tool to get data in and out of a database. Rogers had this to say about it:
The FileMaker hack reminded me of Save the Hobbyist Programmer, a controversial essay in the February 2004 Visual Studio magazine by Kathleen Dollard. She argues that casual coders are being left behind by increasingly complicated Microsoft development tools, a problem viewed as a happy outcome by professional programmers...
The words "happy outcome" linked to my post which was in response to Kathleen's opinions. What strikes me as odd is that Rogers is implying that I'm happy that hobbyist coders are left behind. Nowhere in my post did I say that I was happy about this.
The gist of my argument was that I thought Microsoft shouldn't sweeten the Visual Studio experience for hobbyists at the expense of professional developers. I'm happy as hell that we have the "Express" products coming out, and as I've been learning more about InfoPath lately, I've seen that it's a fantastic tool from which hobbyist coders could get a lot of mileage. If Kathleen's argument had come out just a couple months later than it did, with full knowledge of the Express line of development products available to us, there wouldn't even have been an argument. It would have been another quiet day in TechLand. As far as I'm concerned, the problem of the hobbyist programmer was solved the day we learned about the low priced alternatives to VS.NET 2005.
So, why am I going on about it again?
Because Rogers went a bit further:
For job security reasons, I can understand why pros believe that software should only be created by themselves.
...
If someone with expertise outside of programming can make a task easier through a scripting hack or database kludge, isn't that exactly what computers are supposed to be for?
I think this argument is pretty low. Software developers have enough sh*t going on right now that they shouldn't have to worry about accusations that the only reason they don't want hobbyist coders coming through and hacking together solutions is job security.
Let me be a little clearer.
When Rogers says that "If someone with expertise outside of programming can make a task easier through a scripting hack or database kludge, isn't that exactly what computers are supposed to be for?" he's right...
...to a certain extent.
A computer is a tool inasmuch as a hammer is a tool, or a good, heavy rock is a tool. A tool is something that people use to make their jobs easier. I'm fine with that. A computer is a tool, and computers can make your life easier.
What about plumbing? If my toilet explodes, I can go to the store and pick up a set of tools meant specifically for dealing with exploding toilets.
What about auto repairs? If my car explodes, I can go to the store and pick up a set of tools meant specifically for dealing with exploding cars.
What about hardwood floors? If my hardwood floor explodes, I can go to the store and pick up a set of tools meant specifically for dealing with exploding hardwood floors.
There are tools out there to handle many different jobs, and they are typically not too hard to get a hold of. This goes for software development tools as well.
There's something that doesn't come with the tools, though: Expertise.
If my toilet explodes, it might take me ten times longer to fix it than if I were to call a plumber. In that time, I'm missing out on doing the things that genuinely interest me, or the things I need to do. Sure, I bought the tools, but that doesn't mean I know how to use them efficiently.
I'm even OK with the reality that a plumber might charge me $80 to do a job that I "could" do on my own for 1/10th the cost. The difference is that, while the plumber does what he does best, I can go do what I do best. At my old billing rate as a consultant, I would have lost a lot of money by not paying the plumber ten times the actual cost of the repair for him to do it. If I do the job in five hours, and if the plumber quoted me $80 to get the job done, then I've basically hired myself to work at the rate of $16 an hour. Guess what: I made a little more than that as a consultant. Those are billable hours, sweety.
In addition, if something goes wrong with the repair, I can call the plumber up and say, "Hey, motherf*cker! You broke my god damn toilet, you dirty son of a bitch! Get over here so I can kick your ass!"
If my toilet breaks after I fix it, then whose ass am I going to kick? Mine? Are you crazy?
If I can rig together an A-Teamesque repair for the AC in my car, then what happens when that "repair" commits suicide a couple weeks down the road? Fix it again? Well, since I'm the one responsible, then you bet your hot buns I'm the one who's going to fix it again (and again (and again (and again (and again (and again (and again (and again (and again)))))))).
How much time am I going to spend repairing that car? In the end, how much money did I really save? How much time did I lose? How much did I spend on parts? How many parts did I ruin because I didn't know how to properly set them? How many fingers have I lost to power tools? Where's the benefit?
Expertise, which is not included with the tools, delivers peace of mind, (hopefully) a job well done, and some culpability (as long as you, the customer, are smart and don't let the contractor/plumber/whoever get away with murder).
I'm not saying that people shouldn't hack together their own solutions to problems. Sometimes you can't afford a plumber. Sometimes you just want to do it yourself. To that, I say: Go for it! The tools are there!
But don't think for a minute that the reason the professionals argue that their tools shouldn't be dumbed down has to do with job security. In some cases, I'm sure it does, but for the most part, that's just poppycock.
Why don't we take the teeth off a carpenter's saw to make it safer (although slightly less effective) for the hobbyist? Or the more advanced buttons (multiply and divide (whoah! hard stuff!)) off an accountant's calculator for the casual, armchair number jockey?
Sounds ludicrous, eh?
Makes you wonder how Rogers arrived at something like "Coders want better tools so that they can maintain job security."
Well, it makes me wonder that, anyway.
After Blog Mint [?] :
If you haven't read Tom Servo's blog yet, then... well... I guess you haven't.