50 comments

[ 2.9 ms ] story [ 117 ms ] thread
I always fail to understood why these products are so ugly to see...
Probably because they are written in Java. I don't think I've ever seen a good looking Java application.
If you are refering to the look and feel it's probably down to what's possible with Javas UI frameworks (Swing/AWT).
I fail to see why you call it ugly, the most important thing is not if it is beautiful or ugly but if works well, and helps development.
Maybe it's just me but i quite like the dark version (Theme "Darcular"). Nothing wrong with it.
Sorry for being pedantic, but the theme is called "Darcula".
I disagree they're straight-up ugly, but they're certainly cluttered, and I think there's a very simple reason for that:

IntelliJ (or VisualStudio, or Xcode, or anything in this class) is an expert tool. Expert tools can be insanely complex to use, and can have very steep learning curves, because the people who use them are willing and able to invest the time. In exchange, the tools assume that most users are going to want to customize the living daylights out of their tooling.

This means that really good IDEs like IntelliJ, Visual Studio, etc., can optimize for two separate extremes. On the one hand, it almost doesn't matter how cluttered they are, because experts are going to customize them to look exactly how they want anyway. On the other hand, they pack so much functionality that they face a very real problem of people not even knowing what's there in the first place. (E.g., did you know you can debug any browser's JavaScript directly from IntelliJ? I sure didn't until surprisingly recently, but apparently that's been there for quite some time.) So there's also a mode that displays all the things that the IDE can possibly do, and you're completely correct that that mode looks borderline unusable.

Honestly, as long as the clutter is done sanely, I'm okay with it. I frequently toggle between just-the-code and all-the-things when I'm in IntelliJ, and the recent No Distraction mode makes doing that a lot simpler. If I know a keyboard shortcut, awesome. If I don't, I have the shortcuts for all the panes hardwired, so at least I can quickly browse the 25 buttons that show up, immediately discard the 15 I recognize, and quickly find which of the remaining 10 actually does what I want. I'm not going to argue this is the most elegant or most efficient, but I'm not convinced it's a horrible trade-off, either.

So there's also a mode that displays all the things that the IDE can possibly do I'm curious, how do I turn that mode on?
In IntelliJ, that'd be turning on the Toolbar, the Tool Buttons, Navigation Bar, and Status Bar, and then opening all the panels at once. In real life, I don't actually turn all those things on; I instead have common panels enabled, and then bound a shortcut to Distraction Free Mode that I use when I'm actually coding instead of debugging/building/etc. I don't remember the equivalent for Visual Studio off the top of my head, but it's similar.

Emacs and Vim don't really have a mode like that. I suppose the closest in Emacs would be just hitting M-x and then tabbing through all the functions, but I'm not sure that counts.

Alt+Shift+Enter in VS is full-screen mode, which removes most if not all floating windows as well.
I disagree about having to look cluttered. Here's how my Visual Studio usually looks like http://i.imgur.com/imqiWGT.png
You missed the point. Experts, like yourself, will customize the IDE to look like whatever they like so it doesn't matter if the default is cluttered. Cluttered is just a logical default, in order to expose all of the functionality to new users.
But they're cluttered by default. Visual Studio doesn't look like that with the default settings. Here's my Webstorm (same platform as IntelliJ, just limited to html/css/js) http://i.imgur.com/cHsAcj3.png
It might look much worse than Sublime Text on your Macbook when you're sitting in a coffee shop sipping your vanilla frappucino. However, apart from VS it's _the_ IDE to get things done when working with large and complex codebase. (I'm talking about multi-million LOCs, where a method rename takes 1 second in IntelliJ, and you can be pretty sure that it has properly checked out the files, put the changes into the proper VCS changeset, updated the comments accordingly, etc.)
I would agree, if IntelliJ's performance wasn't so bad. On my 2012 MBA I had to turn off the auto completion, because otherwise, just typing text into the editor would make the fans run on full speed and lead to stuttering and hang-ups.

So, unfortunately for performance reasons, I had to switch back to Sublime Text.

The target audience for MBA is not workstation/professional users, for that it was underpowered when it launchaed (current Macbook is the same). That's fine, because the normal or mainstream user does not need that much power to browse facebook and ebay.

On my 2012 Thinkpad T-series (8 GB RAM, SSD, shitty display) Idea runs very nicely (Java, Python). But then, we cannot compare Thinkpad and MBA, as they are entirely different weight categories.

To be fair, I use auto complete with my 5 year old netbook in VIM and Kate with auto complete and it doesn't slow down. I also run RStudio (occasionally) and it has a slight slow down. Intellij slows only a little more and is usable with my old netbook.
I am probably working with smaller code-bases than you, but I've never had this problem with auto-completion causing intellij to hang on my mba. I'm pretty sure it is a 2011 model too. shrug
I couldn't disagree more. In my opinion it's the most decent looking IDE / code editor I've ever used. Most IDEs are cluttered with a gazillion views. Intellij focuses on the code editor instead. You can hide everything but the code editor and keep full control via keyboard shortcuts.
Comming from eclipse, intelliJ is beautiful! and also faster.

In fact if you develop in Java and you are not using it... you are missing it. It's awesome.

I'm using IntelliJ on Windows for Scala dev, and boy is it slow. I have to manually set the process priority to "Below Normal" every time, or it will soak up all system resources and music playback becomes jittery. Clicking right on anything is a four-second pause mistake.

It's free, so I shouldn't be complaining. Thanks for the product! Really, it's better than vim (especially with the intellij vim-mode plugin). I appreciate it.

But I'd feel a bit sour had I paid money for this. Especially after having seen Visual Studio. Wow, what a difference.

EDIT: laptop specs fwiw: Lenovo G505s, AMD A10, 8GB RAM, normal HDD.

EDIT2: Comparing the UI to other java apps is disingenuous. I'm no UI expert, but this looks fine. It won't win any awards, but it's not your average pile of swig.

It depends on the language you're using (working with Scala is usually slow). Also, make sure that IntelliJ caches are on an SSD. VS is very quick, but for example parsing C# is very easy compared to Scala (partly because C# was designed for that from day zero). Maven also slows down things a bit (IntelliJ can search in classes that are not even referenced by the project.)
Good points. I have no SSD, unfortunately.

There are two types of slow: there is slow to react, and slow to respond. I can understand that IntelliJ is having a hard time recompiling the Scala source. As you said, Scala is difficult to parse and compile.

What I don't like is the context menu taking several seconds to even appear, locking up the entire UI (!), when I right click. Or music playback going haywire just because I am switching files or refactoring. Setting it to "low priority" solves that last issue, but that doesn't make me feel better about IntelliJ.

If an app is slow, fine. But deal with it. React quickly, respond later.

PS: I say that now, but once I have a better computer, it's all "IntelliJ is great." I only feel this way because my computer can't take it.

I've heard that the correct way to parse a Scala program is dependent on the types in it. I think maybe that's why IDEs are so wrong about where your errors are unless you terminate each statement with ";"
Never used a ; in scala and my IJ is pretty dang good at figuring it out. Catches maybe 95% of errors, and SBT will catch the last 5%. (Okay sometimes you can use a ; in a for comprehension to be fancy but you don't usually need to)
I gave up on IntelliJ and went back to NetBeans because of the bass-ackwards way IntelliJ handles Maven projects. There's no need for both IntelliJ's project file and the POM to track dependencies. In fact, there's no need for IntelliJ to maintain its own project file at all outside the POM.
Well, you might need both. The POM only contains information on how to build the project, while the IntelliJ project file also contains extra information that might be personalized, things like tab size, JDK version, and millions of other things. My policy is to only put the POM into VCS, and keep the .idea stuff only on the local box.
NetBeans just has the nbactions.xml file, which defines a small number of things like the main class and some context menu actions (this is very useful for OSGi projects, where you often have to switch between different build/run profiles). It's pretty lightweight, and it leaves everything else to the POM.

Oh, and on that note, that wasn't the only reason I left IntelliJ. I also disliked how it handled having multiple projects open. If you don't want everything in separate windows, IntelliJ makes you create a dummy project and import everything as modules. NetBeans just does what I want automatically.

Where does the POM specify the path to the JDK you should use to compile with?

Where does the POM specify the project specific code formatting you want to use?

Where does the POM specify the exact JVM flags and params given to various launch configs?

FYI if someone is reluctant to give up their HDD capacity at the price point an SSD exists, I've had really good luck with IDEA and Pycharm on my Seagate 2.5 1 TB Hybrid (ST1000LM014). I think they can be found on NewEgg for like $70 (for 1 TB), and work well for the sort of caching IDEA tends to do.
Well I started going back to school online, and that means ... you guessed it, Java classes!

Instructors recommended jGRASP, but I tried it briefly and did not like it too much. So, I have been playing with IntelliJ Community Edition in parallel and I prefer it. Anecdotally, I have not had the same performance issues, but I do use it on 8GB RAM + SSD laptop. So, I might be lucky by privilege here.

In the community edition, at least, there is Power Save mode. I think this halts project file indexing and other "cool" features. Maybe it would help? I also was surprised my computer was not hosed when playing with the Clojure REPL plugin, but again my laptop could be very beefy.

http://stackoverflow.com/questions/11725605/what-is-power-sa...

That being said, I need to do this school work on a work laptop because I got a Kindle textbook and I have not had time to convert it into PDF/ePub for use on my Linux laptop. I would love to use eclim and emacs, but that seems like a headache waiting to happen on Winboxen. Does anyone do Java/Scala dev on a Windows machine without one of the very unminimalist IDE's? I would much prefer console based, but Cygwin emacs is flimsy as it is.

http://eclim.org/install.html

http://www.emacswiki.org/emacs/EmacsEclim

I have a MBP from about 1.5 years ago, 8GB RAM and SSD and I don't notice any issues w/ intellij and scala, which I use daily. However for a while I had a MBP with a standard HD and that was painful every time it indexed.
Yes indexing is a pain, even with an SSD depending on project size, but its worth the wait.
I use intellij at work, but they gave me a macbook pro with 16GB of ram and a SSD. It still manages to beachball once in a while, but the functionality is worth it.

At home on my desktop (4Gb of ram and a HDD) I switched to Emacs + ensime. It has a subset of the functionality of Intellij (some refactoring, jump to definition, type inference, autocompletion) and Emacs commands are hardwired in my brain. It's lighter than Intellij, you could check it out (and add some vim emulation since you seem to be a vim user!)

edit: there are ensime integration solutions for vim ( eg: https://github.com/megaannum/vimside )

The current version Android Development Studio (its based on IntelliJ) is even worse, even after applying all the recommended settings. After loading up a Gradle project, building and running (which can take forever), its memory usage shoots up to about 1GB even when idle. My Visual Studio 2013 Solution with 7 Projects (with Resharper) takes just more than half of that under the same conditions.

http://i.imgur.com/bDk4OWJ.png

Now I'm a big fan of aggressive RAM usage, but the problem is Android Dev Studio always seems to want to grab everything it can. Which means that eventually I'm going to need disk swap space and that just causes my machine to slow down tremendously.

Use Eclipse for an hour. You'll feel much better when you go back to IDEA.
Eclipse gave me headaches in the past (old days of Android). I don't usually do Java, but when I do, IDEA is the IDE I use. It's great.
It could be a problem with developing specifically with scala, right now I'm running on a linux VM with only 6gb of ram and no issues at all (I do have an SSD now but even before with a mechanical disk it wasn't slow)

I also used it on windows 7 with 8gb of ram and no speed issues either, always developing java or android (ends up being java)

If you want IntelliJ on windows to be fast:

* change the default launcher to use the idea64.exe instead of idea.exe

* increase the default vm allocation in bin/idea64.vmoptions

-Xms668m -Xmx1692m -XX:MaxPermSize=412m -XX:ReservedCodeCacheSize=246m

* disable the "SuperFetch" service of windows 8 and reboot

but of course if you really want faster compiles, just run linux and install your workspace in an ext4 filesystem on an ssd.
I would actually set Xms == Xmx, as you can easily fill up your entire heap... why let the JVM manage total heap size in a tool when you can predict the heap size? (For the record I use ~2g Xms and Xmx for Java projects, and ~3g Xms and Xmx for Scala projects).

Also you can ditch MaxPermSize if using Java8, which you should.

I'll go against the flow of people not happy about IntelliJ. My experience with it started with Android Studio which I found WAY better than eclipse. I like the UI better, I find it faster, easier and more configurable. Since then I started using IntelliJ products for everything, there are flavour for any environment you need, from Python to ruby or whatever. I can keep my settings in any context and there are tool for many frameworks and integrations like django or App Engine.

I don't find it particularly slow. It's not blazing fast, but I would say it's in the norm.

For the price I think it's a great asset to have.

I totally agree. I have purchased licenses for IntelliJ, RubyMine, and PyCharm for years.

That said, 90% of the time I spend using Jetbrains projects is now simply using IntelliJ to edit Clojure and Clojurescript files. I run repls externally, and setup shortcuts for use with :reload or :reload-all. As a Clojure editor I like the fast code navigation, autocomplete, and visual warnings of syntax errors.

Do you use Cursive? Last time I tried it I found some weird bugs in the text editing which caused problems for me. I very much wanted it to work though, I need to try it again.
I install and use Cursive, occasionally, but I am waiting for it to ship as a product. Then I will probably buy it. The author has sent me a few emails, and seems dedicated to the project.
I'd love to use IntelliJ, but no matter what obscure hacks I try, I simply cannot get it to render fonts properly under Ubuntu 14.10. This makes me sad, because it seems awesome for Scala.