So what's your "hobby" language? Do you have one? Or are you a "one computer language" sort of programmer?
For me that language is Perl. When I'm poking around with programming ideas or building one-off scripts for use on my Macs I always seem to turn to Perl. I know the language well enough to get most things done without too much hair-pulling and there's an active community to turn to for help if I get in over my head. And it runs on all the platforms I have access to.
Unfortunately, I don't get to write much Perl code at work anymore as most of what we're doing is Windows-only and PowerShell is the scripting language du joir at the moment. Personally, I have a love-hate relationship with PowerShell: I love having access to the .NET framework from a scripting language but I (really) hate its lame error handling and plethora of bugs and nonsense that's par for the course in a version 1.0 product. At least in its current state it's no Perl.
But I digress.
So what makes a good hobby language for those fun little projects we do in our spare time? I think the following might be a good place to start when selecting a hobby language:
- Should be powerful and expressive enough to actually accomplish what we want.
- Language-specific concepts and syntax should be easy to learn and easy to remember. Most hobby projects are done during spare time so fighting the language is a waste.
- There must be a reasonably active Internet community to turn to for support.
- Ideally will be open-source or at least available in a "free" version.
- You should have some interest in it.
If you're a programmer by trade you'll probably be tempted to just use whatever language and/or environment you're using at work. I think this is a mistake for a couple of reasons. First, who the hell wants to spend their free time essentially working in the same environment as they do for 8+ hours a day during the workweek? And secondly - and most importantly - your chances for learning something new are reduced.
So I'll go out on a limb here and state bluntly that your hobby language:
- Must be significantly different from what you use at your day job.
If you're a Visual C++ programmer then you probably shouldn't be tinkering and playing in any of the Microsoft languages. Select something like Perl, Ruby, or JavaScript. Anything that breaks you out of the .NET environment. And if you're a Linux/Unix guy at work then by all means, bring up a Windows machine at home and get cracking with Visual Studio and any of the CLR-based languages it offers. The idea here is to learn something new, work in something different, and above all, have fun!
Comments