Go vs. Rust vs. Dart

  • 10.3K
  • 9.69K
  • 36.7K
  • 23K
  • 54.8K
  • 11.5K
  • 539
  • 3.65K
  • 14.4K
No public GitHub repository stats available

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.

What is Dart?

Dart is a cohesive, scalable platform for building apps that run on the web (where you can use Polymer) or on servers (such as with Google Cloud Platform). Use the Dart language, libraries, and tools to write anything from simple scripts to full-featured apps.

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

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

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

Why do developers choose Dart?
Why do you like Dart?

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

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

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

What companies use Go?
1039 companies on StackShare use Go
What companies use Rust?
49 companies on StackShare use Rust
What companies use Dart?
19 companies on StackShare use Dart
What tools integrate with Go?
54 tools on StackShare integrate with Go
What tools integrate with Rust?
15 tools on StackShare integrate with Rust
What tools integrate with Dart?
2 tools on StackShare integrate with Dart

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

  • 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

Using Go Modules
The New Go Developer Network
What's new in the Go Cloud Development Kit
Rust 로 복잡한 매크로를 작성하기: 역폴란드 표기법​
Writing complex macros in Rust: Reverse Polish Notation
Evolving Our Rust With Milksnake
Developer Digest: Life Before Lootboxes — Playing Da...
Dart Sass is in Beta
Related Stack Decisions
Nick Parsons
Nick Parsons
Node.js Engineer & Evangelist at Stream · | 29 upvotes · 6737 views
atStream
Go
Stream
Python
Yarn
Babel
Node.js
ES6
JavaScript
#Languages
#FrameworksFullStack

Winds 2.0 is an open source Podcast/RSS reader developed by Stream with a core goal to enable a wide range of developers to contribute.

We chose JavaScript because nearly every developer knows or can, at the very least, read JavaScript. With ES6 and Node.js v10.x.x, it’s become a very capable language. Async/Await is powerful and easy to use (Async/Await vs Promises). Babel allows us to experiment with next-generation JavaScript (features that are not in the official JavaScript spec yet). Yarn allows us to consistently install packages quickly (and is filled with tons of new tricks)

We’re using JavaScript for everything – both front and backend. Most of our team is experienced with Go and Python, so Node was not an obvious choice for this app.

Sure... there will be haters who refuse to acknowledge that there is anything remotely positive about JavaScript (there are even rants on Hacker News about Node.js); however, without writing completely in JavaScript, we would not have seen the results we did.

#FrameworksFullStack #Languages

See more
James Cunningham
James Cunningham
Operations Engineer at Sentry · | 18 upvotes · 4900 views
atSentry
Rust
Python

Sentry's event processing pipeline, which is responsible for handling all of the ingested event data that makes it through to our offline task processing, is written primarily in Python.

For particularly intense code paths, like our source map processing pipeline, we have begun re-writing those bits in Rust. Rust’s lack of garbage collection makes it a particularly convenient language for embedding in Python. It allows us to easily build a Python extension where all memory is managed from the Python side (if the Python wrapper gets collected by the Python GC we clean up the Rust object as well).

See more
Jake Stein
Jake Stein
CEO at Stitch · | 13 upvotes · 6801 views
atStitch
Go
Clojure
JavaScript
Python
Kubernetes
AWS OpsWorks
Amazon EC2
Amazon Redshift
Amazon S3
Amazon RDS

Stitch is run entirely on AWS. All of our transactional databases are run with Amazon RDS, and we rely on Amazon S3 for data persistence in various stages of our pipeline. Our product integrates with Amazon Redshift as a data destination, and we also use Redshift as an internal data warehouse (powered by Stitch, of course).

The majority of our services run on stateless Amazon EC2 instances that are managed by AWS OpsWorks. We recently introduced Kubernetes into our infrastructure to run the scheduled jobs that execute Singer code to extract data from various sources. Although we tend to be wary of shiny new toys, Kubernetes has proven to be a good fit for this problem, and its stability, strong community and helpful tooling have made it easy for us to incorporate into our operations.

While we continue to be happy with Clojure for our internal services, we felt that its relatively narrow adoption could impede Singer's growth. We chose Python both because it is well suited to the task, and it seems to have reached critical mass among data engineers. All that being said, the Singer spec is language agnostic, and integrations and libraries have been developed in JavaScript, Go, and Clojure.

See more


Interest Over Time