Migrating to Puppet 4.0 involves several key steps. First, migrate any code from versions prior to 3.8 to the latest 3.8 version to address deprecations. Next, enable the future parser in one environment to help identify changes needed for Puppet 4.x. Gradually migrate nodes to use the future parser. Finally, stand up a new Puppet 4 master and migrate fully while enjoying new features like application management and data in modules. The language cleanup in Puppet 4.0 focuses on expressions, strict typing, and improved error messages to provide a more consistent and predictable configuration language.