Elixir v1.0.0 released
elixir-lang.org
elixir-lang.org
It's great to see the core maintainers understand that you need MUCH more than just a compiler, runtime, and std lib to create a truly vibrant ecosystem. The Elixir project includes a standard way to do templating, a powerful and robust shell, a very full-featured unit testing library (not just assert statements), a standard logging system (this is sooo often overlooked), and, to top it all off, a build system that also lets you manage dependencies!
I honestly can't name any other ecosystem where you can just jump in and all these problems are already solved for you by the core project maintainers, instead of by 3rd parties competing for mindshare. It's truly refreshing because it gives the community a common language and toolchain to work with and get stuff done.
Hats off to everyone involved! You guys continue to amaze me.
That said, from reading the article you forgot to mention Hex, the package manager.
I think the reason for Erlang and Elixir's increase in adoption is that a lot of modern day Web applications have these same needs. Don't you want your web application or mobile app to handle failure in a way that doesn't bring the entire system down, and be scaled across several nodes easily?
The point about a lot of quality applications being in Erlang is well taken, though the interop is effortless.
I learned to love Erlang some time ago and its various quirks are mostly invisible to me, as I generally know them well and am working around them reflexively. However, I recognize that for people who don't know Erlang yet, Elixir provides a much easier path to obtaining full power of Erlang VM and ecosystem. It can also benefit more experienced erlangers, as it improves some Erlang features and then adds some totally new ones.
Elixir is a language which makes Erlang better suited to high-level, glue-like scripting purposes, while still providing full access to things Erlang does exceptionally well. In a way it's an effort to make Erlang reach outside of its specific niche by making many things traditionally hard or unpopular in Erlang easy to do in Elixir.
In short, if you're a serious programmer who works on anything that has a server or is related to network in some way (which includes all web apps, most mobile apps backends, all IM software, many different services like Dropbox and many more) - you owe it to yourself to try Elixir out. Now that the "awkward syntax" and many (admittedly) irritating quirks of Erlang are gone and you're left with just the good parts you have really no reason not to learn and use it.
I'm on the Dart team. We ship the SDK with a native VM, dart->js compiler, set of core libraries, package manager, and build system. There are canonical packages managed by the team for unittesting (using a Jasmine-style API) and logging.
I do have to admit the logging stuff isn't that baked, but the rest of the pieces are heavily used and have a lot of community-wide mindshare.
Not that I'm trying to steal any of Elixir's thunder here. I'm continually impressed by how polished everything they do looks. As someone who went through a language's 1.0 announcement, I really like how they clearly listed their compatibility expectations going forward.
What % of Dart's development is sponsored by Google? Not trying to get a dig in at you guys, but it's also interesting to note that Elixir has come this far without the financial backing of one of the wealthiest tech companies in the world.
- It's a language that sits on top of another language's bytecode (Erlang vs JVM)
- It has its own task runner and dependency manager (mix vs lein)
- It has homoiconicity and macros!
- One of its main features is amazing concurrency support.
But Elixir has been in development for a much shorter time than Clojure. Yet it's approaching the same level of maturity of Clojure very quickly.
I'm eager to see where is Elixir is adopted. I hope to see it gain some traction in the web development world.
So the clojure:java comparison is accurate.
Core Erlang is pretty unreadable though, so I do think it's a bit more complex than CoffeeScript.
PS: Elixir is not homoiconic but we do have Lisp-style macros.
This is probably because Elixir is more like Erlang than Clojure is like Java.
You might see Clojure as a more impressive feat for that reason. But to me, it means that Elixir has less to re-invent and can focus on "programmer happiness".
I've also talked to several others that are using Elixir for mobile game and Internet of Things back-ends.
Now that I'm more comfortable with the language I'm looking to use it for something more ambitious, such as a messaging layer that's specific to a cluster of application's needs.
https://github.com/phoenixframework/phoenix http://www.confreaks.com/videos/4132-elixirconf2014-rise-of-...
Personally, I've built a few projects, most recently a HTTP REST toolkit [2].
[1] https://www.chatblend.com/ [2] https://github.com/slogsdon/placid
Hit me up if that sounds interesting, we are looking to hire. Based in London/SF. ryan@spatch.co