profile picture

Jonathan Turner's blog

Nushell 0.5.0

November 05, 2019 - 941 words - 5 mins
Nushell, or Nu for short, is a new shell that takes a modern, structured approach to your commandline. It works seamlessly with the data from your filesystem, operating system, and a growing number of file formats to make it easy to build powerful commandline pipelines. Today, we're happy to announc… read more

Nushell 0.4.0

October 15, 2019 - 754 words - 4 mins
Nushell, or Nu for short, is a new shell that takes a modern, structured approach to your commandline. It works seamlessly with the data from your filesystem, operating system, and a growing number of file formats to make it easy to build powerful commandline pipelines. Today we're happy to announce… read more

Nushell 0.3.0

September 24, 2019 - 743 words - 4 mins
Nushell, or Nu for short, is a new shell that takes a modern, structured approach to your commandline. It works seamlessly with the data from your filesystem, operating system, and a growing number of file formats to make it easy to build powerful commandline pipelines. We're happy to announce that … read more

Introducing nushell

August 23, 2019 - 2384 words - 12 mins
Today, we're introducing a new shell, written in Rust. It draws inspiration from the classic Unix philosophy of pipelines, the structured data approach of PowerShell, functional programming, systems programming, and more. It's called Nushell, or just Nu for short. We have a book (¡también se habla … read more

Creating crossplatform Rust terminal apps

April 27, 2019 - 896 words - 5 mins
Look Mom, Pikachu running in Windows CMD! I've been wanting to play around with the cool spinning Pikachu demo everyone was talking about. Sadly, it used termion to do its magic, which meant that unfortunately it wouldn't work for me. Termion has been a boon for Rust, with lots of folks using it to… read more

The Fallow Year, my Rust2019 post

December 08, 2018 - 776 words - 4 mins
Definition: fallow: (of agricultural land) Ploughed but left unseeded for more than one planting season. Rust is an amazing project. It's unlike anything I've ever seen. Not only are we seeing an ever-growing number of big name users of Rust, we also continue to see leaps in productivity and functio… read more

A Snapshot of Rust's Popularity in July 2018

July 28, 2018 - 1513 words - 8 mins
Talking about a language's popularity is traditionally a tricky topic. How do you measure popularity? How do you compare one language to another when they're focused on different styles and different audiences? So, rather than having one or two charts, I'm going to look at a number of "slices&… read more

Starting the next thing

July 24, 2018 - 410 words - 3 mins
It's that time again! July 31st will be my last day at Mozilla. Even though I was only at Mozilla for just under two and a half years, I had the good fortune to work on some pretty awesome projects. I joined the Rust team and worked with Niko Matsakis and Aaron Turon on where Rust could grow, build… read more

How fast can we compile Rust hello world?

May 03, 2018 - 2738 words - 14 mins
Seeing Nick Nethercote's blog post about speeding up the compiler, I started wondering just how fast could a Rust compiler be? How fast could we compile a simple example? How fast can we compile a Rust hello world? Starting out When you do a cargo new hello_rust --bin, you get a simple Rust hello … read more

Talking about how we talk about Rust in 2018

January 10, 2018 - 1046 words - 6 mins
This is an entry in the #rust2018 blogging efforts to talk about Rust in 2018 When you come to Rust, you're bound to hear a lot of phrases. "Wrestling with the compiler". "Rust evangelism task force". "Non-lexical lifetimes". "Systems programming". Some seem… read more

Improving how we improve Rust in 2018

January 07, 2018 - 882 words - 5 mins
Here's my #rust2018 post to add to the batch. The past few years, I've been lucky to be part of the Rust community survey process. In 2016, this data helped show the need to improve usability. We had good foundations, but they were too hard to get at. In 2017, we saw a renewed need to reach out t… read more

Fun facts about Rust's growing popularity

October 30, 2017 - 2378 words - 12 mins
There are now 100 friends of Rust (Be sure to hover to learn about how each company uses Rust) There are now 3 Rust podcasts: New Rustacean, Rusty Spike, and Request for Explanation First year had one conference, the second year had three, and this year had four. crates.io is not even 3 year… read more

RLS now available on nightly

April 18, 2017 - 347 words - 2 mins
We've got some good news for Rust IDE support. We recently hit a milestone for the Rust Language Server, a tool that combines the power of the compiler with a fast autocompletion engine. Up to this point, if you wanted to use it you had to build it from scratch. The process was tedious, time-consu… read more

Using Rust in Windows

March 28, 2017 - 1071 words - 6 mins
As a Rust user, I was discouraged by not having all the good tips for using Rust in Windows in one place. This is an attempt to just that. If you have more tips tweet them to @jntrnr, and I'll try to add them here. Getting started Step 1: Install Visual Studio Community edition My recommendation f… read more

Rust Language Server Alpha 2 Release

March 02, 2017 - 544 words - 3 mins
Today, we're happy to announce the second alpha for the Rust Language Server, a project build to bring high-quality Rust IDE support to any IDE or editor. This release brings new features, better stability, and an easier installation than the first alpha. Support for new project types When a projec… read more

Announcing Rust Language Server Alpha Release

January 18, 2017 - 1020 words - 6 mins
Today, we're announcing the first alpha release of the Rust Language Server (aka RLS). With this alpha release, this is the first time we're encouraging early adopters to try on real projects and send us feedback. The RLS has now reached a level of maturity where it should be able to run against m… read more

Programming Language and Compilers Reading List

October 08, 2016 - 1119 words - 6 mins
This week, the talented Julien Fitzpatrick (btw, you should check out their RustConf talk if you haven't already) asked what a good list would be for people who are interested in programming languages and compilers. I took it as a good excuse to write a blog post with some of my recommendations. I… read more

Helping with the Rust Errors

August 03, 2016 - 2772 words - 14 mins
I recently did some work with Niko Matsakis on a new compiler error format. You can try them out by setting RUST_NEW_ERROR_FORMAT=true. While I put together a blog post talking about the design for the main blog, I also wanted to open it up for people to come help us move to the new errors. I've spl… read more

Rhai 0.2 release

March 26, 2016 - 327 words - 2 mins
I've just updated Rhai to 0.2. This release focuses on improving the interaction between Rhai and Rust. The result is a cleaner, easier-to-use API. This new API does mean some API breakages, so you'll need to update your code to work with 0.2. With this release, Rhai also now has arrays as a buil… read more

Embedded scripting in Rust

March 14, 2016 - 1909 words - 10 mins
For the last few weeks, I've been working on an embedded scripting language for Rust, based loosely on ChaiScript called Rhai. What's an embedded scripting language? While the definition might depend on who you ask, for this post embedded scripting has a few distinct features: A language that de… read more

Going down the rabbit hole with Rust traits

February 09, 2016 - 1416 words - 8 mins
One of the first things you might notice about Rust, if you come to it from other OOP-style languages, is that Rust separates methods from the data they work on. You create your struct, then you impl a few methods on it later. struct Rect { height: i32, width: i32 } impl Rect { fn are… read more

Rust quickie - matching Strings

February 08, 2016 - 220 words - 2 mins
In case you find yourself trying to match a String (perhaps as part of an Option or Result), here's a little trick. As a concrete example, let's say you're working with commandline args and want to do different things if it's there and equal to a special value (like "-"), if it's any other… read more

Feature Bias, or Rethinking the Blub Paradox

January 23, 2016 - 680 words - 4 mins
I got a lot of great feedback on my previous post "Rust and the Blub Paradox", which inspired me to write a follow-up. In its original formulation, the Blub Paradox is something of a tool for people to feel smug about their favorite language. I heard a lot of feedback that it feels condes… read more

Rust and the Blub Paradox

January 22, 2016 - 2985 words - 15 mins
A few weeks ago, I read an analysis of Rust, D, and Go by Andrei Alexandrescu. Andrei, a respected member of the C++ community and a core developer of the D programming language, took a stab at Rust at the end of his writeup with what seems like a pretty astute observation: "Reading any amount… read more

Travel log (Maui)

December 15, 2015 - 652 words - 4 mins
When I left Seattle, I jokingly told my friend "the first country I'm travelling to is Hawaii". "But it is isn't a different country," she replied. It is. Oh it is. Looking at Maui from the Kula Lodge Having travelled around the United States, I can't say there are many places … read more

HandmadeCon 2015

December 05, 2015 - 1599 words - 8 mins
HandmadeCon 2015, where even the welcome banner is handmade Today, I attended HandmadeCon 2015. HandmadeCon is the first convention for the Handmade Hero project by Casey Muratori, a game industry gun-for-hire who most recently worked on The Witness, the follow-up game for Jonathan Blow, the creat… read more

Travel log (Blacksburg)

December 03, 2015 - 612 words - 4 mins
This is the first of posts detailing my current trip, which will take me around southwest Virginia, Seattle, Hawaii, Australia, New Zealand, Hong Kong, and Japan. My first stop was Blacksburg, home of Virginia Tech. I lived in Blacksburg from 1996 - 2009, so it was both familiar and a little alien,… read more

Building a simple JIT in Rust

December 01, 2015 - 1420 words - 8 mins
The other day I threw together a simple Just-In-Time compiler (or JIT, for short), and I thought it'd be fun to show the steps I did. With this, it should be possible to create a page of executable memory, write some machine code into it, and then treat it like a function call from Rust. Let's get … read more

Porting a C# NES emulator to Rust

November 20, 2015 - 1817 words - 10 mins
Many years ago, I created a simple NES emulator in C# using SDL and Mono. For fun, I wanted to see what it would be like to port that emulator to Rust. A couple weeks later, after poking on it on and off between packing for a move, I was able to get it working. What I did Loading a binary file Lo… read more

Steam Machines enter the market

November 11, 2015 - 1728 words - 9 mins
This week marks the release of the first official Steam Machines. For the last five months, I've been a proud owner of the Alienware Alpha, one of the three Steam Machine types now available. Knowing what could be possible, I've been curiously awaiting the official launch. The plan Valve's motivat… read more

Learning to 'try!' things in Rust

November 04, 2015 - 1219 words - 7 mins
I started learning Rust in earnest a few weeks ago. Coming from C++, a fair share of the idioms felt right at home. There was clear memory management and an eye towards lightweight abstractions. But when I started looking around for how to do exceptions, I was surprised to find that Rust had none.… read more

Telling the truth in code, function signatures and transparency

October 28, 2015 - 1524 words - 8 mins
When people talk about reasons to use a type system, there are always a couple usual suspects: error checking, documentation, and if you're an IDE person like me, tooling/editor tricks that use type information, like auto-complete. But there's another aspect to the types of function signatures that'… read more

Lessons from the first 12 Euler problems in Rust

October 09, 2015 - 4969 words - 25 mins
!! Spoiler Alert !! I'm going to be talking about solutions to select problems from the first 12 Euler problems. If you haven't solved these for yourself yet, I highly recommend taking the time to solve them on your own first. Background Before I went to Microsoft for a stint in JavaScript, I did m… read more

Off to new adventures

October 05, 2015 - 247 words - 2 mins
A few weeks ago I posted about moving teams inside of Microsoft. As sometimes happens when you make a change, you realize that you actually need to make a bigger change. A few weeks into the new team, and I could tell that it was time for me to move onto new adventures. Microsoft has been a great … read more