Subject: General Tech | March 18, 2016 - 09:26 PM | Scott Michaud
Tagged: mozilla, servo, Rust
Mozilla, the open-source creators of Firefox and Thunderbird, have announced that their Servo project will reach public alpha in June. Nightly builds will be available, presumably around that time, for Linux, OSX, Windows, and Android. Servo is a browser engine that is built in Rust, which emphasizes security and high performance (especially in multi-threaded scenarios).
The technology is really interesting, although it is still quite early. Web browsers are massively single-threaded by design, which limits their potential performance as CPUs widen in core count but stagnate in per-thread performance. This is especially true in mobile, which is why Samsung has been collaborating on Servo for almost all of its life.
Rust, being so strict about memory access, also has the advantage of security and memory management. It is designed in such a way that it's easier for the compiler to know, at compile time, whether you will be trying to access data that is no longer available. The trade-off is that it's harder to program, because if your code isn't robust enough, the compiler just won't accept it. This is beneficial for web browsers, though, because basically everything they access is untrusted, third-party data. It's better to fight your compiler than to fight people trying to exploit your users.
Again, it's still a way off, though. It might be good for web developers to keep an eye on, though, in case any of their optimizations implement standards either correctly, but differently from other browsers and highlights a bug in your website, or incorrectly, which exposes a bug in Servo. Making a web browser is immensely difficult.
Subject: General Tech | November 5, 2015 - 07:01 AM | Scott Michaud
Tagged: valve, steam, Rust
Team Fortress 2 switched from a paid game, first seen in The Orange Box bundle, to a free-to-play title. Financially, you could say that it was supported by tips... ... tips of the hat. Some responded with a wag of their finger, but others with a swipe of their credit card. Where was I going with this? Oh right. This game put Valve on the path of microtransactions, which fuels games like DOTA 2 that aren't supported in any other way.
Each of these item payments are done in game however, even Valve games, except for one. Rust has been chosen to introduce Item Stores on Steam. If you go to Rust's store page, you will see a category called “Items available for this game”. Clicking on it brings you to “Rust Item Store”, where you can buy in-game clothing, weapons, and sleeping bags with real money. This feature is not even available on Team Fortress 2 or DOTA 2.
While there has been some parallels drawn between this and the backtracked paid mods initiative, I don't see it. This is not attempting to take third-party content, some of which was plagiarized from free, existing mods, and sell it. This is an attempt to provide a platform for in-game purchases that already exist. If there's a story, I'd say it's how the initiative launched with a third-party game, and not one of Valve's two, popular, free-to-play titles.
Subject: General Tech | December 5, 2013 - 03:59 AM | Scott Michaud
Tagged: GCC, Rust, mozilla
Rust is an interesting language in that it aims to be safe and concurrent. It was discussed frequently at Mozilla Summit back in early October both on its own and in terms of the experimental HTML5 rendering engine, Servo. From how it was describe to me from other attendees, it prides itself on its task-based architecture. Basically, your application is (or, at least, is often) set up like a bunch of tasks that get scheduled concurrently and pass messages to one another if they want to communicate. This concept allow for efficient multithreading because each task is inherently independent.
This may remind you of the experiments John Carmack did with Wolfenstein and Haskell.
Apparently at least one developer from the GNU Compiler Collection (GCC) is also paying attention. Philip Herron has been working on the "gccrs" branch to create a GCC front-end for Mozilla's language.
We will need languages like Rust in the near future as processors continue to ramp up in thread count. Just look at the Xeon Phi story from last week: a bootable 288-thread standalone processor based on the Silvermont architecture. If you want this processor to be used efficiently then you better be light on the main thread otherwise your 6 TFLOPs (3 TFLOPs double-precision) will only be quick to behave like an Atom.