I just started playing with Elixir this weekend, and it was a ton of fun. Ruby syntax + macros + Erlang semantics + UTF-8 strings is a great combination. And the <i>Programming Elixir</i> book from Pragmatic Press was a good introduction, too.<p>But I especially enjoyed Erlang's concurrency model and OTP. In a few hours, I was able to go from basic message passing, to a simple OTP server, to distributed processes communicating between multiple VMs, and finally to a supervised OTP server with automatic restart on crash. Erlang provides an awful lot out of the box, and Elixir makes it quite friendly-looking.<p>However, it's not a mature environment yet. The tools are pretty good for a young language, but the ecosystem is still small. Nonetheless, there's some cool stuff out there already:<p>Experimental web framework: <a href="https://github.com/elixir-lang/dynamo" rel="nofollow">https://github.com/elixir-lang/dynamo</a>
Mnesia distributed DB wrapper: <a href="https://github.com/meh/amnesia" rel="nofollow">https://github.com/meh/amnesia</a>
Heroku buildpack: <a href="https://github.com/goshakkk/heroku-buildpack-elixir" rel="nofollow">https://github.com/goshakkk/heroku-buildpack-elixir</a><p>I'll need to build a larger system in Elixir, but the my initial impressions are good.
Oh man, I love BEAM VM's design. Just looking at memory allocators, handling iolists, binary blob referencing, schedulers spread over all the CPUs, async IO threads. Just discovering that I found myself nodding my heading often say "aha, that's a really good way to do it".<p>It is good to see Elixir work on it alongside Erlang. I don't think everyone will jump ship to Elixir. For example I like Erlang's syntax (I might be in the minority) but meta-programming and ease of access to BEAM for newcomers is great.
Having been a bit of an 'Erlang is quite good enough' purist, I am becoming increasingly tempted to give Elixir a whirl.<p>I am a long term hater of Javascript (global state, aargh!) and I have been giving coffeescript a whirl (no global state, yay!).<p>One of the (unexpected) side effects is that I appreciate the readability of coffeescript vs javascript much more than I expected.<p>Jose Valim is also giving a talk at a conference I am organising next month (<a href="http://mostlyfunctional.com" rel="nofollow">http://mostlyfunctional.com</a>), so I am tilting heavily at the moment...
To be honest, I got very interested in Elixir myself. However, as I am trying to learn any Lisp, I am surprised LFE (Lisp for Erlang) or Joxa has not taken off, as the one thing missing from a lot of Lisp and Scheme languages seems to be a thread-based concurrency, specifically for multi-core processors having become ubiquitous.
I've spent the past few weeks writing quite a bit of Elixir, and I have to say that I haven't had this much fun with a programming language in a long time.
Finished writing my first elixir library a few days ago <a href="https://github.com/rramsden/scribe" rel="nofollow">https://github.com/rramsden/scribe</a><p>The language source code is incredibly clean and well documented. It's been a joy to work with so far.
I'd love to know what James Hague (<a href="http://prog21.dadgum.com/" rel="nofollow">http://prog21.dadgum.com/</a>) thinks of Elixir. Erlang is one of his stronger languages, and he's written a lot of articles in the past that I really enjoy.