Get Advice Icon

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

Rust
Rust

837
915
+ 1
597
Swift
Swift

5.2K
3.4K
+ 1
1.1K
Add tool

Rust vs Swift: What are the differences?

Rust: A safe, concurrent, practical language. 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; Swift: An innovative new programming language for Cocoa and Cocoa Touch. Writing code is interactive and fun, the syntax is concise yet expressive, and apps run lightning-fast. Swift is ready for your next iOS and OS X project — or for addition into your current app — because Swift code works side-by-side with Objective-C.

Rust and Swift can be primarily classified as "Languages" tools.

"Guaranteed memory safety" is the top reason why over 81 developers like Rust, while over 241 developers mention "Ios" as the leading cause for choosing Swift.

Rust and Swift are both open source tools. Swift with 48.4K GitHub stars and 7.76K forks on GitHub appears to be more popular than Rust with 37.3K GitHub stars and 5.85K GitHub forks.

According to the StackShare community, Swift has a broader approval, being mentioned in 993 company stacks & 541 developers stacks; compared to Rust, which is listed in 39 company stacks and 105 developer stacks.

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 Swift?

Writing code is interactive and fun, the syntax is concise yet expressive, and apps run lightning-fast. Swift is ready for your next iOS and OS X project — or for addition into your current app — because Swift code works side-by-side with Objective-C.
Get Advice Icon

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

Why do developers choose Rust?
Why do developers choose Swift?

Sign up to add, upvote and see more prosMake informed product decisions

Sign up to add, upvote and see more consMake informed product decisions

Jobs that mention Rust and Swift as a desired skillset
OneSignalOneSignal
San Mateo, California
OneSignalOneSignal
San Mateo, California
OneSignalOneSignal
San Mateo, California
OneSignalOneSignal
San Mateo, California
OneSignalOneSignal
San Mateo, California
OneSignalOneSignal
San Mateo, California
What companies use Rust?
What companies use Swift?

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

What tools integrate with Rust?
What tools integrate with Swift?

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

What are some alternatives to Rust and Swift?
C
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.
Haskell
PHP
Fast, flexible and pragmatic, PHP powers everything from your blog to the most popular websites in the world.
JavaScript
JavaScript is most known as the scripting language for Web pages, but used in many non-browser environments as well such as node.js or Apache CouchDB. It is a prototype-based, multi-paradigm scripting language that is dynamic,and supports object-oriented, imperative, and functional programming styles.
See all alternatives
Decisions about Rust and Swift
StackShare Editors
StackShare Editors
Angular
Angular
jQuery
jQuery
Objective-C
Objective-C
Swift
Swift
Go
Go
Ruby
Ruby
Java
Java
React
React
Python
Python
Node.js
Node.js
Rails
Rails

By mid-2015, around the time of the Series E, the Digital department at WeWork had grown to more than 40 people to support the company’s growing product needs.

By then, they’d migrated the main website off of WordPress to Ruby on Rails, and a combination React, Angular, and jQuery, though there were efforts to move entirely to React for the front-end.

The backend was structured around a microservices architecture built partially in Node.js, along with a combination of Ruby, Python, Bash, and Go. Swift/Objective-C and Java powered the mobile apps.

These technologies power the listings on the website, as well as various internal tools, like community manager dashboards as well as RFID hardware for access management.

See more
StackShare Editors
StackShare Editors
Rust
Rust
Lua
Lua

To handle its growing observability needs, Postmates created and open sourced Cernan, a telemetry and logging aggregation server. Ceran is built on Rust and Lua, and can ingest data from many sources and then push or exposes what it’s collected to many destinations, or “sinks.” It can also create or manipulate in-flight data with programmable Lua filters.

See more
StackShare Editors
StackShare Editors
Objective-C
Objective-C
Gradle
Gradle
Swift
Swift
Java
Java

At the heart of Uber’s mobile app development are four primary apps: Android rider, Android driver, iOS rider, and iOS driver. Android developers build in Java, iOS in Objective C and Swift. Engineers across both platforms land code into a monolithic code base that ships each week.

They use some third-party libraries, but often build their own, since “Many open source libraries available are general-purpose, which can create binary bloat. For mobile engineering, every kilobyte matters.”

On Android, the build system is Gradle. For the UI, Butter Knife binds views and callbacks to fields and methods via annotation processing, and Picasso provides image loading.

As for iOS, all of the code lives in a monorepo built with Buck. For crash detection, KSCrash reports crashes to the internal reporting framework.

See more
James Cunningham
James Cunningham
Operations Engineer at Sentry · | 18 upvotes · 44.8K views
atSentrySentry
Rust
Rust
Python
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
marcoalmeida
marcoalmeida
C
C
Go
Go
Rust
Rust
Python
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 · | 8 upvotes · 425K views
atUber TechnologiesUber Technologies
RIBs
RIBs
Swift
Swift
Objective-C
Objective-C

Excerpts from how we developed (and subsequently open sourced) Uber's cross-platform mobile architecture framework, RIBs , going from Objective-C to Swift in the process for iOS: https://github.com/uber/RIBs

Uber’s new application architecture (RIBs) extensively uses protocols to keep its various components decoupled and testable. We used this architecture for the first time in our new rider application and moved our primary language from Objective-C to Swift. Since Swift is a very static language, unit testing became problematic. Dynamic languages have good frameworks to build test mocks, stubs, or stand-ins by dynamically creating or modifying existing concrete classes.

Needless to say, we were not very excited about the additional complexity of manually writing and maintaining mock implementations for each of our thousands of protocols.

The information required to generate mock classes already exists in the Swift protocol. For Uber’s use case, we set out to create tooling that would let engineers automatically generate test mocks for any protocol they wanted by simply annotating them.

The iOS codebase for our rider application alone incorporates around 1,500 of these generated mocks. Without our code generation tool, all of these would have to be written and maintained by hand, which would have made testing much more time-intensive. Auto-generated mocks have contributed a lot to the unit test coverage that we have today.

We built these code generation tools ourselves for a number of reasons, including that there weren’t many open source tools available at the time we started our effort. Today, there are some great open source tools to generate resource accessors, like SwiftGen. And Sourcery can help you with generic code generation needs:

https://eng.uber.com/code-generation/ https://eng.uber.com/driver-app-ribs-architecture/

(GitHub : https://github.com/uber/RIBs )

See more
StackShare Editors
StackShare Editors
Apache Thrift
Apache Thrift
Kotlin
Kotlin
Presto
Presto
HHVM (HipHop Virtual Machine)
HHVM (HipHop Virtual Machine)
gRPC
gRPC
Kubernetes
Kubernetes
Apache Spark
Apache Spark
Airflow
Airflow
Terraform
Terraform
Hadoop
Hadoop
Swift
Swift
Hack
Hack
Memcached
Memcached
Consul
Consul
Chef
Chef
Prometheus
Prometheus

Since the beginning, Cal Henderson has been the CTO of Slack. Earlier this year, he commented on a Quora question summarizing their current stack.

Apps
  • Web: a mix of JavaScript/ES6 and React.
  • Desktop: And Electron to ship it as a desktop application.
  • Android: a mix of Java and Kotlin.
  • iOS: written in a mix of Objective C and Swift.
Backend
  • The core application and the API written in PHP/Hack that runs on HHVM.
  • The data is stored in MySQL using Vitess.
  • Caching is done using Memcached and MCRouter.
  • The search service takes help from SolrCloud, with various Java services.
  • The messaging system uses WebSockets with many services in Java and Go.
  • Load balancing is done using HAproxy with Consul for configuration.
  • Most services talk to each other over gRPC,
  • Some Thrift and JSON-over-HTTP
  • Voice and video calling service was built in Elixir.
Data warehouse
  • Built using open source tools including Presto, Spark, Airflow, Hadoop and Kafka.
Etc
See more
Rust
Rust
C++
C++

Initially, I wrote my text adventure game in C++, but I later rewrote my project in Rust. It was an incredibly easier process to use Rust to create a faster, more robust, and bug-free project.

One difficulty with the C++ language is the lack of safety, helpful error messages, and useful abstractions when compared to languages like Rust. Rust would display a helpful error message at compile time, while C++ would often display "Segmentation fault (core dumped)" or wall of STL errors in the middle. While I would frequently push buggy code to my C++ repository, Rust enabled me to only even submit fully functional code.

Along with the actual language, Rust also included useful tools such as rustup and cargo to aid in building projects, IDE tooling, managing dependencies, and cross-compiling. This was a refreshing alternative to the difficult CMake and tools of the same nature.

See more
SVN (Subversion)
SVN (Subversion)
Git
Git
JSON
JSON
XML
XML
Python
Python
PHP
PHP
Java
Java
Swift
Swift
JavaScript
JavaScript
Linux
Linux
GitHub
GitHub
Visual Studio Code
Visual Studio Code

I use Visual Studio Code because at this time is a mature software and I can do practically everything using it.

  • It's free and open source: The project is hosted on GitHub and it’s free to download, fork, modify and contribute to the project.

  • Multi-platform: You can download binaries for different platforms, included Windows (x64), MacOS and Linux (.rpm and .deb packages)

  • LightWeight: It runs smoothly in different devices. It has an average memory and CPU usage. Starts almost immediately and it’s very stable.

  • Extended language support: Supports by default the majority of the most used languages and syntax like JavaScript, HTML, C#, Swift, Java, PHP, Python and others. Also, VS Code supports different file types associated to projects like .ini, .properties, XML and JSON files.

  • Integrated tools: Includes an integrated terminal, debugger, problem list and console output inspector. The project navigator sidebar is simple and powerful: you can manage your files and folders with ease. The command palette helps you find commands by text. The search widget has a powerful auto-complete feature to search and find your files.

  • Extensible and configurable: There are many extensions available for every language supported, including syntax highlighters, IntelliSense and code completion, and debuggers. There are also extension to manage application configuration and architecture like Docker and Jenkins.

  • Integrated with Git: You can visually manage your project repositories, pull, commit and push your changes, and easy conflict resolution.( there is support for SVN (Subversion) users by plugin)

See more
Dan Larsen
Dan Larsen
CTO at FlowStack · | 7 upvotes · 30.1K views
atFlowStack ApSFlowStack ApS
C++
C++
C
C
Rust
Rust
Go
Go

At FlowStack we write most of our backend in Go. Go is a well thought out language, with all the right compromises for speedy development of speedy and robust software. It's tooling is part of what makes Go such a great language. Testing and benchmarking is built into the language, in a way that makes it easy to ensure correctness and high performance. In most cases you can get more performance out of Rust and C or C++, but getting everything right is more cumbersome.

See more
Interest over time
Reviews of Rust and Swift
Avatar of Bessalitskykh
Software Development Consultan at MLSDev Inc.
Review ofSwiftSwift

The performance of Swift is almost the same as that of C++, which is considered the fastest in algorithm calculation arithmetics. Apple had this idea in mind and worked to improve the speed of Swift. For example, Swift 2.0 has beaten C++ in several computation algorithms, such as Mandelbrot algorithm. Objective-C is slower because it contains C API legacy.

Swift is faster than Objective-C, because it removed the limitations of C language and has been improved with the help of advanced technologies that were unavailable when C was developed. As mentioned by Apple, Swift was originally designed to operate faster.

Despite the fact that languages are different, they both integrate, and work with Cocoa and Cocoa Touch APIs, for all Apple platforms. Therefore, a regular app-user would not recognize the difference in operating speed between Objective-C vs Swift. Speed also depends on a programmer’s level and capabilities, since a slow app can be written in Swift as well.

Learn more here https://mlsdev.com/blog/51-7-advantages-of-using-swift-over-objective-c

Avatar of Bessalitskykh
Software Development Consultan at MLSDev Inc.
Review ofSwiftSwift

Its performance approaches the one of C++ which is considered the fastest algorithm calculation arithmetics. And Apple strives to improve the speed of Swift. Learn more here https://mlsdev.com/blog/51-7-advantages-of-using-swift-over-objective-c

How developers use Rust and Swift
Avatar of Lawrence Cheuk
Lawrence Cheuk uses SwiftSwift

iPhone app, a new born language, it may good but the IDE, xcode is bad compare with Visual Studio. It just like a baby. playground can only use without connect to other library...you can not do a simply refactor of renaming a variable. You can go to definition and find reference, but you can not go to implementation....I should write them on xcode not here basically it is not the fault of swift, but it tightly to it, unless you want to use a notepad to write it.

Avatar of Refractal
Refractal uses SwiftSwift

Most of our newer apps are written completely in swift, with our older ones and some special cases using a mix of Swift and Objective-C, but with Swift 2, the language is pretty much a must-use. "guard" is <3.

Avatar of Marc3842h
Marc3842h uses RustRust

Rust is used in Shirogane (https://github.com/Marc3842h/shirogane).

Shirogane is a osu! beatmap mirror built for shiro. We use Rust because of memory safe but still low level and high performance.

Avatar of Flutter Health Inc.
Flutter Health Inc. uses SwiftSwift

Flutter is coded with Swift v.2.3 and can be run with Xcode v.8.2.1. To launch in Xcode 9.3, the code needs to be migrated to Swift 4.1

Avatar of Maxim Ananov
Maxim Ananov uses SwiftSwift

Most of the app code was gradually rewritten in Swift for better performance and code maintenance.

Avatar of JINJA Ltd.
JINJA Ltd. uses SwiftSwift

Our native iOS app is built on Swift, and most of the basic function is still written in Swift

How much does Rust cost?
How much does Swift cost?
Pricing unavailable
Pricing unavailable