However, after 2 small projects with Clojure, my thoughts have changed. To me it is the general programming language, and it's only a matter of time until clojure-beam sees the light of day (there's already Joxa).
Also, it occupies a weird spot: after v0.4's redesign, it pretty much kept Erlang's semantics, which made it unlikely to be adopted by old Erlangers and, with the whole OO thing was thrown away, it is too much a departure from Ruby.
The problem with the OO approach is that OO didn't suit well an immutable language. The Erlang VM forces us to keep Erlang's semantics and it has been this way before and after the redesign. There is no way around, believe me, I tried. :)
I agree its current version is a stronger departure from Ruby, but also simpler and more powerful than before (now we have all of Erlang in our hands!). We are exchanging the OO familiarity by a better/tighter integration with Erlang runtime, which will, hopefully, be a good reason for people to try it out. I also believe there are plenty of reasons for Erlang developers to try it out, it is more familiar (which actually helps) and addresses many of Erlang shortcomings (it provides protocols, dynamic records, dynamic function generation via macros, etc). During the next weeks, I will write a document more specific to Erlang developers on how Elixir addresses these shortcomings.
When you give Elixir a try, join us at #elixir-lang, I would love to chat more!
I've been closely following Elixir since it was announced and I should've made it clear that I still think Elixir is a fantastic project
At first I though it would be my doorway into Erlang programming (or Reia, at the time), with the familiar syntax and all, but eventually I learned Erlang and wound up actually enjoying it. Then, an opportunity arose to use Elixir but, because of its early stage (this was right between 0.3 and 0.4), I couldn't deploy it in a production environment, so I ended up choosing Clojure.
So now, between Erlang and Clojure, I can't see where I could justify using Elixir. It's just my personal experience, of course.
> Unfortunately, extending the Erlang VM is nowhere close to extending the Java VM. :(
No need to; one could just adapt ClojureScript to spit out Erlang. It would depend on the JVM and wouldn't support native macros, but it would work ok, I guess.
> The problem with the OO approach is that OO didn't suit well an immutable language.
I think you made a very wise choice when you ditched OO. I'm all for functional & immutable.
> We are exchanging the OO familiarity by a better/tighter integration with Erlang runtime, which will, hopefully, be a good reason for people to try it out.
I understand it might be premature, but I would love to know what kind of projects/developers is Elixir attracting?
Use Lisp to find and exploit a niche. Don't fight a popularity battle you will never win.
After I worked through the initial aversion, the syntax no longer feels worse than say, Python, it is just different. In fact, I wouldn't give up Erlang's pattern matching functionality for anything and I miss that feature in any other language I use.
I sort of dislike other aspects too, but nowhere near as much.
There are some posts with a little summary of what happened during the week.