When comparing Scratch vs Elixir, the Slant community recommends Elixir for most people. In the question“What is the best programming language to learn first?” Elixir is ranked 9th while Scratch is ranked 18th. The most important reason people chose Elixir is:
Leverages the existing Erlang BEAM VM
Specs
Ranked in these QuestionsQuestion Ranking
Pros
Pro Visual
Code is represented as visual building blocks that makes it easy to understand how a program is put together.
Pro Great starting point for kids
Scratch was developed specifically for kids ages 8 and up as an exciting way to introduce them to technology. It's designed to be easy to learn, but still provides good depth in computational thinking.
Pro Easy to learn
Scratch is designed to teach computational thinking rather than focus on specific syntax. It was designed specifically to be easy to learn for anyone over the age of 8.
Pro Highly structured
The language is highly structured. Therefore, it gives you the essentials of how to think like a programmer and teaches you good programming practices from early on, so you could write clean, working and readable code in the future.
Pro No need to be able to type
Pro Can be used to create games
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
Cons
Con For kids
For kids.
Con Won't get you a job
Scratch is not a language used in the workplace. Instead it teaches computational thinking, helping to create a foundation to aid in learning other languages.
Con Does not teach you programming
Learning Scratch might help you if you have high difficulty with logical thinking. However, starting with a proper programming language, especially an easy one, will give you the benefits of starting with something like Scratch and everything else.
Con Strange OOP
Scratch has a very strange implementation of OOP that is sprite based, and will become very confusing when you move to other languages.
Con Weird
It's straight up weird.
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