Rust 2019 — let us pursue composability

On editions and themes and the following year

Composability as a core value

Examples from the composability zoo

Enter Rust

  • More embedded targets
  • Streamlined build process for embedded
  • Easier and more complete story for no_std
  • Complete and stabilise per-object allocators
  • Make the WASM story even better
  • Finish the work on generic associated types to allow more generic libraries and interfaces to be built
  • Support projects that aim to make calling Rust code from other languages easy, such as Helix
  • Create a strong culture for community code reviews to improve trust in the ecosystem libraries and support the development of tooling for that. Crev is an extremely promising project.
  • Make builds generally more robust by sandboxing the build scripts and procedural macros (how awesome an use case for WASM would that be!)
  • Make it easier to standardise build scripts by allowing them to depend on some community-maintained well-behaved libraries (RFC)
  • Make separation between private and public dependencies clearer in Cargo, and make tooling for checking it automatically. (Edit: added this item on 2018–12–10)
  • Support tooling for automatically detecting semver bumps; make Semverver a more integrated first-class tool. (Edit: added this item on 2018–12–10)
  • Assess the problems with the orphan rules / coherence restrictions and try to solve the cental problems of “glue crates”. (Edit: added this item on 2018–12–10)
  • Provide a versioned, stable ABI. It doesn’t have to include everything in Rust, but it should allow using some common types such as slices and trait objects (with possibly only some subset of the all features of trait objects) for stable FFI calls.
  • Make lifetimes more composable through new typesystem features. I’ve highlighted some problems in my earlier post Things Rust doesn’t let you do. Especially the last three items 12–14 apply here.
  • Make it possible to reason about side effects in a generic way, introducing a polymorphic effect-handler system.

Footnotes

--

--

--

A software engineer based in Tokyo, Japan. Originally from Finland. A #Rustlang enthusiast. Linguistically oriented.

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Programming Your Learning Process

Mixed Content Warnings in Google Chrome

Introducing DNS Resolver, 1.1.1.1

DATABASE CAREER PATHS

Checklist to launch your new microservice!

Permutation Operations in Rust

Nodel at ACMI Part 1: Basic Concepts

Server Driven Banner for Apps

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Pyry Kontio

Pyry Kontio

A software engineer based in Tokyo, Japan. Originally from Finland. A #Rustlang enthusiast. Linguistically oriented.

More from Medium

Genesis in Rust: Getting Started

ESP32 MQTT Publish with Rust

Rust 002 — Variables, Functions, Conditionals, Loops

Crab! Learning Rust Like a Crab!