After almost ten months with the Angular 2.0 team, I've come to the conclusion that it's time to part ways.
A beginning is a very delicate time.
For almost a decade I've been creating open source UI frameworks to help developers simply and quickly build clean, testable UI. These libraries spanned a host of platforms including WPF, Silverlight, Flash, Unity3d and the Web. None of them were created in isolation. Each was based on real-world scenarios and born out of my own needs and experiences creating complex UI. They've been picked up and used by tens of thousands of developers across the world. Hearing the stories of these developers who've built businesses, fed families and just had fun using these tools has been wonderful. That's something I'm extremely proud of.
You may have followed my work over the years. If you have, you've probably seen a steady progression of ideas, an evolution of concepts and a refinement of implementations. Durandal is my most recent framework and embodies much of that learning...but it still can be so much better. I realized this and set out to build a next generation version, about a year ago...
To make a long story short, Google saw the next generation prototype and felt that it aligned well with their plans for Angular 2.0, so they asked me to join them in February of this year. It was a great opportunity to take my learning, ideas and vision and expose them to a larger community. Still, I was hesitant. I had to know that what Google was doing was compatible with my vision before I could make this type of commitment.
After a few months of working with the team, it seemed that Angular 2.0's direction was compatible with my own and that the future was bright. So, I made a public announcement to share the good news with the community. As things progressed I spoke openly on podcasts and in person about the bright future to come.
Change, choice and principles.
Several months ago the general direction of Angular 2.0 began to change in critical ways. I found myself fundamentally at odds with certain aspects of the proposed design. Still, I tried to keep an open mind and explore the various possibilities. Unfortunately, I haven't been satisfied with how things have progressed since then. At this point, there are too many irreconcilable differences. The Angular that's being built is not the Angular I signed up to work on and after careful consideration I do not believe it’s best for the Durandal community.
Please hear what I AM saying and what I am NOT saying.
I am not saying that Angular 2.0 is going to be a bad framework. What I am saying is that it is no longer fundamentally the same thing I was originally hired to help build nor is it compatible with my vision for the future. It is no longer the best path ahead for the existing Durandal community and it also isn't the best choice for anyone who has used my other frameworks and wishes to migrate to the web.
Hindsight is 20/20.
When I started out down this path I felt that sacrificing Durandal's independence as a framework would be worth it if Angular 2.0 could adopt its good ideas and bring them to a wider audience. In retrospect it was probably naive of me to think that this would work out. After almost ten months I can tell you that it hasn't.
To my community, especially those who have invested in Durandal, please accept my apology. I'm sorry for taking you on this roller coster ride. My tentative approach in the beginning was meant to prevent exactly this sort of thing from happening. I deeply regret any trouble this may have caused you and I'm sorry for the confusion.
I'm renewing my efforts on Durandal. I've got another release planned for the near future to address a few of the issues that have cropped up. All in all, I think that Durandal is still an excellent framework for building apps. It's what I would use and it's what I would recommend to others.
But there's something even better coming.
Just before I joined the Angular team, I showed a video of a prototype of the NextGen version of Durandal. I had hoped to have it ready for production this year, before I stopped work on it to join the Angular team. I'm renewing my work on that as well. Stay tuned. I'll have a lot more to say about that soon.
I'm truly sorry that I've had to leave the Angular team. I do believe that this is the best course of action for me and that it will best serve the Durandal community in the end. Thank you for your patience and forgiveness in this matter. I hope you'll look forward to seeing what's in store next.
Rob is a widely recognized UI development expert. He is the creator of Caliburn.Micro and Durandal and a former Angular 2.0 team member.