Woot! I'm at the seventh language of my seven language tour, and since I skipped one language from the book, I now have a choice to make, which language do I finish my little tour in? I've been noodling on and off as to what language that would be. Since I started this little tour way back when there have been 3 other languages on my radar that I'd be interested in checking out, and they are all fairly pragmatic languages:
Mirah: Apart a general curiosity about programming languages, one of the reasons I was drawn to this book was that I was looking for a language to 'complement' ruby in my day to day work. While I love Ruby, at times I am unsatisfied with its performance. There are tasks for which I would just like something faster. Mirah, a language created by JRuby creator Charles Nutter, is a statically typed JVM language with ruby inspired syntax, but no runtime library. It compiles down to JVM bytecode (like Java) and depends entirely on the JVM for its runtime library
Go: A relatively new statically typed, compiled, garbage collected language out of Google with some well known names behind it. A language that aims to be simple and fast, with strong support for concurrent programming and a well rounded standard library. It looks pretty interesting (in a very pragmatic sense) and the Go code I've seen looks clean and sensible. I am also intrigued by the idea of just statically linking everything into a single binary with no dependencies, seems like it would make deploying programs super easy.
And the winner is, Go! I'm drawn to this one because it is
- a) Statically typed and compiled (and I mostly work with dynamic, interpreted langs at the moment)
- b) Designed to be fast/efficient (both in compilation and program execution).
- c) Has an interesting concurrency model I'd like to explore (goroutines and channels)
Plus they have a super cute mascot!