Most of the IDEs (Eclipse, IntelliJ, NetBeans etc) are currently parse the complete source code and libraries and load that into memory at the begining. This causes a) Large memory requirement, b) very slow startup. Why can't we parse the files on the fly? (as Gel is doing). In most of the cases we need to parse only a limited set of files.
For auto completion:
Classname - same file and classpath (if we use 'java.util.*' kind of import)
variable/method name - one file
source code navigation may require parsing complete classes if you want to see all overloaded methods.
I think it would be better if we get choice between rich functionality with slow start and heaviness and lighter version
People in Eclipse listening?