Wow what a year for Rust. 2019 has flown by (in real life as well), with so many developments since the beginning of 2019. The 2018 edition has brought so many quality of life improvements to day to day Rust development, particularly the more intuitive module system, NLL, and proc-macros.
Rust 2020 has a lot to live up to!
My thoughts for Rust 2020 are perhaps a little less aimed at new features I want to see than some other roadmaps, but more towards continuing the quality of life improvements, and expanding the ecosystem.
TL;DR I have been thinking about alternative frontends to the Jupyter notebook. The first step is to abstract communications with Jupyter kernels. I have started writing one of these.
Project repository docs.rs crates.io I am a huge fan of the Jupyter notebook environment. It is a fantastic way to explore a new data analysis approach, and keep results together with the implementation and explanation.
I wanted to understand how the Jupyter notebook/lab frontend interacts with the Kernel backends, and as such have started writing a client library.
I’ve been re-implementing the Python emcee library in Rust.
I thought it would be a good project to tackle for a few reasons:
I actively use it in my own work, and am reasonably familiar with the API and how it works it has few external dependencies and is mostly pure Python it performs cpu-limited computations which suit a compiled high performance language the Python version has parallelism to increase speed, which should be easily achievable with rust (We’ll see that for the time being the last point has been put on hold.
At work we use SLES 11 which has quite old versions of openssl and installed certificates. I was getting certificate errors trying to install rust with the rustup tool.
I tried searching for any help at all but in the end I followed the following advice:
download a more recent certificate bundle (e.g. from certifi or mozilla) set the environment variable SSL_CERT_FILE to point to this new file This works for both rustup and cargo meaning I can develop with rust on my work machine.
I’m learning Rust at the moment, which I’m finding quite an interesting challenge. I agree with a lot of the Rust principles and find it extremely comforting that the compiler has got my back, but it’s bringing me back to my early times learning C and “fighting with the compiler”.
How many hours did I spend adding “&” and “*” to variables to pass into functions before I really understood what it meant for a function to take a pointer?