adventures in erlang
A new language has you!
I have been meaning to expand my software development horizons for a while now. I once read that a developer should pick up a new language every few years. I would tend to agree. Learning a new programming language, much like learning a new spoken/written language, tends to open your mind to new concepts and ways of thinking. In the development world, this can mean a change in mindset towards approaching certain problem domains. As I learn a new language, it often gives me insight into ways of doing things differently in other languages. I consider language education a cheap "epiphany generator".
Over the course of the last few years, I have dabbled in C, Java, PHP, Ruby, and Python. There was even a very brief period of time where I used VB. I swear it was an introductory programming class requirement in college!
I have been meaning to add a more Functional programming language to my arsenal. I figured now was as good a time as ever.
Why Erlang?
In looking for a Functional language to learn, I thought of Haskell, Lisp, and Erlang. Erlang immediately seemed more interesting to me.
What did I find enticing in Erlang?
- Erlang was developed for use in telephony/telecom applications. Some phone switching applications developed with Erlang have, in some cases I have read, been running with ungodly levels of uptime (more than 5 nines?).
- An Erlang application can reload parts of itself on the fly.
- Erlang has distributed functionality built in from the start.
- Erlang, being a Functional language, has no programmatical side effects. A function always returns the same value when invoked with the same input.
- Variables are immutable.
- Interesting pattern matching.
In doing a bit of research to figure out which language I wanted to poke at next, I stumbled across Yariv's Blog. I read some very thought provoking articles there. I lay a little bit of "blame" there for my choosing Erlang as well. Namely, this post was the clincher. It started out a bit dry, then powered straight on through to campy with an air of Monty Python, while still containing some very interesting information. "Hello Joe. Hello Mike. Hello Robert. Hello Mike. Hello Joe."
Having been duly intrigued, I picked up a copy of Programming Erlang a few days ago. I have just started working my way through it. So far, I have found the book very well written and laid out. I like the style, as well as the logical progression.
What's next?
As I learn more of the language, as well as go through the book, I will make an attempt to post my "discoveries" along the way. It will likely be comprised of nonsensical things that I found interesting, or things that I found eye opening and/or meaningful.
Other interesting links
- Erlang First impressions -- A different point of view regarding Erlang. It provides an interesting alternate perspective. (Note that I don't agree with many of his points).
- What I learned from Erlang -- Another experiential blog post.
- Erlang.org -- The Erlang website.