Elixir vs Go vs Rust

Need advice about which tool to choose?Ask the StackShare community!

Elixir

2.5K
2.4K
+ 1
1.2K
Go

11.4K
9.7K
+ 1
3K
Rust

2.2K
2.6K
+ 1
893
Decisions about Elixir, Go, and Rust
Kirill Mikhailov

Go is a way faster than both Python and PHP, which is pretty understandable, but we were amazed at how good we adapted to use it. Go was a blessing for a team , since strict typing is making it very easy to develop and control everything inside team, so the quality was really good. We made huge leap forward in dev speed because of it.

See more
Chose
GoGo
over
RustRustPythonPython

Context: Writing an open source CLI tool.

Go and Rust over Python: Simple distribution.

With Go and Rust, just build statically compiled binaries and hand them out.

With Python, have people install with "pip install --user" and not finding the binaries :(.

Go and Rust over Python: Startup and runtime performance

Go and Rust over Python: No need to worry about which Python interpreter version is installed on the users' machines.

Go over Rust: Simplicity; Rust's memory management comes at a development / maintenance cost.

Go over Rust: Easier cross compiles from macOS to Linux.

See more

We’re a new startup so we need to be able to deliver quick changes as we find our product market fit. We’ve also got to ensure that we’re moving money safely, and keeping perfect records. The technologies we’ve chosen mix mature but well maintained frameworks like Django, with modern web-first and api-first front ends like GraphQL, NextJS, and Chakra. We use a little Golang sparingly in our backend to ensure that when we interact with financial services, we do so with statically compiled, strongly typed, and strictly limited and reviewed code.

You can read all about it in our linked blog post.

See more
Pros of Elixir
Pros of Go
Pros of Rust
  • 163
    Concurrency
  • 149
    Functional
  • 126
    Erlang vm
  • 109
    Great documentation
  • 102
    Great tooling
  • 81
    Immutable data structures
  • 77
    Open source
  • 74
    Pattern-matching
  • 61
    Easy to get started
  • 57
    Actor library
  • 28
    Functional with a neat syntax
  • 28
    Ruby inspired
  • 24
    Homoiconic
  • 22
    Erlang evolved
  • 20
    Beauty of Ruby, Speed of Erlang/C
  • 17
    Fault Tolerant
  • 13
    Simple
  • 13
    High Performance
  • 10
    Good lang
  • 9
    Stinkin' fast, no memory leaks, easy on the eyes
  • 9
    Doc as first class citizen
  • 8
    Pipe Operator
  • 7
    Resilient to failure
  • 6
    Fun to write
  • 5
    GenServer takes the guesswork out of background work
  • 5
    OTP
  • 4
    Not Swift
  • 4
    Pattern matching
  • 4
    Idempotence
  • 4
    Fast, Concurrent with clean error messages
  • 2
    Error isolation
  • 1
    Dynamic Typing
  • 512
    High-performance
  • 375
    Simple, minimal syntax
  • 343
    Fun to write
  • 289
    Easy concurrency support via goroutines
  • 261
    Fast compilation times
  • 183
    Goroutines
  • 173
    Statically linked binaries that are simple to deploy
  • 144
    Simple compile build/run procedures
  • 129
    Backed by google
  • 125
    Great community
  • 46
    Garbage collection built-in
  • 40
    Built-in Testing
  • 36
    Excellent tools - gofmt, godoc etc
  • 33
    Elegant and concise like Python, fast like C
  • 28
    Awesome to Develop
  • 22
    Flexible interface system
  • 21
    Used for Docker
  • 21
    Great concurrency pattern
  • 18
    Deploy as executable
  • 17
    Open-source Integration
  • 14
    Fun to write and so many feature out of the box
  • 11
    Its Simple and Heavy duty
  • 11
    Easy to read
  • 10
    Powerful and simple
  • 9
    Go is God
  • 9
    Safe GOTOs
  • 9
    Easy to deploy
  • 7
    Hassle free deployment
  • 7
    Rich standard library
  • 7
    Concurrency
  • 7
    Best language for concurrency
  • 7
    Easy setup
  • 6
    Used by Giants of the industry
  • 6
    Simplicity, Concurrency, Performance
  • 6
    Clean code, high performance
  • 6
    High performance
  • 6
    Single binary avoids library dependency issues
  • 5
    Simple, powerful, and great performance
  • 5
    Cross compiling
  • 4
    Garbage Collection
  • 4
    Excellent tooling
  • 4
    Very sophisticated syntax
  • 4
    Gofmt
  • 4
    WYSIWYG
  • 3
    Kubernetes written on Go
  • 2
    Keep it simple and stupid
  • 1
    Widely used
  • 0
    No generics
  • 0
    Operator goto
  • 121
    Guaranteed memory safety
  • 108
    Fast
  • 71
    Open source
  • 65
    Minimal runtime
  • 56
    Pattern matching
  • 52
    Type inference
  • 50
    Algebraic data types
  • 45
    Concurrent
  • 42
    Efficient C bindings
  • 37
    Practical
  • 29
    Best advances in languages in 20 years
  • 21
    Safe, fast, easy + friendly community
  • 21
    Fix for C/C++
  • 17
    Closures
  • 16
    Stablity
  • 15
    Zero-cost abstractions
  • 13
    Extensive compiler checks
  • 11
    Great community
  • 8
    No Garbage Collection
  • 8
    No NULL type
  • 7
    Completely cross platform: Windows, Linux, Android
  • 7
    Super fast
  • 7
    Async/await
  • 6
    Safety no runtime crashes
  • 6
    Great documentations
  • 5
    High performance
  • 5
    High-performance
  • 5
    Fearless concurrency
  • 5
    Guaranteed thread data race safety
  • 5
    RLS provides great IDE support
  • 5
    Generics
  • 4
    Painless dependency management
  • 4
    Prevents data races
  • 4
    Macros
  • 4
    Compiler can generate Webassembly
  • 4
    Easy Deployment
  • 3
    Helpful compiler
  • 1
    Support on Other Languages

Sign up to add or upvote prosMake informed product decisions

Cons of Elixir
Cons of Go
Cons of Rust
  • 11
    Fewer jobs for Elixir experts
  • 7
    Smaller userbase than other mainstream languages
  • 5
    Elixir's dot notation less readable ("object": 1st arg)
  • 3
    Dynamic typing
  • 1
    Not a lot of learning books available
  • 38
    You waste time in plumbing code catching errors
  • 23
    Verbose
  • 22
    Packages and their path dependencies are braindead
  • 15
    Dependency management when working on multiple projects
  • 12
    Google's documentations aren't beginer friendly
  • 10
    Automatic garbage collection overheads
  • 7
    Uncommon syntax
  • 6
    Type system is lacking (no generics, etc)
  • 2
    Collection framework is lacking (list, set, map)
  • 21
    Hard to learn
  • 20
    Ownership learning curve
  • 7
    Unfriendly, verbose syntax
  • 3
    Variable shadowing
  • 2
    Many type operations make it difficult to follow
  • 2
    High size of builded executable
  • 2
    No jobs

Sign up to add or upvote consMake informed product decisions

What is Elixir?

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.

What is Go?

Go is expressive, concise, clean, and efficient. Its concurrency mechanisms make it easy to write programs that get the most out of multicore and networked machines, while its novel type system enables flexible and modular program construction. Go compiles quickly to machine code yet has the convenience of garbage collection and the power of run-time reflection. It's a fast, statically typed, compiled language that feels like a dynamically typed, interpreted language.

What is Rust?

Rust is a systems programming language that combines strong compile-time correctness guarantees with fast performance. It improves upon the ideas of other systems languages like C++ by providing guaranteed memory safety (no crashes, no data races) and complete control over the lifecycle of memory.

Need advice about which tool to choose?Ask the StackShare community!

What companies use Elixir?
What companies use Go?
What companies use Rust?

Sign up to get full access to all the companiesMake informed product decisions

What tools integrate with Elixir?
What tools integrate with Go?
What tools integrate with Rust?

Sign up to get full access to all the tool integrationsMake informed product decisions

Blog Posts

Dec 8 2020 at 5:50PM
https://img.stackshare.io/company/93/8a444d2b7ec5dd7a4f3fc1819136e05178b964c8.png logo

DigitalOcean

GitHubMySQLMongoDB+11
2
1516
Nov 20 2019 at 3:38AM
https://img.stackshare.io/stack/517248/default_4bf5f3d2d3ef627f563fd3b2e94dee6cc37a38d6.jpg logo

OneSignal

PostgreSQLRedisRuby+8
7
3635
Oct 24 2019 at 7:43PM
https://img.stackshare.io/stack/513891/default_86b138c409d64e353c3d509121b4ac1dd9cf31c4.png logo

AppSignal

JavaScriptNode.jsJava+8
5
662
Oct 3 2019 at 7:13PM
https://img.stackshare.io/stack/511159/default_5f04358e03a27bf2607a39dd9b409dd7830ce4d3.png logo

Ably Realtime

JavaScriptPythonNode.js+8
4
3133
Jun 6 2019 at 5:11PM
https://img.stackshare.io/stack/372376/default_573a26a621134fbcbde85e58b2c8544189ae0fba.jpg logo

AppSignal

RedisRubyKafka+9
15
1046
What are some alternatives to Elixir, Go, and Rust?
Erlang
Some of Erlang's uses are in telecoms, banking, e-commerce, computer telephony and instant messaging. Erlang's runtime system has built-in support for concurrency, distribution and fault tolerance. OTP is set of Erlang libraries and design principles providing middle-ware to develop these systems.
Clojure
Clojure is designed to be a general-purpose language, combining the approachability and interactive development of a scripting language with an efficient and robust infrastructure for multithreaded programming. Clojure is a compiled language - it compiles directly to JVM bytecode, yet remains completely dynamic. Clojure is a dialect of Lisp, and shares with Lisp the code-as-data philosophy and a powerful macro system.
Ruby
Ruby is a language of careful balance. Its creator, Yukihiro “Matz” Matsumoto, blended parts of his favorite languages (Perl, Smalltalk, Eiffel, Ada, and Lisp) to form a new language that balanced functional programming with imperative programming.
Haskell
It is a general purpose language that can be used in any domain and use case, it is ideally suited for proprietary business logic and data analysis, fast prototyping and enhancing existing software environments with correct code, performance and scalability.
Python
Python is a general purpose programming language created by Guido Van Rossum. Python is most praised for its elegant syntax and readable code, if you are just beginning your programming career python suits you best.
See all alternatives
Interest over time