6 ms·
Would you mind being a bit more specific than using vague language and analogy? What are all these modern development tasks?
by xfer 8y ago
Would you mind being a bit more specific than using vague language and analogy? What are all these modern development tasks?
- VvR-Ox 8y ago+1 I use intellij for big projects because of the jump- and refactoring stuff but I know I could do it with VIM if I'd know it better. A good example is SpaceVim that enables people who don't want to configure everything to use VIM as an IDE that provides most of the tools you'd need for developing. E.g. it has a linter for python, mouse support and code-completion. I don't need much more to develop most of the time. VIM is awesome and I think what most people whining about it ignore is the fact it runs in a terminal (vs. some big bloated piece of sh*t).
- erpellan 8y ago* Find usages * Go to definition * Extract method * Introduce parameter * Inline variable * Rename method * Rename variable In a Jetbrains tool these are automatic / atomic operations.
- black-tea 8y agoWhat planet are you people living on? It's like you just whack the word "modern" on the front, stick your hands up and say "haha, you couldn't understand, grandad". Programmers have been doing these things since the beginning of time.
- not_kurt_godel 8y agoI programmed exclusively with text editors for a number of years. Of course you can do anything in a text editor that you can do in a modern IDE as long as you have patience. I would even go so far as to say that having the experience of using a text editor instead of an IDE is a valuable one; certain types of edits really can be done much more efficiently in vim than an IDE so it's an excellent tool to have at your disposal. But text editors simply can't match the sophistication and efficiency of a good IDE that is built to interact with your code programmatically from the ground up. For example, here is a list of refactoring operations that IDEA provides as atomic operations that can be done in a few clicks/keystrokes and instantly, safely undone with a single keystroke[0]: * Change signature * Convert Anonymous to Inner * Convert to Instance Method * Encapsulate Fields * Extract refactorings * Extract constant * Extract Field * Extract interface * Extract method * Extract Superclass * Extract variable * Extract parameter * Extract into class refactorings * Find and Replace Code Duplicates * Generify Refactoring * Inline * Invert Boolean * Make Static * Migrate * Move and Copy refactorings * Pull Members Up, Push Members Down * Remove Middleman * Rename refactorings * Replace Constructor with Builder * Replace Constructor with Factory Method * Replace Inheritance with Delegation * Replace Temp With Query * Safe delete * Type Migration * Use Interface Where Possible * Wrap Return Value Meanwhile, merely performing a simple pure-text find-replace across multiple files using vim and emacs is a chore. And better hope you don't screw it up because there's often no easy way to safely undo such a change, especially not with a single keystroke. The idea that even master-level users of vim/emacs could begin to hope to replicate the operations listed above with the depth, accuracy, and user-friendliness that IDEA offers is simply laughable. Any granddad worth his salt is perfectly capable of understanding that advancements in software have yielded tools that are by far and away objectively superior for a wide variety of development tasks. [0] https://www.jetbrains.com/help/idea/refactoring-source-code.html https://www.jetbrains.com/help/idea/refactoring-source-code....
- pvinis 8y agoThat's cool, if you plan to work on the same technology forever. I think why vim/emacs users have over IDE users is that when you change technology or company or team, you can just change some things about your config and keep working. Try replacing a cool IDE for assembly with a cool IDE for PHP and then a cool IDE for Clojure.
- black-tea 8y agoIn terms of undoing, I use git and I could undo it with just a few keystrokes. As for the refactoring, yeah, you're right, that stuff would be difficult. I'll keep it in mind if I ever do need to do that stuff. It hasn't happened yet, though.
- not_kurt_godel 8y agoLol, k. Good luck.
- xfer 8y ago> Meanwhile, merely performing a simple pure-text find-replace across multiple files using vim and emacs is a chore. It is not, i do that fine in emacs. Half of your list can be done with regex replace. Things like extract and refactor needs language specific tooling that can be done with text editor too(see LSP). And some stuff on your list doesn't even apply to other languages that they have community support for e.g. Rust. But sure Jetbrains has put lot of effort on these tools for a few languages that you can certainly benefit for a large project. Outside of that good luck using it for any other language.
- hibbelig 8y agoI don't see how they could be done with regexes. It seems to me that most of them require class hierarchy analysis so that you don't touch the wrong method that just happens to have the same name.
- not_kurt_godel 8y ago
- xfer 8y agoAll of these can be done in emacs/vim as well for most of languages. None of the above is modern by any standard.
- erpellan 8y agoFeel free to demonstrate how in either of the above to highlight a block of code, extract it to a function and replace all the duplicate blocks with a call to the newly extracted function correctly across an entire codebase in a couple of keystrokes. Or have a go at https://github.com/daviddenton/refactoring-golf https://github.com/daviddenton/refactoring-golf
- not_kurt_godel 8y agoSee https://news.ycombinator.com/item?id=19656115 https://news.ycombinator.com/item?id=19656115