Sunday, February 18, 2007

Small Epiphanies

I was running this afternoon when it occurred to me that my running is a lot like my attempts at using emacs. Both start, go for a while, then stop. I think I’m over the hump with running though. I ran five miles today and didn’t feel like I had to quit at any point during the run. It took me three weeks and a lot of pushing through the little pains to get there though. First I had side splits, because my lungs were out of shape and I never really ran long enough to get past it before. Then my shins begged me to stop, but after running through the shin pain for a week and a half they seem to be ok with my milage now. All in all it wasn’t a terribly painful run, and it was the longest yet in my training for the Lincoln Marathon. What does it have to do with Emacs? I think learning to use Emacs as my editor will be the same way. One of the things that holds me back now is that I’m so used to the difference function in TextWrangler that whenever I need to compare files I just use that. What I need to do is work through the pain of figuring out the functions I need, I know they’re there after all. Another pain with Emacs is remembering how do cut and paste, which I still have to look up half the time (as well as doing regex searches). I imagine there will be a hump that I’ll cross at some point (and not know it) where I’ll know those things and it won’t feel so painful. I’m also aware that there are other pains I’m going to want to work through with Emacs like making the Windows key (at home) or the option key (at work) be the Meta-Key when I hold it down (instead of having to hit esc all the time!)... but I’ll work through that one in time too. I guess the key is to just keep at it.

Friday, February 16, 2007

Prediction: Next Big Language will be concurrent

I've been following the development of computing hardware and programming languages for a while now. Not as long as, say, Paul Graham, but long enough to have some opinions. Mr. Yegge recently posted about the Next Big Language. I think he's right on with it. The next bandwagon language that makes it big will, indeed, follow all of the guidelines he put in for it. One thing I think he's missing from the list is that NBL will have good, high level concurrency built in. The reasoning is that multi-core chips are going to dominate the next several years of processor advances. Processors built by Intel, AMD, IBM and Sun all ship with multiple cores. The upcoming lines scale the number of cores up greatly. These improvements solve multiple problems that have been around for years such as power consumption, the speed barrier. The problem with all of these cores, though, is making good use of them. The OS can dole out processes, true, however there are plenty of processes that could make good use of the extra horsepower. The problem is that doing so now is rather difficult and software engineers are going to have to come up with some way to ensure that concurrency can be handled with at least modest ease. This means safe process threads like Erlang gives, along with all of the other traits of NBL. Everyone can see where processors are headed and I can't imagine that NBL won't be in on it.