This is in response to the Call for blog posts for rust 2020.
I would like to propose that 2020 be a year where some significant focus is placed on the Rust Development Experience. I define Development experience as tooling and ergonomics that improve the quality of life of the developer while increasing productivity. In this post, I'd like to briefly explore the current state of the development experience using Rust.
Coming from a Java background, the IDE; Intellij, Eclipse, for example, form a core part of the development experience and emphasize user productivity. Fast tooling like smart auto-complete and IntelliSense aids API discoverability and helps lower the barrier to entry for new potential users of the language.
Some of this tooling is an expectation that some library and API designers assume when publishing libraries and tools.
While I do acknowledge that an incredible amount of effort has gone into the development of IDE infrastructure, I think it's helpful to assess and acknowledge the current state of the available tools.
RLS; by extension, the
Atom plugins, as well as IntelliJ-rust currently experience significant performance issues that make them almost unusable on larger projects.
Some strides have been made in alternative tools like
rust-analyzer but in my experience, it can also be very slow to use on larger projects.
The availability of existing tooling specifically
gdb is helpful in this regard but there is still work that needs to be done to truly make rust support for this first class.
That being said, Google searching
Rust debugger returns the following Reddit thread for me as the second result
I think that the highest upvoted comment in this thread being
println! is a clear symptom that there's work to be done in the space.
At the end of the day, having great tooling that supports you as a developer just leaves a very positive taste that creates a fun environment that a user wants to come back to. That is, in my opinion, at the core of building a great development experience. I think it's safe to say that great languages and ecosystems are supported by great tools; and I think that this holds for Rust as well, with great tools like
rustc. I hope that 2020 is the year when our IDE infrastructure can catch up.