Edit: I see Jetbrains has CLion. Any good?
Edit: I see Jetbrains has CLion. Any good?
If you are on a Mac, you should definitely give a try to XCode it is, after all, the official Apple IDE. Not even close to Visual Studio, but not as bad (for C++ at least) as many people advertise.
For Linux, Kdevelop seems nice, other Linux C++ IDEs: Eclipse, NetBeans, CLion.
You should also probably try Vim and Emacs at least once, start with their included tutorials.
This happens quite often on bad machines and nearly never on machines with a really good memory module / awesome ssd's.
Still isn't easy to fix since they are working really hard to ensure performance on a lot of machines. Also that they support everything down to Java6 makes their codebase on some edges quite wierd.
Also I don't get it why they use so many languages at once (Java, Kotlin, Groovy) and I think some parts are in C++ (fileWatcher, launcher, restarter, updater, fsnotifier)?
Kotlin is a JetBrains project. They're in the process of introducing Kotlin as a primary language for developing JetBrains applications, and Kotlin is still pre-1.0 release. As for Groovy, I think they want to replace it all with Kotlin code.
Still I think it's too early to support Kotlin at Enterprise Level. Also I'm in the transition to FP (Functional Programming) and I think Kotlin still misses some functionality around that.
Edit: maybe I will use Kotlin to replace our JavaScript Stack (currently in Angular, but totally against any practice)
Their different IDEs seem to be built on the same java core, but with extensions in the target language : Python for PyCharm, c# for ReSharper, ....
To get used to the hjkl keys, I would recommend you to download tetris and change the movement keys from the default arrows to hjkl and play for a week a little bit every day. I got used to very very fast. Some people recommend http://vim-adventures.com/ but I have never used it.
vim has a few very interesting plugins that I recommend installing, especially if you are interested in working with vim every day instead of using it only through ssh. If you end up going with vim and like it, answer me and I will go over the plugins I like the most.
The second thing is if you are planning on using plugins (which I recommend), use a plugin manager like https://github.com/junegunn/vim-plug. They make it extremely easy to install plugins, and updating them will be a breeze.
vim is not for everyone. Some people enjoy using some vim emulation for their favorite editor. Just because using vim is very common in the Linux world doesn't mean you should. I still recommend that people get used to the keys.
I would personally not install any plugins right away. I would get used to vim for at least 2 weeks and see from there what you want to do. That said, the plugins I've found the most interesting and helpful have been the following:
NERDTree (shows your project's structure. Similar to what you would find in sublime or any modern IDE)
NERDcommenter (allows you to comment/uncomment lines or groups of lines automatically)
CtrlP (fuzzy search of files in your current folder or subfolders, or inside the current repository)
ultisnips (snippets)
vim-surround (allows you to insert parentheses, brackets, quotes, etc. around the selected area)
auto-pairs (or something equivalent. Basically, creating the closing bracket, quote, etc. every time you open bracket, quote, etc.)
vim-easymotion (this is a very interesting plugin. I would recommend that you check it out to get an idea of what it does. It's useful when trying to navigate around the screen)
syntastic (syntax checker for multiple languages)
tagbar (if you enjoy having a small summary of all the functions and variables in the current file, this is for you)
supertab (vim uses c-p and c-n to complete words in insert mode. supertab allows you to complete with tab instead of c-p and c-n. If you are used to using tab in other editors, this will help you)
vim-fugitive (quite nice if you are use git. Helps you comparing newer and older revisions, for example. You can open a modified file with vim, write :Gdiff and get the uncommited changes)
youcompleteme (the best code completion tool available. Has very good context completion)
vim-colorschemes (a collection of a million different colorschemes to try)
vim-hybrid (my favorite dark colorscheme by far)
..but mostly, I learned from videos. There are plenty of them and some are really good.