4 ms·
On the topic of language IDE support. One of the things I've noticed from working in a few languages professionally (Python, Ruby, Java, Elixir) is that the lev
by grantjpowell 6y ago
On the topic of language IDE support. One of the things I've noticed from working in a few languages professionally (Python, Ruby, Java, Elixir) is that the level of power required in an IDE seems to be a function of the language.
My observation was that to feel comfortable in Java I tended to require a very powerful IDE (Intellej) to deal with refactoring and appeasing the type system.
When I write Elixir, I feel comfortable using a much less powerful (from a language integration standpoint) Vim, mostly due to the constraints Elixir has in the language. In Elixir, there is no mutable state, I can feel confident that the only things affecting a function are the things in front of my face when reading it. Elixir's alias/import syntax make it pretty easy to jump to the file that has a function definition in.
I think FP languages tend to have an edge in how much power an IDE is required to have, because those languages tend to have features like immutability and composable higher order functions)
- nerdponx 6y agoThe biggest advantage of an IDE for me, in any language, is the ability to rename/move/refactor things across multiple files in a project correctly. I feel notably less capable in this regard when using Vim versus a "full" IDE, no matter what the context or project.
- grantjpowell 6y agoYeah, this exact flow was a pain for me in switching from vscode to vim full time. My flow now is to search for a bunch of instances using the fzf plugin (https://github.com/junegunn/fzf.vim https://github.com/junegunn/fzf.vim) and open them into the quickfix list, then do something like :%s/old/new/gce | :w | :bnext
- throwawaw 6y agoIs fzf buying you anything over just using :grep? (If speed is the issue, the magic words are `set grepprg='rg --vimgrep'`, after which it's actually usable.)
- grantjpowell 6y agoI've never really explored the native grep functionality, so its possible I'm missing something. The two features I really like about fzf are 1.) the preview window (visible here https://github.com/junegunn/fzf https://github.com/junegunn/fzf) 2.) Fuzzy finding/multi-selection/gradual refinement of search terms
- throwawaw 6y agoNope, you're not missing anything, then. Maybe I am -- I use the fzf plugin, but only for finding files. Is this (build_quickfix_list) what you're using? https://github.com/junegunn/fzf/blob/master/README-VIM.md#examples https://github.com/junegunn/fzf/blob/master/README-VIM.md#ex...
- noisy_boy 6y agoHaving used IntelliJ, the biggest advantage of IDE for me is the speed with which the errors are surfaced allowing me to correct them way more quickly than I could ever do in vim. It is so much more easier to find where things went wrong and how. That lets me focus on the logic instead of wasting time on things like fixing misspellings. Also totally agree with the ease of refactoring - it basically gives you the time and confidence to iterate freely.
- smabie 6y agoThis is true, especially when it comes to array languages. When I was learning kdb+/q, I realized that the language was small enough that I didn't need autocomplete. Also, the language is so powerful that I didn't really even type that much. I would have been perfectly happy writing out the code on a paper napkin it was so terse.
- grantjpowell 6y agoMy observation is that I tend to like languages that I don't need powerful tools to work with. That seems to be a mark of a well designed language to me