10 ms·
Why IntelliJ IDEA is hailed as the most friendly Java IDE (many screenshots)
- ninjakeyboard 11y agoWhile my peers using emacs might disagree, I'd argue it's also by far the friendliest scala development env as well. I've used the community and ultimate edition for many years. CE is fine coupled w/ sbt for most anything you want to do and promises to remain free.
- allengeorge 11y agoYes, Scala-wise I prefer it to Eclipse (Scala IDE) by a wide margin. That said, my coworkers and I routinely experience Idea 'hangs' while working on our Scala projects. That's something I never experienced while working on large Java projects in Idea, and I'm curious whether it's because Scala (as a language) is harder on the IDE, or whether the Scala plugin needs more love, or... Oh, and auto-import of SBT changes? Turn it off. Definitely turn it off.
- estefan 11y ago> my coworkers and I routinely experience Idea 'hangs' while working on our Scala projects. Same here. It sounds like my MBP is going to take off when it has to build it's indices or whatever. Would be nice if it didn't cane my machine so much but I guess it's all the type stuff and implicits, etc.
- ninjakeyboard 11y agoI do not experience hangs on either ubuntu nor osx.
- tokenizerrr 11y agoCan it show multiple projects in the same winfow yet? And I don't mean by abusing the maven module set up, some of my projects use grails for example. It's nice having my relevant Java, grails and php projects in one window, which eclipse is quite good at. A way to get multiple maven and grails in the same window is pretty much a must for me.
- cromulent 11y ago...according to the marketing manager for the product ;)
- andrey_cheptsov 11y agoWith all respect, I don't I understand your point. FTR, I'm also a developer in past and in present. If you have an argument in regard to actual points shared in my article, please share it with others.
- Karunamon 11y agoI don't think it's improper for it to be pointed out that someone who works as the marketing manager for a product may have a slight bias towards talking up said product's benefits and downplaying its limitations. It's just a fact, not a slight. (And I say this as someone that happens to love just about everything this company puts out!)
- jasonlotito 11y agoI think Andrey took it not as "he is a marketing manager for JetBrains, so of course there is a bias", but rather: "he is just a marketing manager, and not a developer, so what does he know?" And with that line of thinking, the follow up question makes perfect sense. He's not just a marketing manager.
- cwyers 11y agoWhen there's two possible ways to read something, and one of them makes all kinds of sense and one of them doesn't, I think parsimony suggests we should believe the one that makes sense.
- jasonlotito 11y agoSure, but that assumes you read it two possible ways. And my interpretation makes perfect sense, especially if you consider the individual in question might not be a native English speaker. Seriously, I think people complaining about this are reading far too much into this. Chill.
- RyanHamilton 11y agoIf you are looking for something lighter weight to run java snippets checkout http://jpad.io http://jpad.io I made it to avoid writing the usual class/main boilerplate when all I wanted was to write a few lines of code to explore something.
- brightball 11y agoIntelliJ and it's derivatives are excellent. I'm completely addicted to RubyMine as well. Just the ability to jump to method declarations in a big project has ruined me for any IDE that doesn't have it.
- urs2102 11y agoI typically use vim, but this method jumping feature is one of the best features for jumping into a new or large project. I was wondering if there was any vim plugin for something similar? Also - the Model dependency diagraming is phenomenal in RubyMine.
- hex13 11y agothere is a Vim plugin for Ruby on Rails: https://github.com/tpope/vim-rails https://github.com/tpope/vim-rails
- finnh 11y agoctags support in vim works pretty well for that. http://stackoverflow.com/questions/539231/how-to-use-multiple-tabs-when-tagging-to-a-function-in-vim http://stackoverflow.com/questions/539231/how-to-use-multipl...
- paulmd 11y agoI've used IntelliJ, ReSharper, and RubyMine, and all have been best-in-class products. The only thing I can complain about is that IntelliJ's Maven support is atrocious. Maybe I'm missing something but I've played around quite a bit and I just can't make it search Maven Central's catalog properly. I literally have to drop back into Eclipse to add dependencies. It's OK given that you usually set up your dependencies once and are OK for a while, but it's definitely out of step with how perfect everything else is.
- navait 11y agoAt a startup I worked at, we had to switch back to eclipse from any IDE - netbeans, IDEA, emacs, vim because eclipse is the only one that can really get maven right. The better question is, what is eclipse doing right that all the others can't?
- sgt 11y agoAgreed. Switched to IntelliJ about 4-5 months ago. Haven't looked back since. Interestingly, what caused me to look at IntelliJ wasn't a lack of features in NetBeans, but rather the fact that still today NetBeans doesn't work properly on a retina MacBook Pro. To elaborate, on a MBP Retina, you'll find that the UI lags slightly if typing fast, especially if a lot of syntax highlighting is happening on the screen. It does not happen if you are using NetBeans on an external monitor. The NetBeans team claims it's a Java issue, so in the end I just didn't want to wait anymore, and I downloaded IntelliJ.
- bmoresbest55 11y agoOne of my co-workers has a 5K iMac and definitely has this issue. I will have to test more carefully to see if this is also affecting me. Does not really matter because after reading this I am definitely moving to IntelliJ.
- dr_zoidberg 11y agoEhem... As far as I remember, IntelliJ is also programmed in Java, so about that Java issue with Retina...
- sgt 11y agoAgreed. Never bought the argument from the NetBeans guys.
- brudgers 11y agoTitle: Enjoying Java and Being More Productive with IntelliJ IDEA
- jdimov10 11y agoIntelliJ is also the only Python IDE that I am not allergic to. I normally just VIM, but when I am forced to use an IDE (e.g. pairing), I use IntelliJ. (Curiously, I've found IntelliJ to be actually better for Python development than the Python-specific offering from the same company - PyCharm)
- vosper 11y agoWhat's better about developing Python in IntelliJ versus PyCharm?
- piquadrat 11y agoThe Python plugin for IntelliJ is virtually the same as PyCharm. The plugin sometimes lags a bit behind the PyCharm version, while PyCharm sometimes lags a bit behind the IntelliJ IDE version, but in general, it's the same. Of course, you get support for lots of other languages in IntelliJ that aren't available in PyCharm.
- jdimov10 11y agoIt's mostly the support for other languages and plug-ins, to be fair. For example, I have to write cucumber-style BDD tests for my Python projects sometimes, and I use the Behave framework for that. IntelliJ comes with a nice Behave plugin that allows me to ctrl+click on the step in the .feature file and it takes me straight to the Python code with the relevant step definition. This plugin is not available for PyCharm, for some reason.
- ninjakeyboard 11y agoIt's the same thing basically.
- miahi 11y agoI tried Python remote debugging from IntelliJ (14) and found that the needed debug-eggs are not included with the plugin (they are only in PyCharm kit). Not sure if it's a licensing issue or a bug - the option for Python remote debug is there, but there are no libraries.
- thoughtsimple 11y agoNice ad
- andrey_cheptsov 11y agoI've written this article with one simple idea in mind – give for reading to everyone asking me to explain how IntelliJ IDEA is compared to other IDEs. Just now I've also realized that I can use it to explain what we're doing at JetBrains.
- farawayea 11y agoWhat you're doing is charge people as much as possible by not giving the option of perpetual licensing. That's what you're doing.
- matt4077 11y agoYes, that's what he's doing. Also: doing awesome work and hopefully getting rich with it.
- organsnyder 11y agoNot true: https://sales.jetbrains.com/hc/en-gb/articles/207240845-What-is-perpetual-fallback-license- https://sales.jetbrains.com/hc/en-gb/articles/207240845-What...
- thoughtsimple 11y agoYes that is called marketing. I'm not sure it is appropriately marked here on HN.
- misterS 11y ago> with one simple idea in mind Please stop pretending you're not doing this for marketing. IntelliJ is all over "social media" (who would have thought you've already submitted this on Reddit, too [1]) and is constantly pushing a campaign for its products. That's very fine by me – but don't pretend it's not advertisement. [1] https://www.reddit.com/r/java/comments/48xf5h/why_intellij_idea_is_hailed_as_the_most_friendly/ https://www.reddit.com/r/java/comments/48xf5h/why_intellij_i...
- jkot 11y agoOther IDEs just dropped the ball. There is 13 years old pull request to enable language support for languages such as Groovy or Scala: https://bugs.eclipse.org/bugs/show_bug.cgi?id=36939 https://bugs.eclipse.org/bugs/show_bug.cgi?id=36939 You can fork Idea on Github and send pull requests...
- vorg 11y agoFor the last 3 months, Groovy has been officially known as "Apache Groovy".
- rpgmaker 11y ago> Why IntelliJ IDEA is hailed as the most friendly Java IDE To be fair, most Java IDEs suck. Eclipse's usability is the worst I've seen in any IDE and, surprisingly, one of the most popular.
- farawayea 11y agoWe've evaluated it and it was the best we could have bought. We've decided not to use it because they didn't provide perpetual licensing.
- fluxquanta 11y agohttps://sales.jetbrains.com/hc/en-gb/articles/207240845-What-is-perpetual-fallback-license- https://sales.jetbrains.com/hc/en-gb/articles/207240845-What...
- true_religion 11y agoI don't know why they didn't make it more obvious. The aparant Adobe like subscription model almost scared me off too.
- ianamartin 11y agoI keep trying PyHarm and giving up. I've never been able to get it configured well for the way I work. So I keep going back to SublimeText with with Python IDE plugins. Then I get frustrated with that workflow because it doesn't well working on remote servers and go back to VIM. Which I also can't seem to get comfortably configured. So then I boot one of my macs into Windows for a while and use VS with Pyrhon Tools and get frustrated with Windows, and well . . . . Sorry, I know this isn't about Python. I've just never found that jet brains products work well for me. I feel like I'm fighting with them. Maybe it's time to give it another shot.
- rtpg 11y agoI think it's very dependent on your programming style. Compared to Jedi in Emacs and Atom, PyCharm's symbol detection/jump to definition/refactoring is absolutely world class. After learning the keyboard shortcuts for "Jump to Symbol"," Jump to File", and "Jump to Class" my productivity increased maybe 3 fold. Why should I remember where stuff is when the computer can do it for me? I'd recommend turning off tabs and using split views though. You can get a lot of mileage if you tweak PyCharm (especially for web projects, where the HTML/JS/Typescript integrations help a lot)
- pauleveritt 11y agoDisclaimer: I'm the PyCharm Developer Evangelist. That said, I'd be interested to hear what stuff from ST you couldn't get going the way you'd like in PyCharm. In fact, I just wrote draft docs talking about migrating from text editors. Also, if it helps, we just did a Getting Started nine-part series of screencasts, available on YouTube. Of course, if the part that isn't working for you doesn't get mentioned, then I need to add to the series.
- ianamartin 11y agoI don't want to further derail this thread, but I'm happy to,take this conversation to email if you would like. Address is in my profile.
- maratc 11y ago
- incepted 11y ago"Friendly" is not the word I would use. Powerful, sure. But IDEA breaks quite a few universal GUI concepts and that takes a bit to get used to. For example, Ctrl-w is a very important keybinding on IDEA, one that I use all the time (it expands the selection to the enclosing expression). It's literally wired in my brain now. To the point that I now use it in Eclipse as well and I even started using it in other places (Sublime, etc...) and... closing the window as a result. Very annoying. Another one is that Ctrl-n sometimes creates a new file (expected) and sometimes... something completely different depending on your current window. Again, not friendly. Optimized for development and a life saver on the long run, for sure, but it's fairly user hostile.
- jordanpg 11y agoThe CTRL+W thing was a bizzare decision, I agree. Just swap the CTRL+F4/CTRL+W and ALT+INS/CTRL+N bindings and IDEA behaves like every other piece of software in the world.
- incepted 11y agoI know, but that wasn't my point. I actually chose to keep Ctrl-w and extend it to other tools, because I use this functionality in an IDE much, much more often than closing windows. It makes sense, but it's not user friendly, which is the point I was making.
- pwm 11y agoI have my keymap customised the way I like things. I export this to dropbox, so I can just import it if I work at a new place.
- matt_kantor 11y agoThe non-standard default keyboard shortcuts bug me as well, but on the plus side they can be rebound. The thing that frustrates me most in IntelliJ is that all of the dialog windows are modal for no apparent reason. Why can't I focus the main window or at least interact with it to change tabs, select text, etc when I have dialogs open? "Find in Path" is a particularly obnoxious example: it's fairly common that I want to search for a string fragment, so I open the search dialog and set up my search context, then try to select text to copy as the search term, but I can't, so I have to start over. I want to be able to interact with the editor at all times, though I could see locking it during complicated refactors to keep me from changing code while the IDE is trying to change it too (only while a progress bar dialog is visible). Modal windows should be the exception, not the rule. --- To be clear I love IntelliJ. While I prefer simpler editors in many situations, I can't see myself going back to anything else for medium-to-large JVM projects (Scala especially). The modal niggle and a few other minor usability issues are small blemishes on an otherwise great IDE.
- jordanpg 11y agoAbout a year with eclipse and nearly two with IDEA now. In terms of overall usability, speed, and stability IDEA is incomparably better. Yes, there are a few minor things that eclipse does better/IDEA can't do (so I keep reading). But this is hugely overshadowed by the fact that IDEA is a high-quality, well-supported professional-feeling product. In comparison, eclipse looks, smells, and acts like a kludgy, bloated, long-lived open source project. The main important difference is that eclipse is free, and thus some folks seem to really go to bat defending it. There is a certain powerful frugality ethic among developers. But really, if you're not going to get bent out of shape about spending a few bucks for a piece of software you spend many of your waking hours using, there is no serious comparison.
- ghrifter 11y ago> IDEA is a high-quality, well-supported professional-feeling product. In comparison, eclipse looks, smells, and acts like a kludgy, bloated, long-lived open source project. Proprietary, closed source development vs. Open Source software development in a nutshell. I'm really glad a friend recommended IntelliJ IDEA to me. It's a great product. Having used both Netbeans and Eclipse on a rather powerful machine, the UI would lag. I don't like to wait for computers to finish computing things when I'm programming pretty much in just a text editor ("writing code mode")...which brings up another point - Atom is not a great text editor either because it is so UI laggy it slows down development.
- meddlepal 11y agoThe core of IDEA is open source: https://github.com/JetBrains/intellij-community https://github.com/JetBrains/intellij-community. The Ultimate Edition is worth the money, but the whole system is just a bunch of very well built plugins atop the CE.
- lr4444lr 11y ago>IDEA is a high-quality, well-supported professional-feeling product. In comparison, eclipse looks, smells, and acts like a kludgy, bloated, long-lived open source project. This times a million. Though I do love open source both in principle and in many products, certain proprietary software tools are entirely worth paying for due to how much more productive they make you. IDEA is my prototypical example.
- BFay 11y agoThis may seem silly, but one of my main reasons for using IntelliJ over Eclipse is because it has a nice looking dark theme. I've tried using the dark theme on Eclipse, and on both Windows and OS X it had very bright scroll bars that clash with the dark editor. I think my favorite keyboard shortcut in IntelliJ is double-tapping shift to get a really smart search to pop up.
- austinsharp 11y agoI can't guarantee that I can reproduce it, but I have been able to get a nice Eclipse dark theme that includes the scroll bars (on Windows). I'm starting to use IntelliJ for other reasons though - double-shift is one of my favorites as well.
- ionised 11y agoSame here. Eclipse seems to take some its UI look and feel from the host operating system, resulting in a weird mish mash of conflicting colours and difficult to read text. I ended up just settling for changing the editor colours (to my favoured Sunburst theme) and keeping everything else stock. IDEA is great for dark themes though. No messing around getting everything consistent and readable.
- jonesb6 11y agoAlso has a great Golang plug-in
- scalesolved 11y agoI'm a long time user of Eclipse but recently have tried IntelliJ again, it's got some really nice features such as the inline values while debugging but by far the biggest annoyance is not being able to have multiple projects within a workspace. At work I mainly work on two APIs that work closely together so in Eclipse I can have both open and just jump between the projects easily and at home I like to have all my scratch pad projects/ideas in one eclipse workspace so I can jump between them all easily. I know there are kinda workarounds with modules but it doesn't really work well, if they allowed the ability for multiple projects in a workspace I'd jump ship but sadly it seems it'll never be supported (according to co-worker who is a die hard IDEA fan).
- jakejake 11y agoSame here. Not having multiple projects open is a total deal breaker for us. We have a couple of shared libs that go with our projects and not being able to have them all open together is painful.
- manyxcxi 11y agoI work around this by either checking the core libraries out into my new project folder, so ice got multiple copies around- and also I've got a core-Luba project that's literally all 12 core libraries we have that I can have open in one window with my other project open in another.
- agentgt 11y agoThe only thing I don't like about IntelliJ vs Eclipse is unit testing. Because Eclipse eagerly compiles everything with its special compiler it seems to have a much faster startup time for unit tests. In fact with Eclipse I use JUnit as a Java repl because you can test a single method. Also I hate how I can't configure IntelliJ's gutter size. It feels massive. Other than that IntelliJ is far superior. As for dark theme and theming Intellij/Eclipse both have their quarks (Eclipse being far more quirky). Here is a screenshot of a personal port of the Atom One Dark theme (I love that theme) to both IntelliJ and Eclipse (left and right respectively): http://imgur.com/Myo4KxM http://imgur.com/Myo4KxM IntelliJ One Dark Theme: https://gist.github.com/agentgt/bf2271786c250e86ab19 https://gist.github.com/agentgt/bf2271786c250e86ab19 Eclipse One Dark Theme: https://gist.github.com/agentgt/fcaf75eb8acf92e08926 https://gist.github.com/agentgt/fcaf75eb8acf92e08926
- papercrane 11y ago> Because Eclipse eagerly compiles everything with its special compiler it seems to have a much faster startup time for unit tests. You can configure IntelliJ to behave similar, the option is disabled by default. Its the "Make project automatically" option in the "Build, Execution, Deployment -> Compiler" settings window. Also, IntelliJ can use ejc if you like, the "Build, Execution, Deployment -> Compiler -> Java Compiler" window, the "Use compiler:" option.
- agentgt 11y agoI tried that before but its still faster in Eclipse by 3/4 of a second (I was wrong about being just the compiler). Its as though Eclipse doesn't fork a new Java process.
- therealdrag0 11y agoWhen does it do it "automatically"? On save? Also I haven't noticed it working while debugging, which works smoothly in eclipse. Also the Save Actions in general, I have found eclipse to be better (even over the special Save Action plugin for IJ).
- ddlatham 11y agoDoes IntelliJ IDEA have an equivalent to Eclipse's Call Hierarchy view? It allows me to select a method, and get a tree view of code paths that call into it (recursively). I use it all the time and couldn't find it when trying to help a co-worker who was using IDEA.
- agentgt 11y agoI hate to say this but it takes 3 seconds to google this and find it on Stackoverflow. If your on Mac its Ctrl-Alt-H and if your looking for Eclipse find references for intellij its Alt-F7. If your looking for mini outline mode (aka command-o in Eclipse) its command-F12. https://www.jetbrains.com/idea/help/navigation-in-source-code.html https://www.jetbrains.com/idea/help/navigation-in-source-cod...
- clay_to_n 11y agoOther things I love about IntelliJ (in my case, Android Studio): Code generation. Getting a bunch of getters and setters from a right click is nice sometimes. But more importantly is being able to go to a class definition, do an Alt + Enter, and create a test file for that class in the correct tests directory. Auto-completion is very powerful. If you're trying to call a method on your AbstractBeanFactoryImpl, you don't need to start by "Abstrac", if there are other results with that preface. You can just try "abfi" and it will probably get the right result. Super useful when you have multiple variables that start with the same sequence of letters. All the space-saving it does. Have a one line getter or setter? It will display those as one line (with highlights to let you understand they're actually three lines, brackets included). Even some common things like creating a Runnable in Android and overriding it's Run method. Replaces three lines with a straightforward: "Runnable myRunnable = () => {". Feels like you're programming in a less verbose language.
- Jetbrains 11y agoDoes anyone know where IDEA stores its build scripts? They don't seem to use gradle/ant/maven by default. Specifically Java2EE/Web?
- alblue 11y agoCan we fix the title to be that of the actual post? The real title has nothing to do with 'friendly' nor are many hailing it. The title should be "Enjoying Java and Being More Productive with IntelliJ IDEA" as per the original post.
- onetimePete 11y agoIDEs are either swaggering monoliths, where all complexity has been hidden away in a labyrinth of options- or a small basic set, that waits for you to be turned into such a custom tailored to your taste monstrosity. Sad thing is, really new interesting features are rare. There is no deep learning IDE that watches you debug, and associates source code by changing variable X fixed bug in file Z via time of change correlation and instruction flow graph. There is no real approach to layered responsibility. Meaning, a beginner should be allowed to change functions, but not add classes and interfaces to existing well structured code, without the author signing those "big" changes off. This crucial "zoom out into algorithms and architecture" and drop back in to display details- still often happen via external tools, as the IDE is not able to abstract Information from the actual sourcecode away. Finally - debugging and Unittests, these are actually highly automate-able task- yet here im stepping it, even though by now at least conditions can be attached to the various execution paths. Finally, no ide has a "User" Simulation, to detect crappy requirement engineering before the whole thing is gone into software. A proportioned team of simulated "persons" and "use-situations", that gets to traverse a draft of the gui and the workflow should detect hotspots and annoyances, and avoid a lot of unnecessary & expensive itteration.