I'm interested in learning about your experiences while writing Aurelia in ES6. What were some of the major limitations/issues and what could have been done to solve that?
I love writing in ES6! From a language perspective, there were very few challenges. All the challenges lie in the surrounding ecosystem:
Transpilers - Since ES6 isn't supported in browsers (in full) yet, developers need to use a transpiler. The best tools are Babel and TypeScript. We had numerous issues with Babel in the early days, just trying to deal with configuration changes and bugs. Those were managable. However, when they released 6.0, that created a big challenge for us. It's some months later now and we are still trying to get everything to work with Babel 6. We are getting close, but it's a significant amount of work.
Module Loaders - Modern ES6 is written as modules. When you write code in this way, you then need a module loader or bundler. This creates complexities for developers who want to use the code and creates a set of dependencies that framework authors have to rely upon in order to build, bundle and release apps. This has been very painful. It's been so painful that we are planning to build our own solution sometime later this year to help make this easier. We want to build on standards and leverage existing developer workflows, so hopefully we can make this better in the future.