When comparing Elixir vs Lobster, the Slant community recommends Elixir for most people. In the question“What are the best (productivity-enhancing, well-designed, and concise, rather than just popular or time-tested) programming languages?” Elixir is ranked 3rd while Lobster is ranked 26th. The most important reason people chose Elixir is:
Leverages the existing Erlang BEAM VM
Specs
Ranked in these QuestionsQuestion Ranking
Pros
Pro Great for concurrency
Leverages the existing Erlang BEAM VM
Pro Great getting started tutorials
The tutorials are very clear and concise (even for a person not used to functional programming). Plus they are also very mobile friendly.
Pro Powerful metaprogramming
Write code that writes code with Elixir macros. Macros make metaprogramming possible and define the language itself.
Pro Full access to Erlang functions
You can call Erlang functions directly without any overhead: https://elixir-lang.org/getting-started/erlang-libraries.html
Pro Scalability
Elixir programming is ideal for applications that have many users or are actively growing their audience. Elixir can easily cope with much traffic without extra costs for additional servers.
More details can be found here.
Pro Great as a first functional programming language!
Pro Great documentation
Elixir's documentation is very good. It covers everything and always helps solving any problem you may have. It's also always available from the terminal.
Pro Syntax is similar to Ruby, making it familiar for people used to OOP
All of the benefits of Erlang; without as steep a learning curve of prolog based syntax. Elixir is heavily inspired by Ruby's syntax which many people love.
Pro Easy to download libraries
Comes with built in build tool called "mix". This will automatically download libraries and put them in the scope of the application when you add them to the "deps" function and run mix deps.get
Pro Compile time reference counting
Unlike Rust doesn't make the programmer jump through hoops, mainly automatic. Does an analysis similar to the Rust borrow checker to infer lifetimes, but makes life easier on the programmer.
Pro Python-esque syntax
There's an audience who loves that.
Pro WebAssembly backend
More options for users.
Pro Inline structs
Structs are allocated in their parent, and come at zero overhead.
Pro Automatic memory management
Better than Rust. No sadism.
Pro Type inference algorithm
Just works. Goes further than most languages in terms of allowing code without types.
Cons
Con Deployment is still not as easy as it should be
Con Some design choices may seem strange
Some design choices could have been a little more appealing, for example: using "do...end" comes natural in Ruby for blocks but Elixir uses them for everything and it looks pretty weird:
Enum.map [1, 2, 3], fn(x) -> x * 2 end
or
receive do
{:hello, msg} -> msg
{:world, msg} -> "won't match"
end
Con Small community
Lead doesn't appear to be so ambitious or has a vision to push making more popular.
Con Compile time reference counting not 100%
Around 5% of time, need to escape to runtime reference counting. Working to get the percentage as low as possible.
Con Lobster not yet totally written in Lobster
Core written in C++. Plans to change that, but has been a long time.
Con Python-like syntax, but different use case and domain
Not Python compatible and often significantly different in purpose and use cases.