I started learning Ruby and Python at about the same time, back in ’99 I think; at the time Ruby was cooler in some ways that mattered to me and I took a dislike to Python for not being Ruby.
I don’t know why, but I want to do stuff with Python now.
Of course, I’d really like to learn Haskell. But I think that it might be a bit beyond me. I like the idea of pure functional programming; my own programs even in imperative languages tend towards the purely functional. It just reduces confusion. But to learn Haskell well you have to learn about monads, and monads still make my head hurt. I get them in a vague basic way but when I try to get the details into my head it doesn’t work.
The same thing is true with continuations in Scheme, another language good for pure functional programming, though not to the same degree as Haskell. I understand the basic idea of what a continuation is, and I’ve even been behind a rewrite of a large chunk of our code at work in a continuation-passing style (long story why I did that but as far as I can tell it was the only non-insane way to accomplish what we needed to accomplish). But every time I try to actually play with Scheme’s “call-with-current-continuation” form it doesn’t work and I don’t understand why.
I sometimes like to imagine to myself that for a self-taught guy I’m a pretty sophisticated programmer, I like cool, obscure, conceptually superior languages (besides Ruby, Python, Haskell, and Scheme, I’ve messed around with Smalltalk, Common Lisp, Io, and even Prolog). Sometimes I manage to convince other people of that sophistication. But stuff like the monads and continuation thing makes me think maybe I’m not as sophisticated and cool a programmer as I imagine.
I look back on my life and there were a lot of times where I read a book or twelve on a topic and thought I really knew a thing or two about it but I look back on it and I really had just read some books. I used to think I really knew something about cognitive science, about linguistics (OK, I still think I really know something about linguistics), and going back farther about philosophy of language and literary criticism, semiotics and the like, and further back than that, I thought I knew a lot about Christian apologetics cause I read a lot of C.S. Lewis (and G.K Chesterton).
I don’t think of myself as an knowledgeable in any of those areas anymore, well, except maybe linguistics, a bit. I don’t read a lot about them or think about any of them anymore.
Maybe my conception of myself as knowing something about sophisticated programming topics is destined to fall by the wayside the same way.
Maybe I never will master Haskell or advanced Scheme techniques, and I never will do anything significant in programming outside my job hackin’ the Perl.
Maybe that’s OK.
I dunno, it’s just a weird mood.