The motivations of YouCompleteMe, emphasising a design that requires the user to press no buttons to see completions:
miniblog.
Related Posts
Hack, the PHP dialect, uses a persistent hh_server so linting, finding definitions etc is fast.
Whilst this is a more common model today (language server protocol, YouCompleteMe), it's an interesting design considering PHP is based on short-lived processes.
How to design a good API for autocompletion, based on experience with YouCompleteMe: