I’m relatively new to programming, I’ve been learning C on linux using nano and it’s been very fun. I’ve recently fallen into the emacs/vim rabbithole and I’ve been watching videos about emacs, Doom, spacemacs, neovim and reading comments about people switching from this or that to another config or editor, and I’ve been a bit lost on what to do. Then I realised that I haven’t done any coding and spent all of my time focusing on editors. So here is my question (which has probably been asked many times) : what is the point of investing so much time learning all of this when there are some IDEs that are preconfigured with all the functionality a programmer would need ? Does learning neovim or emacs actually save time in the long run? I know that they’re much more lightweight than IDEs and I’ve been really enjoying using the terminal much more than my time on IntelliJ, but having an easy out of the box visual debugger, refactoring and jump into functions can be really helpful in the long run I think, especially when starting to write actual large programs. Nano is fun, but not a time saver. Why did you chose your editor?

  • Nate Cox@programming.dev
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    I’ve spent most of my career bouncing between vim and emacs, but also trying out the new thing as it came out along the way (sublime, atom, IntelliJ and the variants, vscode, even eclipse for a while).

    In general, the out of the box IDEs are powerful but walled in and I’ve always felt that it was a trade off that didn’t fit for me.

    Emacs was my main for a long time because it’s not really a text editor, it’s a Lisp REPL; meaning you could modify it in place to do basically anything you could ever want. I have an emacs config large enough that it has its own repo now.

    That said, I think that the recent introduction of Language Server Protocols (LSPs) have really changed the game. They basically provide much of the power from the walled in IDEs and give it to any editor willing to write an LSP interface API.

    Providing your editor supports LSPs, I think ergonomics of editing is more important than ever. Find something comfortable and just stick with it. Today I’m using helix-editor because I love the editing model and LSP support is giving me the vast majority of what my old emacs config was intended to do.