First you need to know that even though we call both features compilers they are very different:
Magento 1 compiler :
It makes a copy of every class in a Magento system and places them in a single folder. The class’s full name is used for the filename to ensure uniqueness. Then, when Magento is configured to use the compiler classes, its autoload will look in the compiler folder instead of running its normal autoload routine. This spares PHP the overhead of transversing the file system for all the different include paths.
You can find further details about the M1 compiler here: http://alanstorm.com/magento_compiler_path/
Also I suggest you read this StackExchange Q&A regarding why you should never use the M1 compiler: When should I use the Magento Compiler
Magento 2 compiler:
On the other here's what the M2 compiler does:
Code compilation consists of all of the following in no particular order:
- Application code generation (factories, proxies, and so on)
- Area configuration aggregation (that is, optimized dependency injection configurations per area)
- Interceptor generation (that is, optimized code generation of interceptors)
- Interception cache generation
- Repositories code generation (that is, generated code for APIs)
- Service data attributes generation (that is, generated extension classes for data objects)
You can find further details about the M2 compiler on the official documentation page: http://devdocs.magento.com/guides/v2.0/config-guide/cli/config-cli-subcommands-compiler.html
Out of the box, you cannot (and you shouldn't) disable the Magento 2 compilation because it is required for Magento 2 to work properly.
However, in production mode, the compiler is automatically disabled because you should manually run the DI compile before shipping to production. In developer mode, the compilation automatically starts when new/updated files are added.