Thanksgiving, Computer Languages

I’m at the in-laws over thanksgiving; no high speed internet or anything like that (posting this over my FIL’s AOL account). I’ve got a lot of reading time, so I’ve been making my way through Practical Common Lisp, whose hardcover I bought back this summer.

My new hosts NearlyFreeSpeech.net happen to support Common Lisp as a CGI language, of all things, so the potential to have some fun with it is there.

I’m up to chapter 9.

Some parts of it make me want to run back to my old friend Scheme. The whole “function namespace” thing, having to refer to functions in a non-function-call context #’like-this. Goofy. But it’s a great book, and I’m really enjoying it. Taking it in small enough doses that my attention stays focused.

Finally having considerable real-world programming experience (in Perl) has given me an idea of just how useful something like Lispy macros could be… You can achieve something kind of like Lisp macros using source filters, but it’s far more hassle in Perl and far less powerful.

I also brought my Ruby on Rails book, but it’s not quite as interesting to me right now. Honestly, I know Ruby reasonably well, having played with it in work and home contexts since about 2001. I have never used it for full-time programming work, which would give me a serious knowledge of it, but I’ve used it for a lot of goofy little scripting. But I find Rails kinda hard to understand. I’m gonna have to put some serious attention into that Rails book and play with it a lot to “get” it.

I’m also a little worried about all the megahype Ruby’s getting. Pride goeth before a fall. It makes me kinda queasy to see one of my favorite languages get quite that level of buzz.

But my buddy Jim is interested in acquiring some Ruby-Fu, and he’s schooled in Java, so I wanted to pass along for him this link I found — 10 Things Every Java Programmer Should Know About Ruby. Looks pretty cool.

Catch y’all later.

Penny Arcade on Rails

Penny Arcade:

This week Penny Arcade is turning seven years old. We decided to celebrate by alienating our readers with a new website design. I’m kidding, we’ve actually had this design in the works for just over a year. Obviously we’re big fans of the look, I especially like how PAX, Child’s Play and PA all have a unified design now. Penny Arcade has something like four million readers though, and there’s no way we could ever come up with a site that would appeal to everyone. If you don’t like it I apologize, hopefully it will grow on you and you’ll be sending me hate mail in another three years when we change it.

Along with the slick new visuals the guts of the site also got a huge upgrade. Penny Arcade right now represents one of the largest implementations of “rails” on the intertron. I went and looked at a website about rails and then I got a headache. From what I gathered it’s either some kind of cutting edge programming language, or a way to liquefy a man’s brain inside his skull. I’m told that it means the site looks better and loads faster regardless of whatever hippy web browser you decide to use. Fuck M$!

For me, it feels like I was given the keys to a brand new hot rod.

Io 1.0 impending

ioblog:

The target date for a 1.0 beta is Jan 1, 2006 and the goal for this release is to clean up Io and make its implementation solid and ready for production use. This work involves a reorganization of the source tree, moving much of the implementation from C into Io, and extending the coverage of the unit test. Coroutines will be exposed within the language and actors, exceptions and the asynchronous networking control will be implemented in Io.

That’s cool to read. Especially the “moving implementation from C into Io.” I bet that really puts a language through its paces — insisting on pure language libraries instead of just wrappers of C libraries. (Of course I’m sure there will still be tons of C wrapper libraries — that’s something Io is very good at, and that’s a feature, not a bug.)

I haven’t done much with Io since I’ve been programming full time. Back when I was a sysadmin, a couple years ago, I was fascinated with different computer languages and kept learning new and interesting ones whenever possible. (That’s why I was writing Ruby scripts before everybody wanted to do Ruby because of Rails…) Now that I hack Perl full time, I don’t have the choice to say “hmm, I need a script, I could write it in bash or perl, but why not Python or Ruby?”

It’s nice to have gotten to know Perl much, much better than I had known it a couple years ago. I’ve learned some wonderfully cool things about Perl. But I miss those dillettante days. Maybe I eventually would have gotten to understand those wacky Haskell monads.

Now I find myself wanting to go back to Io and see what’s happened while I was away.

Ironically I’m doing something with Perl now (cooperative multitasking, using POE) which Io has always had built in support for.

Vim Experiment

I’ve been using Emacs for programming for years now. But I have been using old-school ‘vi’ for quick edits on configuration files and the like.

I know a lot of people who love the heck out of ‘Vim’, aka ‘vi improved,’ which is vi mutated to the point that it has capabilities comparable to Emacs’s.

I think I’m gonna try coding in vim for a while.

Any vim lovers who want to point me to good vim resources on the net or whatever, shout out in the comments.

UPDATE: I can’t do this right now. I need to be able to use my editor without thinking about it. I’m going to save the vim transition for a time I can afford to stop and think more.