Khái niệm, định nghĩa Elixir là gì?

Elixir là một ngôn ngữ lập trình hàm thuần tuý (pure functional programming). Các qui tắc về immutable khá chặt, về cơ bản thì elixir không cho phép thay đổi một biến nào đó (không như scala mặc dù đã có val vẫn cố nới lỏng bằng phép cho dùng var).

Theo định nghĩa trên trang chủ thì

Elixir is a dynamic, functional language designed for building scalable and maintainable applications.

Elixir leverages the Erlang VM, known for running low-latency, distributed and fault-tolerant systems, while also being successfully used in web development and the embedded software domain.

Elixir có tính balance khá tốt giữa việc cân bằng các thuộc tính:

  • Lập trình hàm
  • Tính toán song song (dùng otp)
  • syntax sugar (dùng sigils hoặc là macro)
  • dynamic type nhưng vẫn support “nearly” strong type thông qua type spec

Việc vừa dynamic lại vừa functional programming làm elixir có chút nét tương đồng với clojure. Tuy nhiên tận dụng erlang vm lại là một điểm khác biết rất lớn. Erlang là một ngôn ngữ lập trình chủ yếu cho các chương trình phân tán, và đỏi hỏi tính song song lớn, tuy nhiên lại không được sử dụng rộng rãi bởi sự xấu xí về mặt syntax của nó :v. Elixir đã khắc phục nhược điểm này bằng việc sử dụng lại các khái niệm syntax được yêu thích trên ruby lang như là module, block, hash… khiến cho chúng ta có một ngôn ngữ vừa có hiệu năng tốt, lại vừa có syntax tương đối dễ nhìn.

Elixir được tạo ra bởi José Valim, một người mà cộng đồng ruby không hề lạ lùng gì, là core contributor của rails, creator của devise library cũng như nhiều thư viện ruby nổi tiếng khác. Chình vì thế mà elixir đã đi theo con được của ruby bằng tạo ra một web framework chuẩn mực là phoenix để leverage cho chính ngôn ngữ mà nó được viết bằng.