I never knew a scripting language before. Ok, so I never knew any language before a half-year ago, so that’s not surprising. But as I’m finally beginning to pick up the pseudo-hacking traits I always dreamed I’d have, it’s clear now that some kind of dynamic, scripting language is missing from my toolbox. My first thought was to go back into the language I dabbled with a dozen times in the past but never truly learned: Perl. I always liked its philosophy and it’s got about a billion other people who use it, so it seemed like a natural.
Then I thought: well, if I don’t know any of them in the first place, why not explore more than one and pick the one that works best for me? I knew a little Perl, but other people have been talking up Python and Ruby a lot. It couldn’t heart to dabble there first, right?
Right. I decided to grab a book on Python first. Maybe it was the Monty Python reference or perhaps it was the kinda cool IDLE real time interpreter that came with the distrobution when I downloaded it. I figured I’d end up with something a lot like Perl and end up going back to the one I sorta-kinda-knew, anyway, so it’s not like it mattered. I picked up the book on Saturday and started to poke around.
Me think me in love. I’ll grab something on Ruby, I swear. No reason not to. But something about Python’s orientation toward easy list management hits me in my sweet spot. Screwing around with lists of things is probably the most common thing you’ll do with a language like this (well, maybe any language), but most languages make list management a stabbing headache. Sorting and searching and adding new stuff to it and all the other things you have to be able to do before the list is useful is built right into the core syntax. So built in that it’s featured in that simplistic overview section O’Reilly puts in the early part of their Learning X series. Usuaully you get something like “This is an array. You can add initialize it like this, but we’ll stop there before you start imagining ways to kill yourself too early.”
As a relative newbie whose primary interest is in design, one of the things I look for in a language are features that make me think of problems I could solve more easily. Throwing something in that gives me the “Holy crap! I could have made this other thing I built 100 times simpler and better with this!” reaction is the first step to making me a convert.
Python’s doing this in spades. If I already knew Perl well, I’d probably stick with it and actually learn it. It’s a good language with a huge community and a lot of excellent tools built in it. It’s a venerable, powerful language. And Python could just be attracting me with shiny newness, though it has less shiny newness than Ruby, so probably not.
I’ve got some more learning to do before I make a decision, but golly gee is Python cool.