IntelliJ IDEA 2016.3 GA: Java 8 and ES6, Debugger and UI improvements, more
blog.jetbrains.com
blog.jetbrains.com
I work with a lot of Open Source tools (e.g. Hadoop, Kafka) with complex build setups. It often takes 10+ minutes for IntelliJ to load a project. If I now switch to a different branch it starts all over again.
I wish it'd keep a cache of multiple index versions around.
src/my_project_master/
src/my_project_develop/
src/my_project_new_feature/
Each with it's own IntelliJ project. If he needs to switch branches it's relatively fast to open a different existing project rather than git checkout branch, which can cause IntelliJ to become unresponsive as it reindexes everything.
Not tried this, but I experience this quite often and will have to give this a shot.
If your editor doesn't offer basic productivity accelerators like React property autocompletion, or a Go-to-Definition that works across ES6 modules, or refactoring support in JS, you should really look into a proper IDE like WebStorm. Yes, it costs actual money, but it's a no-brainer for professionals. I've tried VS Code, Atom and others but keep coming back to WS for the pure productivity aspects.
Since moving to VSCode my laptop battery lasts a couple of hours longer :-/
I usually just use procexp to give the music player process higher priority, which solves the problem (although not permanently).
I've also moved to VSCode and haven't looked back. My whole team is currently evaluating VSCode. That is ~$600/mo in subscriptions to IntelliJ Ultimate if everyone decides to move to VSCode - which is looking likely.
If using Java, Groovy, Kotlin, or Scala, Intellij will be much more valuable in terms of time-saving than the $600/mo subscription savings.
For most other languages, VSCode is easily almost on par with Intellij.
My gut reaction is that IntelliJ's indexing isn't yet properly optimized for the small-file dependency-hell that JS dev has turned into.
The unfortunate thing was that we were willing to upgrade to the newest Macbooks if they had 32GB of RAM and hope that helped (in addition to some VM woes for working on infrastructure) - probably would have kept IntelliJ in play but the swapping and it using 33% of RAM on our machines made it an easy target to try to replace.
In comparison, VSCode is using 70MB RAM on my machine currently with 6 projects open.
Any specific reasons why you're not considering PCs and linux?
We're a small shop so we have one team that does everything so one machine for all contexts is starting to be a pain. We did at least dust off some mac minis to do puppet (lots of virtual machines) work on those when possible to free up some RAM on our app dev machines.
That's a bold claim, considering the fact that most languages that have support from the Intellij platform benefit from refactor tools, quick fixes, linting, and code navigation. I'm not familiar with VS, but if it's anything like Sublime Text, Atom, etc. it probably only has syntax highlighting, some dumb auto complete and very basic navigation.
Also, don't forget Intellij has pretty decent support for Python, PHP, C#, C++, Rust, Clojure (all languages are personally tested) and even integrated git and db clients. Personally, I split my git activity between CLI and IDEA, but I have to confess, the IDEA client is the best I've used: integrated merge / diff tools, annotations, easy to browse logs etc.
Any IDE is more helpful for programming in statically-typed languages, which Java, Kotlin, or Scala are. Apache Groovy, also on your list, is dynamically-typed originally -- though static typing was added in Groovy 2, virtually no-one uses it -- so I question if any IDE, whether IntelliJ or VS, really gives time-savings there. Anyway, such dynamically typed languages like Groovy are good for glue code, build scripts, and testing, not for developing actual systems.
Maybe a specific Python project thing?
(hovers around 0.5% for PyCharm with occasional spikes up to 40-50%)
Maybe you've already tried this, but one thing that I've found is that the JVM heap size is sometimes set too low, especially when working in a large project. You enable the memory indicator in the bottom right ("Window: Show Memory Indicator" from the Cmd+Shift+A menu) to see the current and max memory usage, and you can click it to manually trigger a GC. If your heap is too low, you'll GC a lot, which can easily cause CPU spikes.
There are details on how to set the heap size here: https://www.jetbrains.com/help/pycharm/2016.2/tuning-pycharm... . But the short version is that (on Mac) I made a pycharm.vmoptions file at ~/Library/Preferences/PyCharm2016.3/pycharm.vmoptions and it includes the line "-Xmx3000m", which sets the heap size to 3GB.
As of now, it's so horrible I can't use the product. Font rendering in Atom or Sublime is so much better.From what I understand this is because of their usage of java swing. But looking at fonts is what we do all day and I can't have them to look like shit.
^ Tested on Webstorm and IntelliJ.
Will post configs when I get home. (I'm on Ubuntu 16.04 with Unity 7 and the latest updates)
I will try the latest version out!
EDIT: How do I start it with that version?
Somehow I've got really used to fixed-width font for almost anywhere, and seeing each pixel actually makes it somehow more readable to me.
Left is Intellij, Right is VS Code, same font same size.
Using the latest x64 jdk release on bintray, it's remarkably close for a swing based app.
And having said that, I actually prefer fixed non-anti-aliased, in fact very pixelish "Anonymous Pro 8" everywhere.
Left is Atom, right is Intellij and I think it's much better now than before when I installed Oracle JDK
CLion has had python for a while so that kinda covers a bunch of my use cases but I still need java
But having it as the only option is definitely restrictive. And not competitive with Eclipse, which is more flexible on this front.