5 ms·
There are several reasons I’ll never touch a JB product: 1. I hate the idea of paying for the thing I write code in. I may not be a FS nut, but I’m a big belie
by ilovecaching 7y ago
There are several reasons I’ll never touch a JB product:
1. I hate the idea of paying for the thing I write code in. I may not be a FS nut, but I’m a big believer in supporting open source by using open source.
2. IDEs tend to be optimized for the write path, when it’s the read path that really matters. Giving people too many tools to rush through writing code is a bad idea. That’s basically how Java became unusable. Writing code is bad. The less code you can write to solve your problem the better.
3. Most of the people I admire at work and in open source don’t use an IDE. Clearly, an IDE is not a necessity to being a great programmer, so why shell out money for one.
4. Not being able to use my text editor I’m a terminal is just a nonstarter for me. It’s immensely convenience, and some workplaces can’t even handle local development because of monorepos.
5. IDEs rob you of the knowledge of the underlying tools, locking you into an ecosystem that you can’t take with you all the time.
6. I’ve worked in plenty of places that didn’t have JB stuff available. Never worked at a place you couldn’t use vim or emacs.
My philosophy on text editors is that you can get 90% of the benefit of an IDE with way less tooling. I use vim, ALE, and fzf/rg and I’ve never felt the least bit slowed down by my tooling.
- sciolizer 7y agoI have to disagree strongly with point 2. IDEs are much better at the read path than simple text editors are. Critical to reading code quickly is being able to navigate it quickly, answering questions like "What are the subclasses of this?", "Where is this called?", "What are the methods in this interface?", "What does super do?", etc. Grep can only take you so far. Language server protocol is definitely improving things, but it still can't answer questions like "What is the chain of function calls linking the creation of this object to its eventual use?"
- ilovecaching 7y agoYou’ve been able to do this with ctags for a long time, which is also the only way you’re ever going to get goto def and dec in a large project like the Linux kernel. Vim even has built in goto, search, etc for ctags. But really, if an IDE is allowing you to write code you can’t understand without the IDE that’s a bad thing. Forcing yourself into a situation where you have to compartmentalize is going to make you a better programmer and lead to better code.
- haimez 7y agoStrong disagree with your thesis here. Most navigators of code are looking for something, and that something is not the most elegant refactor to make to cut some particular Gordian knot. Navigation tools are essential especially because the (vastly) larger audience is uninitiated.
- Garbage 7y agoRegarding point 1, you know that IntelliJ IDEA Community Edition is open source[1], right? [1] https://github.com/JetBrains/intellij-community https://github.com/JetBrains/intellij-community
- ilovecaching 7y agoThat’s only one of their products, and you have to pay to unlock the full version.
- wolco 7y agoTry using your favourite language will lead you to search for a plug-in. Then you discover you need the ultimate edition. Parts of it are open source but all of the parts you need aren't.
- eklavya 7y agoIntelliJ is open source https://github.com/JetBrains/intellij-community https://github.com/JetBrains/intellij-community
- johnwheeler 7y agoIs this satire?
- coldtea 7y ago>1. I hate the idea of paying for the thing I write code in. Do you hate the idea of being paid for the code you write? Or it's only other people's software that should be free? >2. IDEs tend to be optimized for the write path, when it’s the read path that really matters. Actually it's the exact opposite. Plain editors like vim are optimized for the write path -- they have all kinds of text manipulation options built in, and they're 99% about text manipulation. IDEs have code navigation options, source control integration, refactoring tools, even collaboration options in some cases, all of which are about the read path. >3. Most of the people I admire at work and in open source don’t use an IDE. Some of them use an Emacs so loaded that it's just a Greenspun-10th-rule-style re-implementation of an IDE. And tons of great developers use IDEs, from Notch to John Carmack, to Ken Beck. If you constrict the "people you admire" to old school UNIX neckbeards, then sure. >4. Not being able to use my text editor I’m a terminal is just a nonstarter for me. It’s immensely convenience, and some workplaces can’t even handle local development because of monorepos. Monorepos have nothing to do with local development or not. You can export a specific project out and work on it. Googlers use all kinds of IDEs, despite the monorepo. Not being able to run in a terminal being a non-starter, is dubious, as 99% of the time a programmer doesn't need to work in a remote shell session, exception if they're a sys admin. >5. IDEs rob you of the knowledge of the underlying tools, locking you into an ecosystem that you can’t take with you all the time. Take with you were? You aren't going anywhere. You can always use an IDE whatever the circumstances. People use IDEs in games, data science, application programming, embedded development, aviation, web programming, etc. Not sure which realm would prohibit the use of an IDE. >6. I’ve worked in plenty of places that didn’t have JB stuff available. Never worked at a place you couldn’t use vim or emacs. There are tons of companies that mandate a specific corporate-decided development environment for all programmers, where you can't just "have vim or emacs".
- mqus 7y agoregarding #1: As others mentioned, IntelliJ (the platform) is open source, but even if it weren't, it would be a superior model. I'm a user of JB products for some years now. last week I had to open eclipse again, which is probably THE foss IDE for java. Developing in it is mostly fine, but if you get to the tiny details then IntelliJ is far better (multiple Carets, a proper dark mode, good vcs integration, UI is to the point and not as crowded as Eclipse, integrated terminal, etcpp). I think that it shows the limits of (pure) open source and that the paid model really can polish a complex product. I imagine that contributors and drive-by patches are not really able to create a coherent product which maybe needs a proper plan. (This really reminds me of that Bazaar vs Cathedral argument)
- deleted 7y ago[deleted]