Rust official IDE

Hello World. Intelij's rust plugin is now only available in their payed IDEs. Rust rover is not going to stay free of charge for ever.

I think it's time to address seriously the lack of official IDE for rust. Our community is groing. Rust is being integrated in inux kernel, and Microsoft os also adopting it. It's still the most loved language on the web.

But the only very good free code edition tool for it is vs code.

We really must think about starting together an IDE project. Even something as simple as Anjuta could be a very good starting point.

I don't understand. What is the value of a rust-specific IDE?

What do you want from an IDE that isn't already available from a language server (LSP) + text editor?
Or heavily enhanced text editor like VSCode?

If it does offer something super valuable, then isn't it worth paying for?

17 Likes

rust-analyzer is official, and as a LSP server, you can use a multitude of editor frontends with it. I see no reason for the Rust project developers to spend time working on an IDE UI, I much prefer the status quo where their efforts are more focused on the language, library, and tooling itself.

31 Likes

Philosophically I don't feel that a programming language should have its own IDE or "one true blessed IDE". Further even feel that if a programming language is to difficult to write code in without syntax highlighting, intili sense, auto completion, etc there is something wrong with the language ergonomics.

Given the decades long heated debates between editor users who are firmly attached to whatever their pet editor is I seems a language blessed IDE would likely be unused by most.

Having said that, people are working on editors and IDEs in Rust. Which is a great thing. For example:

14 Likes

I prefer IDEs that work well for a variety of languages, especially since most commercial projects I work on are built on multiple languages. vscode serves me well.

If you're up for creating a new IDE, then go for it! If it turns out great, you might attract a large user base. If you end up with some innovative ideas, they may migrate to existing IDEs, helping everyone.

4 Likes

Additional to lapce we have also GitHub - helix-editor/helix: A post-modern modal text editor. written in Rust with good rust-analyzer support.

11 Likes

Ah yes, Helix. Looks great. Google could not find that name for me when I asked for "Rust IDE".

I wonder where the motivation for the "Official IDE" idea comes from. This kind of blessed or dedicated IDE was a thing in the days of Borland Turbo Pascal and the like. Even today embedded systems engineers and FPGA users suffer from vendor mandated IDE's. We have moved on from that situation decades ago.

2 Likes

Reading again I do have sympathy with the idea of an IDE created in Rust for Rust (and other languages of course). Not as an "Official IDE" created and driven by the Rust project itself but as a creation of Rust users. As noted above there is at least one such effort in progress already so things are going in your direction.

It is a decision in the Rust world that the standard library will be kept as small as possible and that other useful features will arise as libraries in contributed crates. An IDE is even further away from core language development than libraries. So user developed, un-official and independent IDEs in Rust are appropriate.

2 Likes

I switched from nvim/coc.vim to Helix a year ago and I'm very happy with it. One nice thing about it being implemented in Rust is that you know the LSP integration with Rust will be high quality, since the editor devs are using it themselves. :wink: I assume the same is true for lapce.

4 Likes

The IDE doesn't need to be rust-specific. The problem is that the only good IDEs that support rust no wask for money. I'm not blaming intelij. But as an Open-source community, we are not going to pay 3 to 600 dollars a year, to develop the projects that we love.

You know, gnu nano and cargo on a terminal would suffice. The difference: workflow ease and productivity.

Imagine an offline workspace that is not based on heavy techs like electron, that has built-in cargo and rustup setup. A tool that allows searching for crates, browsing their docs and testing them in sanboxes.

Very cool. As @ZiCog said, it's very poorly referenced on Google. It's only now that I'm discovering it.

Nether do I. I imagine a tool maintained by the community but that is backed or supported by the main team members. There are many such examples in the open source community.

Yes. I'm not saying that we should necessarily start a new project. Better supporting existing projects can do it. Lapce for example is very good. But on many systems it has serious display issues and some ui elements don't work. On my laptop, it can't open a folder. With more help from the community, they could overcome those issues.

There is always Neovim. https://neovim.io Which has extensive support for syntax highlighting rust/analyser and such Rust and Neovim - A Thorough Guide and Walkthrough | the trait Neovimcan do everything one needs in a Rust IDE.

Oh, it's not graphical, Neovim is a TUI. I don't see that as a disadvantage. Oh, it's not written in Rust. Well, I think that is OK.

In the end Rust Rover adds very little value compared to everything else because its still built on top of rust-analyzer, all the things they showed it doing you can get in any IDE that suports rust-analyzer.

I can do all the Rust Rover things in Neovim, but if you like clicking stuff there are plenty of editors that do the same, I saw nothing wrong with VS Code for Rust for instance, although I haven't used it a lot.

3 Likes

RustRover doesn't use rust-analyzer. It would probably be faster and more accurate if it did :yum: - but they're stated goal for making RR a separate product is to improve the existing Rust plugin.

Any other company, I'd think this was likely greedy dumb crap, but IJ have a long history of doing quite well at beating the language providers themselves at language analysis and refactoring, so I guess it's wait and see.

5 Likes

Any "official", "standard", "ubiquitous", "universal" or "main" things always sounds like xkcd: Standards in my mind :stuck_out_tongue:

Designing and implementing good language and IDEs are two different things. It's exactly why LSP have been created. Just give some abstraction & control of language symbols/idioms/structures to the tools (not only IDE), and let's people have fun with it.

If you feel enough confident & skilled to create the next feature-killer idea: go for it. None who have used several IDE over years (changing for better each time) would complain to have a better competitor for VS Code, Vim, etc.

If you feel enough confident & skilled to contribute to integration into one (or many !) of your favorite(s) IDE(s): go for it. None who is using this (these) IDE(s) would complain to have a better experience.

5 Likes

Such an IDE would be a great introduction for new programmers and could be as simple as wrapping the playground runtime in a GUI but more orientated towards interacting with the traditional crate structure such as with respect to first time using a Config.toml and code testing. Opportunities would include more beginner specific flags or curated walkthroughs such as pointers for for working through rustlings or rougelike-tutorial without needing to install compiler or git or vim plus extensions, etc.

1 Like

If anything this topic made me discover helix, and now vim is out, vs code is out, helix is in :slight_smile:

4 Likes