Hacker News new | past | comments | ask | show | jobs | submit login

I'd really love to use rust, given the large growth of projects like this. I only need an IDE to get started, but it seems like there isn't one yet.

Anyone have any pointers on where I can find a good IDE for Rust? Should I just start praying to lord-JetBrains for something that works?




If you've never programmed without an IDE I strongly encourage you to give it a go. You'll learn a lot!

[Good lord, a downvote on this? I'm being completely sincere.]


True. I taught myself C using vim + gcc under Linux. For those wondering what exactly you learn:

1. You learn the command line interface to your compiler, which is invaluable and something you'll have to learn at some point, even if you start off on an IDE.

2. Similarly you learn the command line interface to the compiler's support tools like make, linker, debugger, profiler, source code revision control, grep, strings and so on, and more importantly how the whole process of 'write-compile-execute-debug' cycle is done.


I learned how to program without an IDE, and I'm a pretty big fan of it. And strongly typed functional languages with type inference tend to be really easy to write and refactor without needing specialized IDE tasks for the job.

That being said, nowadays I use an IDE because it is extremely helpful to have autocomplete (which is okay with Racer+Vim, but kinda hacky) as well as the hover for type information (name of types, type signature, etc.). Without the hover information, I usually end up doing ridiculous things like writing bogus explicit types to see what type an undocumented function from a library will return after compiling (Is it Option? or Result?). That is really annoying.

I didn't downvote you BTW.


[this post was wrong]


Isn't it the other way around? One can downvote a post and then reply to it, but can't downvote replies to one's own post?


Gah, you're right.


I have programmed without an IDE. What I learned was that I'm much more productive with one then without.

An IDE lets me focus on the problem, not the language.


I have worked for years without an IDE because there where none.

What exactly is there to learn? That you have to spend more valuable time on memorizing unimportant things?

There are now some pretty decent autocomplete plugins for emacs, so it is possibly an option if you already an emacs user. But emacs is emacs.


I don't understand why you need an IDE, I believe Rust is simple enough that you can work on things in Notepad++ or Vim or Emacs.


Here are the features I like in an IDE that make be very productive:

  - Autocompletion
  - Mass rename
  - Source formatting
  - Integrated debugger interface with breakpoint insertion and overlying of state on source
  - Integrated VCS control
  - Automated deploy 
  - Error display
  - Automatic importing of modules
  - Source cleanup (Automatic loop transformation)
  - Automatically building my project
That's just a few things that I like an IDE to have. Some provide even more features that I like.

I understand that there are other tools that do the tasks better, maybe even faster, but that's not what I want. I want to be able to learn one thing, and learn how to use all of it's features well.


Autocompletion: YouCompleteMe + racer + racerd

Source formatting: rust.vim + rustfmt

Automatic building: https://github.com/passcod/cargo-watch

Error display: tmux, terminator or iTerm2 split planes

Rust has pretty good tool support in vim and Atom, for example (can't speak for the rest). We don't have stellar IDE support yet, but it's on the to-do list: https://www.rust-lang.org/ides.html

Personally, I don't miss IDEs. I like the approach of small, single-purpose, composable command-line utilities more.


As I said, I don't want to learn how to use 5+ tools. I want to be able to install one thing, have everything work out of the box, and learn how to use their uniform and standard way of doing things.


I acknowledge that learning lots of tools just to start using a new language is a bit much.

However, the reason why so many people in this thread persist in suggesting that these tools are worth learning is that turns out most of these tools plug-and-play with whatever new language you feel like learning 6 months or 2 years or more from now.

Vim is one of the more popular editors to use in conjunction with this plug-and-play philosophy; if you have a change of heart and want to take a dive into learning to use Vim as such, I'd recommend Vim as an IDE[1], which addresses a lot of the points you brought up in your list of things you wish an IDE had.

[1]: https://github.com/jez/vim-as-an-ide


The problem with composable tools is that some things are really hard to compose and separate out, and have to be integrated: syntax highlighting, autocompletion and interactive debuggers are really hard to treat as separate programs.

You probably noticed how useless racer is on the command line: type code in your text editor and then when you want a completion, you go to your CLI and type "racer myfile.rs row,column" and there are your completions! :) Jokes aside: it's clearly superior (and intended) as an integrated tool than as a command line tool.

I'd argue that a debugger can offer the same kind of power being an integrated debugger as the (admittedly silly) racer example.


> Error display: tmux, terminator or iTerm2 split planes

Split panes are a poor substitute for actual error display integration; highlighting the errors in the source-code viewer, combined with a cross-linked list of errors is far more useful.


The linter-rust plugin for Atom provides this, as does the RustyCode plugin for VSCode.


Do you use all of the autocompletion options you listed? Or is YCM with --racer-completer enough?


I don't see another autocompletion option than YCM with --racer-completer in my list, so yes and yes. I use all the tools I listed regularly.


You listed racer + racerd separately so I wasn't sure if you meant the --racer-completer option or a different approach. Thanks.


Yeah. I'm a vim guy myself, but I totally understand the appeal of IDEs. Luckily Rust is a well-defined language (unlike C and C++), so building a nice IDE shouldn't be too arduous.


The compiler for Rust still needs work in order to support the partial compiling required for typical IDE.


Not only that, but it looks to have some very good tooling. Cargo should simplify things a lot for whoever writes IDEs.

Not only do you have a package manager, but a build system.


vim (+ sh) cover all those things, except maybe the last two.


The last two items are definitely achievable. As a saying goes, "vim is my editor, Linux is my IDE." I'd rather learn a handful of tools that will last me my career and be valuable in many different circumstances in and out of work and more formal "programming" than learn a new IDE per language and/or a new Master IDE for multiple languages every few years.


Autocomplete is a godsend, I don't type nearly as much as I hit my arrow keys+tab. Whenever I have to write anything outside of ObjC (in Xcode) or Java (in Android Studio), I get annoyed very quickly.


This is pretty common, and the advantages of Rust won't overcome people being inherently lazy (not in a bad way... lazy in this sense is really more efficient).

People love C# for that very reason, once they get used to Visual Studio, convincing them to switch to something with very limited IDE support is a tough argument. Most people have better things to do with their life. Rust will get there though, just give them time.


I write C# at work using VS, and am working on getting omnisharp running so I can use VIM here instead. I have fully converted from being an IDE person to a VIMMER. So many helpful things, and keyboard binds that I can't believe I ever lived without. VsVim just isn't the same, and cannot be used in VS2008 which we unfortunately use most of the time.


I tried to use Rust briefly but found that discovery was very difficult without autocomplete - I'm used to Swift's SourceKit, which is quite good if it hasn't crashed.


It is interesting no one suggested Rust project internal ide support. They are developing something called Oracle.This is basically everything IDE needs (autocomplete, reference finding, error checking, etc). Oracle haven't finished yet.But after Oracle being ready, I think every editor/IDE out there can provide best experience for rust by simply calling a bunch of API which is very simple thing to do compare to writing their own AST and autocomplete.

About the project, not being GPL is serious bummer for me. I don't want to GNU project isolate more than this and anyone other who has simple understanding of politics behind the scene will understand GNU as foundation have done a lot of good things for programmer/developer/hackers community.By far more than any other player in this area.

And since I have worked on Glibc for a while and I wanted to use rust just for experiment,I was seriously considering to work on this project if it were GPLv3.


Slightly off-topic, but isn't Oracle a bit of a dangerous name to use? I seem to remember it was something to do with some big company or other... ;)


it's not Oracle, it's "the oracle". Which is an english word being used in a context where it means approximately what it's supposed to mean.



https://areweideyet.com/

vscode and textadept are good


I'll have to look at textadept. I'm a little weary of VSCode.


You could just use atom and install some rust plugins.


I would, but the last time I installed atom and tried to start it the base text editor, without any added plugins, took 3 minutes to start and used ~600mb of system memory.

In comparison, Eclipse starts in under a minute and uses about half that on my system.

Atom when I tried it was much to large for my system. I might look at it again.


They've done some decent optimizing in the last few releases. I'm finding it much more responsive than it used to be.


Sublime, then. Doesn't take too much memory, and has plugins for Rust.

Though if you want an IDE a plugin for IntelliJ exists too.


SolidOak is a thing.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: