Comment by throwaway81523

1 year ago

I use Emacs and sometimes I open a window to bring up a man page or code definition for some function, but I've never felt the need for a fancy IDE. You just get used to what is going on in the code. Like if you are a fiction writer and you're asked to write a new Star Trek episode, after watching a few existing episodes you would get familiar enough with the characters and milieu to not need to refer to the series bible too much. An IDE that pops up suggestions like "Live long and prosper" or "we have 93.2357% chance of blowing up the ship, Captain" when you type the name "Spock" sounds counterproductive. Maybe I'm missing something though.

Added: it helps a lot to have real documentation, something that has gone out of fashion in recent years. Maybe these IDE's are being used as a substitute. I hadn't thought of it that way before. Hmm.

Added 2: Also, Emacs has always had TAGS (this quick navigates the editor to a function's definition given its name) and I do use that sometimes.

For years now Emacs had integration with LSP. The experience isn't quite the same as VSCode (I think, there are some proprietary extensions to LSP protocol, or some such, but don't quote me on this). But it's good enough to work in most cases (this is how I write in Ada and Rust, for instance). So, if you use Emacs: https://github.com/joaotavora/eglot I believe this is the most popular implementation.

  • I had thought LSP was basically an editor-independent way to implement language editing modes. Since I mostly use languages Emacs already has modes for, I haven't pursued LSP, but I figure that it's there if I need it. Thanks.

    PS, I would be interested in seeing a serious Ada vs Rust comparison by an actual fluent user of both.

    • Well, I'm not there yet :) My knowledge of both languages is quite superficial. And, unfortunately, it tends to stay that way, unless I work on a commercial project in a particular language. I sort of worked on a Rust project, but I barely touched the Rust code (mostly the automation around it). With Ada, I don't expect to ever find a job that requires it...

      As for the "proprietary" part, this is my understanding, which might be totally wrong, and maybe some VSCode users will correct me (I don't use VSCode):

      Some LSP servers are proprietary (even though the protocol itself is open-source). Furthermore, some VSCode extensions (which is what LSP servers usually are) are both closed-source and have a license that only allows them to be used with VSCode. So, other tools that can interface using LSP won't necessarily have as good of a support as VSCode. LSP being a complex interface means that it can be implemented to a lesser degree by any individual server.