This is for people who are early Rust professionals (experienced programmers, intermediate Rust users), and prefer visual, example-driven content. If that’s you, click through.
This is a subjective, primarily developer-ergonomics-based comparison of the three languages from the perspective of a Python developer, but you can skip the prose and go to the code samples, the performance comparison if you want some hard numbers, the takeaway for the tl;dr, or the Python, Go, and Rust
Not only is this a good way to compare programming languages, but it’s a good way to learn a new language if you’re already familiar with one of the others.
The Discord team bumped up against some limitations of the BEAM (Erlang’s virtual machine) when dealing with rather large data structures:
The double-edged sword of immutable data structures is that mutations are modeled by taking an existing data structure and an operation and creating a brand new data structure that is the result of applying that operation to the existing data structure.
This meant that when someone joined a server — internally referred to as guilds — with a Member List of 100,000 members, we would have to build a new list with 100,001 members in it.
You’ll want to click through and read all of the data structures they tried to fix this problem. It’s some seriously solid engineering and I love how they continued to measure and push themselves further. Finally, they reached for Rust thanks to BEAM’s NIF feature and really scaled up the speed.
Built in Rust, Vector places high-value on performance, correctness, and operator friendliness. It compiles to a single static binary and is designed to be deployed across your entire infrastructure, serving both as a light-weight agent and a highly efficient service, making the process of getting data from A to B simple and unified.
It’s hard to believe it’s already been 9 years since Rust was first announced to the world. The New Stack has a nice interview with Graydon Hoare…
sharing his thoughts on everything from the state of systems programming, to the difficulty of defining safety on ever-more complex systems — and whether we’re truly more secure today, or confronting an inherited software mess that will take decades to clean up.
nannou is a collection of code aimed at making it easy for artists to express themselves with simple, fast, reliable, portable code. Whether working on a 12-month installation or a 5 minute sketch, this framework aims to give artists easy access to the tools they need.
Sarah Allen shares her essential Rust tools, which includes
rust-parcel. Sarah is “just scratching the surface” as she learns Rust, so stay tuned for more on Rust from her in the future.
Are you super experienced with Rust? Share any essential tools Sarah was missing in the discussion below.
Rucene is a Rust port of the popular Apache Lucene project. Rucene is not a complete application, but rather a code library and API that can easily be used to add full text search capabilities to applications.
A diagramming model which uses a set of typing characters to approximate the intended shape.
Inspired by the roadmap to becoming a Go developer in 2019.
I recently ported some math code from C++ to Rust in an attempt to do a cool thing with Doom. Here is my story.
Buckle up, because this a #longread. However, it’s worth it because you will be entertained while wading through the mucky-muck of solving what sounds like a simple problem (but isn’t): I have some shapes. I want to find their intersection. Who knows, you might even learn some Rust along the way…
A link aggregator / reddit clone for the fediverse
I still flinch every time someone says “fediverse”, but it took me 7+ years to get used to “tweet”, so I’m sure I’ll get used to it eventually… That aside, lots of neat tech here and I’m always in support of decentralization.
We’re talking with Syrus Akbary about WebAssembly and Wasmer — a standalone just in time WebAssembly runtime aiming to be fully compatible with Emscripten, Rust, and Go. We talked about taking WebAssembly beyond the browser, universal binaries, what’s an ABI?, running WebAssembly from any language, and what a world might look like with platform independent universal binaries powered by WebAssembly.
A city building game that uses microscopic models to vividly simulate the organism of a city arising from the interactions of millions of individuals.
Runs in the browser via WebAssembly.
This is actually my second stab at it, so big blocks will land in place from my first attempt. I’m trying again this year after reading more of “Programming Rust” (Blandy, Orendorff).
Follow along for fun and education.
Sonic is a fast, lightweight and schema-less search backend. It ingests search texts and identifier tuples that can then be queried against in a microsecond’s time.
This is a fully-featured Firefox Send client. Max file size is 2GB and recipients can download the file via the same tool or their web browser.
You can install
swc (the speedy web compiler) from npm just like you’re used to, which will download a pre-built binary. That only works on
win32-x64. For other environments, you’ll need the Rust nightly build.
Supports ES 2019, JSX, and TypeScript out of the box. You might want to jump straight to the migrating from Babel section. 😉
uses a colored output to distinguish different categories of bytes (NULL bytes, printable ASCII characters, ASCII whitespace characters, other ASCII characters and non-ASCII).
In a post with a title borrowed from Ariana Grande, Steve Klabnik is announcing his departure from Mozilla and what he hopes could be his next moves.
Mozilla is not interested in hearing what I have to say. And that’s fine, but when I take a step back and think about things, that means it’s time to go, for both my sake and Mozilla’s. So I’ve just put in my two weeks’ notice.
The interesting thing isn’t exactly that he’s moving on from Mozilla, it’s that he’s betting big on WebAssembly.
I’ve also been enamored with another technology recently: WebAssembly. 2019 is going to be a huge year for WebAssembly, even if many people don’t know it yet, and may not see the effects until 2020.
So what’s his next move? Something different…
In terms of the actual work I would like to do, I don’t think a traditional engineering role really suits me. Don’t get me wrong, I love to write some code, but I don’t think that those kinds of roles really play to my unique strengths. What I really love to do is teaching, evangelizing, and growing something.
The latest Rust user survey results are in and have been shared on the rust blog. One of the more interesting points, before digging into the data, is the survey launched for the first time in multiple languages — 14 languages total, in addition to English.
The results from non-English languages totaled 25% of all responses and helped push the number of responses to a new record of 5,991 responses.
I’m glad we’re getting to hear from more voices from all around the world — especially growing the response count by 25%! Also, pay attention to the comments shared about how Rust can improve. Good stuff.
Michael Snoyman introduces his upcoming blog series. If this intro is any indicator, Michael’s Rust crash course will be an excellent resource. Here’s a taste, in which he begins to answer the question, “Why Rust?”:
I’m a strong believer in using the compiler to help eliminate bugs. No programming language can eliminate all bugs and even the best designed language will typically need to leave developers plenty of wiggle room to shoot themselves in the foot. Still, there’s significant value in safety and long term maintainability of projects that use languages with this focus.
Right now, the only way to sign your git commits is to use PGP signatures (this is all git is able to integrate with). After a less than desirable experience using GPG, without wrote bpb in Rust to replace GPG.
I’ve been taking steps toward trying to sign and verify the data in the repo’s index without shipping a copy of GPG with Rust to every user.
This means I need to implement enough of the PGP protocol to create signatures and public keys that git will accept as valid. I’ve done this in a library which I’ve named pbp, this stands for Pretty Bad Protocol.
This library implements parsing and generation for a small subset of the PGP protocol…
GCSF is a virtual filesystem that allows users to mount their Google Drive account locally and interact with it as a regular disk partition.
Could this be the first sane way to interact with your GDrive? 😜
Careful now, ‘sled’ is in its alpha stage. Heck, its name is a recursive acronym that means “sled likes eating data”, so that should give you an indication of its state (I hope they come up with a new one once the software is stable). The project’s goals are on point:
- don’t make the user think. the interface should be obvious.
- don’t surprise users with performance traps.
- don’t wake up operators. bring reliability techniques from academia into real-world practice.
- don’t use so much electricity. our data structures should play to modern hardware’s strengths.