Elixir:不老长寿药;万能药;炼金药。
Elixir-Lang, 设计者José Valim。
José Valim把一个语言起这个名字,表达了一个美好的愿望(妄想)。虽然我没有见到José Valim有明确的表达关于这个名字的含义,不过猜大概也猜得到了。
Elixir主页: http://elixir-lang.org/,目前公开的最新版本是1.2.x,1.2和之前的版本有一点比较重要的不同,比如map。所以要新学习elixir,最好直接从1.2入手。
Elixir当然是开源的,在github上能找到https://github.com/elixir-lang/elixir
Elixir由于设计者来自Ruby社区,所以也提供了包管理方式: hex。hex类似于ruby的gems和nodejs的npm,非常相似。
hex主页:https://hex.pm/
目前用elixir做的最有名的东西是http://www.phoenixframework.org/,是一个web后台框架,类似于ruby on rails。phoenixframework也是José Valim写的,相当于用ruby on rails的思想把这套东西用elixir实现了一遍。
当然phoenixframework也是开源的,代码在https://github.com/phoenixframework/phoenix上
目前用elixir实现的大部分还不错的东西都集中在这里:https://github.com/h4cc/awesome-elixir。但是由于elixir是一门比较新的语言,这上面的许多代码并不成熟,最好不要直接拿来就用,还是要看看参考实现。
elixir可以和erlang互相调用,所以看一看erlang有什么好东西也是必要的:https://github.com/drobakowski/awesome-erlang。
elixir的相关的书籍已经有了几本,但是中文版还没有看到,英文版的链接如下:
- Programming Elixir 1.2, 著名的Dave Thomas写的。我觉得Dave写的书都可以看看,都非常不错。
- Metaprogramming Elixir, 讲elixir提供的宏的。实际上日常写代码,宏用的比较少。但是如果要学习各种厉害的代码,比如phoenix等,就得了解宏的使用了。
- Programming Phoenix, 讲Phoenix的,作者是Elixir设计者José Valim本人,就冲这个也值得一看。
- Programming Erlang(2nd edition),Erlang设计者Joe Armstrong的著名书。想学习elixir,erlang是绕不过的。
elixir有且只有这么几本书要看而且能看,这是好事也是坏事,好事是一共就这几本,背都背下来了,坏事是参考资料并不多,学习起来要麻烦一点。
由于elixir实际上是增强了erlang的表达能力,而且几乎没有损失任何erlang提供的优点。所以elixir适合做erlang适合做的所有事情,并更加适合一些。
Elixir实际上糅合了各种前辈语言(common lisp,ruby, erlang等等)的特点。所以他实际上是一门实用语言,并不适合初学者初学。初学者如果以学习为目的,最好先多了解一些其他语言之后再来学习。