Elixir介绍

Elixir 是一个基于 Erlang 虚拟机的函数式、面向并行的通用编程语言。Elixir 以 Erlang 为基础,支持分布式、高容错、实时应用程序的开发,同时亦对其进行扩展使之借助宏实现元编程,并通过协议支持多态。

其实Elixir的出现是为了解决Erlang语法过于生涩,尽管Erlang的语法是为了迫使系统的错误能尽早地出现,甚至在编译时就反映出运行时的错误。但它的繁琐其实反过来限制了程序员的思维,太难让人进行高效编程。

Elixir 语言的设计者的目标是在维持与现有 Erlang 工具链及生态环境兼容性的同时,让人们可以在 Erlang 虚拟机上进行扩展性更好的、高生产率的开发。Elixir 是编写高度并行处理,高可靠性应用的极佳选择。

Elixir的语法在向Ruby致敬,同时透着Erlang和Prolog的灵气。任何语言语法的设计都和其创始人的偏好和目标分不开,Ken Thompson/Rob Pike的golang看上去很C,Jose Valim的Elixir自然就很Ruby。

网站

官网地址:https://www.elixir-lang.org/

源码:https://github.com/elixir-lang/elixir

安装

一.解决依赖

因为Elixir构建于Erlang之上,所以我们先需要把Erlang装起来。这里我们先解决依赖:

如果是CentOS,请输入如下命令:

yum -y install make gcc gcc-c++ kernel-devel m4 ncurses ncurses-devel openssl-devel zlib zlin-devel

如果是Ubuntu,请输入如下命令:

sudo apt-get install libncurses5-dev m4 fop freeglut3-dev libwxgtk2.8-dev g++ libssl-dev xsltproc build-essential tk8.5  unixodbc unixodbc-dev libxml2-utils
二.安装java8

这里java安装其实是可选的,编译Erlang-OTP时候会检查java编译器是否存在。不过个人建议还是安装下,具体安装见本人另一篇博文:Linux安装java8

三.安装Erlang-OTP

Erlang官网最新的Erlang-OTP版本是20.2,就安装这个,先下载文件,然后解压到自己定义的软件目录,比如我的/home/soft目录:

wget http://erlang.org/download/otp_src_20.2.tar.gz
tar –xzvf otp_src_20.2.tar.gz
cd  otp_src_20.2
./configure     
make -j8 && make install

如果Terminal终端下输入:erl ,会有个Eshell出现,证明Erlang安装成功!如下:

Erlang/OTP 20 [erts-9.2] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:10] [hipe] [kernel-poll:false]

Eshell V9.2  (abort with ^G)
1> 
四.安装Elixir

然后来安装Elixir,最新的Elixir版本是1.5.3:

wget https://github.com/elixir-lang/elixir/releases/download/v1.5.3/Precompiled.zip
mkdir -p /home/soft/Elixir
cp Precompiled.zip /home/soft/Elixir
cd /home/soft/Elixir
unzip Precompiled.zip

然后vim ~/.bashrc ,修改配置环境变量,添加下面两句:

export ELIXIR_HOME=/home/soft/Elixir
export PATH="$PATH:$ELIXIR_HOME/bin"

最后source ~/.bashrc使其生效。

五.测试和第一个程序

终端输入elixir -v,如果打印出:

Erlang/OTP 20 [erts-9.2] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:10] [hipe] [kernel-poll:false]

Elixir 1.5.3

证明Elixir环境安装成功!

新建一个名为hello.exs的文件,写入以下代码:

IO.puts "hello world"

执行elixir hello.exs,如果打印出hello world,证明Elixir编译执行成功!

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐