Brian C Cunningham has written recently that he appears to have been pigeonholed as a Blub programmer. In spite of extensive reading and experimentation with various cool languages and tools, he doubts that he can make the jump into an environment where he can continue to grow his skills– he feels like all anyone sees in him is “Blub programmer, x years of experience.”
I’m pretty much in the same boat.
I mean… will any employer possibly care if I told them that I’ve worked through half of SICP, internalized maybe thirty Emacs commands, can do some moderately interesting stuff with sed and pipes on Unix, and can write crappy Perl code? Will all of this stuff remain merely a secret weapon of mine while I continue on in work environments where such tools are unknown, actively feared, or completely off the radar?
I guess I don’t know where I’m going with all of this, really. I mean, I started off with Blub because I wasn’t too picky; I just wanted to be a programmer and it seemed to be the quickest way to get behind a compiler. As far as all of the open source type stuff went, I maintained a fairly Han Solo type attitude: “Look, I ain’t in this for your revolution, and I’m not in it for you, Princess. I expect to be well paid. I’m in it for the money!” But slowly, Open Source tools began to take over in my pet projects. It all started with NUnit, picked up steam with Subversion, blossomed with Emacs, and finally got clinched with Perl, GNUWin32, and cygwin.
Frankly I’m overloaded with the number of lame tools that I have to use at work. At any given time, I’ll have two or more IDE’s open, two or more Office programs, text files, folders, emulators… all of it open all day. I’ve stopped learning how to do new things with most of those tools because it’s a waste of time: the next iteration of any of them might crash or be so bloated it won’t work. They might replace my favorite feature… or the company that produces the tool might go away and suddenly have the worst support in the universe. Most of the best features of these tools are just mediocre unscriptable versions of stuff that Unix has been doing perfectly well for years.
(This is the point where I start frothing at the mouth, shaking my fist at “the man”, and decrying the evils of Bill Gates, Micro$oft, MS-DOG, Windoze, and the Steve Ballmer dance thing.)
My last Blub project was really awesome, though. I even see now how to completely remove my greenspunning elements and use a Perl script to generate the Blub code to do the fancy stuff specified in a programming language of my own invention– no one need ever know about the weird stuff I do just for the fun. If I leave my job, I can effectively leave behind only Blub code with hardly any trace of wackiness in it.
But it’s not about money anymore. It’s not about raw productivity. It’s not about doing stuff a certain way just to feel cool. It’s not even about some sort of rabid “freetard” ideology. It’s about tools that are worth investing in because I know they’ll be there ten years from now. It’s about tools that don’t constantly annoy me. It’s about developing the way I want to develop instead of being locked into somebody else’s vision of what a Mort/Rockstar/Elvis should do. It’s about using a set of tools that are freely available so that I have a common frame of reference with the handful of other developers out there that actually care.
But honestly, I don’t know what the next thing is. I’m a genius with SQL. I’m competent with regex’s. I can “get things done” with Blub. Outside of that scene, I can do little more than frame a mediocre question. Now what?
I really don’t know.
I have no idea where this leads. I never really chose anything per se… it’s all just a net conglomeration of thousands of small decisions that I make everyday.