6 ms·
Anecdote from this week: I've been working on a Python project that uses several classes and subclasses, with code paths that move around a lot through the clas
by ivan_ah 7y ago
Anecdote from this week: I've been working on a Python project that uses several classes and subclasses, with code paths that move around a lot through the class hierarchy. I was trying to add some functionality but kept getting bogged down trying to make sure all the subclasses implement the same interface, using Atom as the text editor.
Then I installed PyCharm and completed the task in just a few hours thanks to the "find uses" and jump to definition functionality. I was also able to refactor some less-than-good variables names. I've always hated IDEs for personal projects (to avoid mind-rot), but now I'm starting to think for large enough projects you just need an IDE.
The only drawback I see is a few millisecond lag on all actions. Every time you scroll, or clock on something there is a lot of things going on in the background, vs. Atom which feels near-instant.
- apetresc 7y agoYou definitely don't need to go to a full IDE just to get find-definition and find-references. Those are basic features of any ctags-enabled editor, and nowadays with the momentum behind LSPs you get carrier-grade versions of it without even needing to generate a tag file. (In fact, Neovim's next version will actually ship with an LSP client, you won't even need an extension for it). I just bind 'gd' and 'gr' to go to definitions and references, respectively, and I'm good to go in vim.
- bordercases 7y agoVery popular LSPs actually have poor support for basic definition/reference jumping. `javascript-typescript-language-server` sticks out to me as my first disappointment. And the only implementation of a vue language server is no better, where tls would just throw errors for mixing HTML templates with scripts even if it handles the Javascript properly.
- fiddlerwoaroof 7y agoWhichever language server the tide package uses in emacs has excellent jump to definition abilities.
- m0zg 7y agoThere's also YouCompleteMe, which gives you completion for half a dozen popular languages.
- dleslie 7y agoEmacs has dumb-jump, which is just... Fantastic. Absolutely fantastic. It doesn't perform any deep semantic analysis; it just abuses whatever existing grep-like tools you have and a bare minimum understanding of the language syntax to find likely correct definitions. https://github.com/jacktasia/dumb-jump https://github.com/jacktasia/dumb-jump
- TeMPOraL 7y agoHoly hell, it's the missing companion for Hippie Expand! For non-emacsers, hippie-expand completes the word you're typing by throwing a bunch of heuristics at it, most notable of which is "search this and every other opened buffer for the last few things before the cursor, and see if this produces a completion". (A funny side effect of this heuristic is that it essentially behaves like a Markov chain. If you have it bound to a key, say M-/, then you can type a starting word and repeatedly press "M-/ Space", and it'll start generating text based on what you have in your open buffers.) https://www.emacswiki.org/emacs/HippieExpand https://www.emacswiki.org/emacs/HippieExpand
- bobbylarrybobby 7y agoI think visual studio code strikes the right balance between performance and functionality
- Barrin92 7y agoas a very loyal long term emacs user I have to agree. I find myself using vscode more and more just to how more pleasant refactoring and debugging python code is.
- fiddlerwoaroof 7y agoI almost switched to VSCode for JavaScript but I’ve found that tide-mode (for JavaScript) and lsp-mode (for other languages) have really closed the gap. (If you turn off lsp-sideline-mode)
- fergie 7y agoI dallied with VSCode when work forced me to deal with a gigantic lump of Typescripted React, but in the end I found that emacs with tide/prettier was a nicer experience, so I ended up going back, as I always do, to emacs.
- Scarbutt 7y agoI miss the raw text editing and no-mouse flow when on vscode.
- thrower123 7y agoI don't understand why people like VS Code. Are they coming from Eclipse, or writing code in Notepad? It's light for an Electron app, but that still makes it a bloated pig compared to Sublime or Geany or any of the older Scintilla/SciTE editors. It can't do multi-window at all, which is a disqualifying mark in my books.
- zelly 7y agoIt is very well designed. Probably the most well designed editor/IDE ever created. (This is coming from a long-time Emacs enthusiast who still uses it most of the time.) Everything is modular and pluggable, like the extension system, tasks, the formatter, the debugger, language server. It offers a consistent API for any language or build system to tool against, so one improvement in the core editor can improve the experience of every language/build system. It is heavy because it pulls in Chromium, but this is also one of its strengths. User extensions run on the same V8 that the entire editor does, so when you make an extension, it runs as fast as it would if it were part of the core editor. (This is a huge downside of Elisp's and Vim's interpreters.)
- flukus 7y ago> ses several classes and subclasses, with code paths that move around a lot through the class hierarchy The flip side I see more often than not (no idea if it applies here) is that IDE's are the enabler that allow such terrible code where less tooling would force a much simpler and more readable design. The more tooling you need to navigate a codebase the less readable it is. The reason "you need an IDE for java" is so prevalent isn't so much because of the language but because of the "enterprisy" OO code the ecosystem is famous for. IDE's can certainly help, especially once projects reach a certain size, but reliance on them is an indicator of greater problems.
- closeparen 7y agoCodebases get unwieldy because lots of people make small, individually reasonable changes to them over years, and it adds up. I don’t need an IDE to add another invocation of the method. I need an IDE when the signature has to change.
- fiddlerwoaroof 7y agoYou don’t need an ide, you need a list of potentially affected lines.
- flukus 7y agoAnd they don't get wieldly again because Ides are so enabling.
- Scarbutt 7y agoHow is your grep/sed/regex fu? learning these tools will pay big time.