Go vs. Elixir vs. Rust



Hacker News, Reddit, Stack Overflow Stats

  • 10.3K
  • 8.53K
  • 35.4K
  • -
  • 1.3K
  • 6.55K
  • 23K
  • 51.4K
  • 11.1K

GitHub Stats

Description

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 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 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.

Want advice about which of these to choose?Ask the StackShare community!

Pros

Why do developers choose Go?
Why do you like Go?

Why do developers choose Elixir?
Why do you like Elixir?

Why do developers choose Rust?
Why do you like Rust?

Cons

What are the cons of using Go?
Downsides of Go?

What are the cons of using Elixir?
Downsides of Elixir?

What are the cons of using Rust?
Downsides of Rust?

Companies

What companies use Go?
973 companies on StackShare use Go
What companies use Elixir?
191 companies on StackShare use Elixir
What companies use Rust?
42 companies on StackShare use Rust

Integrations

What tools integrate with Go?
53 tools on StackShare integrate with Go
What tools integrate with Elixir?
10 tools on StackShare integrate with Elixir
What tools integrate with Rust?
14 tools on StackShare integrate with Rust

What are some alternatives to Go, Elixir, and Rust?

  • JavaScript - Lightweight, interpreted, object-oriented language with first-class functions
  • PHP - A popular general-purpose scripting language that is especially suited to web development
  • HTML5 - 5th major revision of the core language of the World Wide Web
  • Python - Python is a clear and powerful object-oriented programming language, comparable to Perl, Ruby, Scheme, or Java.

See all alternatives to Go

Latest News

Go 1.10 is released
Hello, 中国!
Participate in the 2017 Go User Survey
Elixir v1.6 released
What's new in Elixir - Dec/17
Major Client Update For Elixir
Rust 로 복잡한 매크로를 작성하기: 역폴란드 표기법​
Writing complex macros in Rust: Reverse Polish Notation
Evolving Our Rust With Milksnake
Related Stack Decisions
marcoalmeida
marcoalmeida
C
Go
Rust
Python

One important decision for delivering a platform independent solution with low memory footprint and minimal dependencies was the choice of the programming language. We considered a few from Python (there was already a reasonably large Python code base at Thumbtack), to Go (we were taking our first steps with it), and even Rust (too immature at the time).

We ended up writing it in C. It was easy to meet all requirements with only one external dependency for implementing the web server, clearly no challenges running it on any of the Linux distributions we were maintaining, and arguably the implementation with the smallest memory footprint given the choices above.

See more
Conor Myhrvold
Conor Myhrvold
Tech Brand Mgr, Office of CTO at Uber · | 2 upvotes · 12136 views
atUber Technologies
Apache Spark
C#
OpenShift
JavaScript
Kubernetes
C++
Go
Node.js
Java
Python
Jaeger

How Uber developed the open source, end-to-end distributed tracing Jaeger , now a CNCF project:

Distributed tracing is quickly becoming a must-have component in the tools that organizations use to monitor their complex, microservice-based architectures. At Uber, our open source distributed tracing system Jaeger saw large-scale internal adoption throughout 2016, integrated into hundreds of microservices and now recording thousands of traces every second.

Here is the story of how we got here, from investigating off-the-shelf solutions like Zipkin, to why we switched from pull to push architecture, and how distributed tracing will continue to evolve:

https://eng.uber.com/distributed-tracing/

(GitHub Pages : https://www.jaegertracing.io/, GitHub: https://github.com/jaegertracing/jaeger)

Bindings/Operator: Python Java Node.js Go C++ Kubernetes JavaScript OpenShift C# Apache Spark

See more
Omar Mehilba
Omar Mehilba
Co-Founder and COO at Magalix · | 6 upvotes · 2379 views
atMagalix
Python
Go
Amazon EC2
Google Kubernetes Engine
Microsoft Azure
Kubernetes
#Autopilot

We are hardcore Kubernetes users and contributors. We loved the automation it provides. However, as our team grew and added more clusters and microservices, capacity and resources management becomes a massive pain to us. We started suffering from a lot of outages and unexpected behavior as we promote our code from dev to production environments. Luckily we were working on our AI-powered tools to understand different dependencies, predict usage, and calculate the right resources and configurations that should be applied to our infrastructure and microservices. We dogfooded our agent (http://github.com/magalixcorp/magalix-agent) and were able to stabilize as the #autopilot continuously recovered any miscalculations we made or because of unexpected changes in workloads. We are open sourcing our agent in a few days. Check it out and let us know what you think! We run workloads on Microsoft Azure Google Kubernetes Engine and Amazon EC2 and we're all about Go and Python!

See more


Interest Over Time