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

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.




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

Search: