Kodsnack 324 - Any error message that's confusing is a bug, with Steve Klabnik
2019-08-06 05:26Recorded at Øredev 2018, Fredrik talks to Steve Klabnik about Rust and Webassembly. We talk a lot about error messages, based on Steve’s talk on how Rust handles and displays error messages. We discuss Rust’s error messages thinking an handling, but also error messages more in general, such how to think in order to produce error messages both developers and end users have a chance of understanding. Steve explains how and why the Rust compiler is switching from a pass-based compilation approach to a query-based approach to better facilitate partial recompilation upon smaller code changes. We also talk about Rust 2018, how Rust puts out new releases and what major features are on their way.
We then switch to talking about Webassembly. We discuss how Webassembly is moving along, among other things how it is getting better at playing well with others, enabling people to rely on Webassembly code without necessarily even needing to know about it.
Thank you Cloudnet for sponsoring our VPS!
Comments, questions or tips? We are @kodsnack, @tobiashieta, @oferlund and @bjoreman on Twitter, have a page on Facebook and can be emailed at info@kodsnack.se if you want to write longer. We read everything we receive.
If you enjoy Kodsnack we would love a review in iTunes! You can also support the podcast by buying us a coffee (or two!) through Ko-fi.
Links
- Steve Klabnik
- Steve was also in episode 245, talking about Rust, why the lucky stiff and a lot more
- Mozilla
- Rust
- Steve’s presentation about error messages in Rust
- Steve’s second presentation, about Webassembly
- Rust’s Github label for diagnostics/confusing error messages
- ICE - internal compiler error
- AST - abstract syntax tree
- IR - intermediate representation
- Linkchecker
- The Rust book
- Rust by example
- Async/await for Rust
- Webassembly
- Emscripten
- Wasmpack - bundles Webassembly code as a npm package - and puts it on npm
- Spectre and Meltdown
- The host bindings proposal
- The DOM
- Wasm-bindgen
- Polyfill
- Ethereum’s work with Webassembly
- SIMD - Single instruction multiple data
- SIMD-support in Webassembly
- webassembly.org
- The Webassembly spec
- C and C++ through Emscripten
- Blazor - C# to Webassembly
- Yes, there was a talk about Blazor by Steve Sanderson
- Spidermonkey - Mozilla’s Javascript engine
Titles
- Something that should not be an afterthought
- Hard actual work
- What messages to give or how to give them
- Any error message that’s confusing is a bug
- Git blame always returns your own name
- The internal deadline is tomorrow
- The harder problem
- The real test of being usable
- More useful to more people
- Broader than just the DOM
- A host can do these things
- The design is sort of not there
- We need more teachers and explainers