Notes on Learning Elixir
Start with src folder for code.
Elixir inherits a lot from Erlang and The Erlang Virtual Machine BEAM.
It's a new language that runs on Erlangs Virtual Machine.
Erlang Design Goals.
- Concurrency
- Fault Tolerance
- Distribution - Run everywhere.
- High Availability - Uptime is a priority.
Features.
- Erlang is a compiled programming language.
- Immutable state.
- Functional.
- Processes as a basic abstraction.
- Message Passing Concurrency.
- Process monitoring with automatic restarts.
- Distributed computing.
Erlang Implementation.
- Erlang Programming language.
- BEAM Virtual Machine
- Tools.
Elixir Founded in 2009.
Missing features in Erlang.
- Metaprogramming - It's difficult to extend the language to other domains due to lack of inheritance, its hard to clean boilerplate code.
- Polymorphism - If you need to extend a library your only option generally is to fork it.
Elixir's Answers!!
- Macros - Elixir is built in Elixir.
defmodule, def, if, unless. - Polymorphism through protocols these are like interfaces in OOP.
- Frendlier Syntax than Erlang.
- Better build toos.