Ranked in these QuestionsQuestion Ranking
Pro Works out-of-the box, not much configuration work necessary
Maybe use this:
let g:ycm_add_preview_to_completeopt = 1
let g:ycm_autoclose_preview_window_after_completion = 1
nnoremap <leader>d :YcmCompleter GetDoc<CR>
nnoremap <leader>j :YcmCompleter GoTo<CR>
Pro Clang code completion
Pro Good fuzzy completion
Pro Multiple ways to complete. Multi language support
Con Too many dependencies
Compared to others, it has too many dependencies.
Con Works best only with C family languages
YouCompleteMe works best for C-based languages (C, C++, Objective-C, Objective-C++) and it's semantic engine is Clang-based which means that it only works for the C-family languages.
Con Does not have function arguments quick-preview (for Python)
You need to check the Docs too see how a function is defined.
Con Extremely heavyweight
YouCompleteMe installations are hundreds of megabytes large.
Con No Julia support
Only Deoplete seems to have that at the moment.