The following is a guide to help compare Elixir and Ruby syntax and implementations.
|
Ruby |
Elixir |
Characteristics |
Object-oriented, Imperative, Metaprogramming |
Functional, Actor Concurrency, Macros |
Typing |
Dynamic |
Dynamic |
Concurrency |
N/A |
Lightweight Processes |
Static Analysis |
Not Available |
Optional Typespecs |
Interfaces |
Duck Typing |
Behaviours & Protocols |
Package Manager |
RubyGems |
Hex |
Task Runner |
rake |
mix |
Interactive Shell |
irb |
iex |
Testing |
RSpec, test-unit, minitest |
ExUnit |
Web Framework |
Rails |
Phoenix |
Virtual Machine |
YARV |
BEAM |
Distributed Computing |
N/A |
Open Telecom Platform (OTP) |
Define a method/function |
|
|
Variable assignment/Capture |
|
|
</tr>
Hash/Map Syntax |
|
|
Array/Tuple |
|
|
List Syntax |
|
|
Map an Array/List |
|
|
Range Syntax |
|
|
String Interpolation |
|
|
Reverse a String |
|
|
Define a class |
|
|
</tr>
Anonymous Functions |
|
|
Call Anonymous Function |
|
|
</tr>
Define Module |
|
|
Atoms |
|
|
Division |
|
|
If |
|
|
Else If |
|
|
Printing |
|
|
Looping |
|
|
|
|
|
Pattern Matching |
|
|
Guard Clauses |
|
|
Metaprogramming |
|
|
|
|
|
|
|
|