This article is written in a response to A call for blogs 2020.
I'm fairly new to Rust, and thus my perspective is that of someone who is not quite sophisticated with the language. I think Rust is hard to learn but should be manageable for your average software developer given enough persistence.
Once you are over that barrier, you start thinking of building something in Rust. Probably, for the web, or a desktop application, or a mobile application; because that's largely what many developers are building today.
The problem is, in my opinion, the Rust ecosystem is pretty much under-developed at this point. Especially, if you are targeting web, desktop or mobile. The infrastructure is simply not there. The crates have little maintainers, little documentation, no tutorials, and the tooling is just bad.
So here is how I think this should be approached:
- Focus on few angles and crates. For example, a web framework; or a cross-platform native GUI library. The number of these crates should be less than 10.
- Documentation should be a priority, with examples and tutorials to get people started using these particular libraries.
- Preferably run on latest Rust Stable.
- License the libraries under MIT License to enable commercial use.
- No unsafe code or minimize unsafe code. In general, these libraries should show developers how to write code and follow best practices with Rust.
For tooling, here is what I'm struggling with:
- Very slow compile time. This has been mentioned many times, and I think any speedup will be welcome.
- Lifetime visualizer: I think it'll help to have the people who developed the language do this (I think it is a hard problem). This could be a simple CLI app, and developers will jump on making a nice UI output.
- Published on