3 ms·
I guess an IDE has an unclear definition, but I mean stuff like Intellij, Visual Studio, or Eclipse. With LSP along with an explosion of new languages, they don
by smabie 6y ago
I guess an IDE has an unclear definition, but I mean stuff like Intellij, Visual Studio, or Eclipse. With LSP along with an explosion of new languages, they don't provide as much value anymore.
A high quality language server can provide 99% of what a high quality IDE can (like Intellij). IDEs still have an edge, like with debugging, profiling, or SQL db integration. I've mostly ditched Intellij in favor of Emacs for a large Scala project, something I wouldn't have ever dreamed of doing 5 years ago.
I still use Intellij for debugging, but hopefully debugging servers and some Elisp will solve that problem soon.
- pjmlp 6y agoThat is like 10% of IDE capabilities.
- niclo 6y agoCan you please list the other 90% of must have capabilities for day to day development ?
- pjmlp 6y ago- GUI designer for each UI framework available - Visual representation of data structures - Navigating in binary libraries - Architecture diagrams with two way editing - Integration with ticket and source control systems, so that I can relate an issue with a branch and respective set of changed lines of code - Live unit tests - Live static analysis, as one types - Incremental compilation, when hitting run almost everything is pre-compiled - SQL database integration, ER diagrams, OR mappings generation - Management of server instances and cloud services - Memory profilers - GC tuning tools - Code metrics - Graphical debuggers for GPGPU programming - Graphical debuggers for threads, tasks and processes - Handling of processes as single project for micro-services debugging And a couple of other stuff, basically the kind of goodies one gets with Visual Studio Enterprise.
- simion314 6y ago>Can you please list the other 90% of must have capabilities for day to day development ? - find definition - find usages - rename - extract method - detect code duplication - highlight unused symbols(vars or functions) - understand frameworks and libraries - can suggest useful transformation or code simplification - Intellij can understand type documentation like JSDoc and PHPDoc and use it in completion and highlight errors if using the wrong type or object member - smart spellchecking, spellchecking that understand when it is in a comment or if it is a symbol name - good VCS support(diff, commit, push) - good debugging support - IDEs have by default a lot of linting and code analyzing tools setup, trying to go from Intellij to VS Code defaults is a big downgrade , maybe it could be partially fixed by installing many plugins but I personally want to pay for a good program made by professionals and keep them profitable(and not have JetBrains fail or get bought by Google or Microsoft)
- benley 6y ago> - find definition > - find usages > - rename Emacs has these covered, especially when using LSP modes > - extract method I don't know what this is, sorry > - detect code duplication > - highlight unused symbols(vars or functions) This is what linters and static analysis tools are for, and emacs integrates with them nicely via flycheck. > - understand frameworks and libraries not sure what this implies, sorry > - can suggest useful transformation or code simplification > - Intellij can understand type documentation like JSDoc and PHPDoc and use it in completion and highlight errors if using the wrong type or object member More static analysis tooling, doesn't need to be built-in to the IDE, just hooked in with something like flycheck. > - smart spellchecking, spellchecking that understand when it is in a comment or if it is a symbol name emacs can kinda do this via flyspell but it's not perfect. You're right, this is a good idea. > - good VCS support(diff, commit, push) magit! > - good debugging support I'm mostly clueless here, sorry. > - IDEs have by default a lot of linting and code analyzing tools setup, trying to go from Intellij to VS Code defaults is a big downgrade , maybe it could be partially fixed by installing many plugins but I personally want to pay for a good program made by professionals and keep them profitable(and not have JetBrains fail or get bought by Google or Microsoft) aye, there's the rub. I suppose the "I" in IDE is the real value: the package deal with all the linters and analysis tools already hooked in. Various LSP modes have made it vastly easier to reach feature parity with this stuff in emacs with minimal effort, but I also definitely understand why things like Intellij are desirable and useful.
- taude 6y agoI don't know. I'm a very heavy Emacs Doom user, but I still load up projects in Intelli-J/Rider. I find Emacs combined with ripgrep/silver searcher a nice way to search across all my projects, and treat my local code bases as a monolith. Once I find what I need, if I'm not just reading the code, I typically open of the project in a native IDE. I'll only use Emacs for making small configuration changes, or when working with small POC type of stuff, or writing small CLI projects. I do use it extensively for magit and org-mode, org-journal, and my REST API interface via org-verb (instead of Postman/curl/httpie) though.