There are two conferences that I’m not going to be able to go to this summer that I really wish I could find a way to swing: The Erlang eXchange which will be in London on June 26-27 and The Ruby Hoedown in Huntsville, Alabama on August 8-9. Erlang was a hot, swirling subcurrent at the 2008 MountainWest RubyConf. I get the feeling that there’s going to be a growing culture of cross-over
Levi pointed me to a presentation on Clojure, "a dynamic programming language for the JVM". That's actually a pretty bland description. I'd describe it at least as a dynamic functional concurrency-oriented lispy language for the JVM. The presentation was interesting, though I wish I had been able to follow the ant colony demo (it's audio-only).
It awakened the oft-recurring "functional floundering" feeling. I've written a semester worth of scheme in a programming languages course. I've read the Erlang book and written a little Erlang code. I recently went through a graduate course in programming languages with emphasis on denotational semantics. I understand the lambda calculus, functional programming, etc. But I feel completely stymied whenever I think about actually programming in a functional language.
I'm not sure what the root is, but I'm sure it boils down to lack of practice. That undergraduate course aside, I haven't had any practice. And since that course was very handholding (too much in retrospect), I don't feel like I took any practical skill away from it. Yet I feel that in the future functional programming for concurrency will be important, even if I'm not convinced it will be essential.
So I don't have time right now to really rectify the situation, but that doesn't stop me from wondering—how does one learn practical functional programming? What problem sets do you work through to get the needed practice? I suppose the question can apply to learning any new language, but there is much paradigm carry-over between imperative languages (and probably between functional languages). Are there certain problems that will aid that paradigm shift? If you feel like you've developed functional chops, in any functional language, I'd like to hear in the comments how you got there, what you'd change in retrospect, and your advice for me and others like me.
Sorry I’ve not updated things in a bit, I’m hanging around the fringes of the flu and trying to play nurse for my family while they all suffer through it. In the meantime, I’ve let a lot of little things pile up and need to get them off my chest. First, I’m really excited by Gregory Brown’s new status as a Ruby Mendicant. Even better is that Ruby Central is going to match donations up to
Over on my On Erlang blog I’ve been writing about a book that O’Reilly will be publishing soon, “Practical Erlang Programming”. There’s still no official announcement, but both the editor and the authors have confirmed the book to me and have talked a bit about why they’re writing it. Jan Henry Nystrom and Francesco Cesarini, the authors, have been kind enough to continue our discussion, and
I recently picked up a beta copy of Programming Erlang: Software for a Concurrent World to go along with my (paper) copy of Programming in Haskell. I figured if I had both books, I could make quick runs through them as I try to decide between Haskell and Erlang as the FP language I'm going to focus on this summer. What follows isn't really a review of either book, just a few first impressions.





