Refactoring development

Ramblings from the trenches...

View on GitHub

Awesome stuff happened in 2018:

* Books - we got the best books.

* NLL landed

* IntelliRust debugging support got better,

* LLDB for Rust is now a thing. 

* ProcMacro stabilised

* Nexus repository support

* Rust + WASM became a thing.

Writing command line apps is a real joy with today’s Rust. Writing Rust Services really needs Async/Await.

Next for Rust in 2019 ->

Async-Await stabilised is key before we do anything else. This needs to be top priority to the exclusion of all else. (I’m including turing a generator into an iterator here as that is in the same area)

Once done, we can focus on long term - I’ve had the chance to read quite a few of other’s Rust 2019+ ideas. I think we need to go radical:

Firstly a vision for a worldclass RLS-first incremental compiler: https://ferrous-systems.com/blog/rust-analyzer-2019/

Secondly multi-machine compilation as standard - FitzGen’s Think Bigger: http://fitzgeraldnick.com/2018/12/11/rust-2019-think-bigger.html

We may not have the easiest language to learn, but given the compiler is written in rust we should be able to parallelise it better than others and make it one of the most pleasent experiences once people have overcome the one-time learning curve.

Adoption

Private repositories (native support in JFrog’s artifactory) are one of the next stepping stones. As too is rebuilding the test runner so that it can support various CI tools out of the box.

Papercuts

We still need string manipulation to be easier:

Where &str is expected it would be great if we can give a String and the compiler automatically insert the ‘&’. For example I’d like to see String + String work without needing to do String + &String. I don’t think this would violate any of Rust’s core principles of explicitness as no implicit allocation would be occuring. We have already done this in matches so there is precident.

Tough cookies to crack:

Other Rust Visions

https://readrust.net/rust-2019/