There have been a few times in history where we've really pushed the boundaries. The 16th and 17th century are perfect examples. Europeans began to colonize North America. Settlers were promised a better life, a fresh start, and the chance to start a new country. This was extremely tough work. Many earlier settlers died. They didn't have the luxuries they had back home. They had to built houses, roads, and entire cities from scratch. I think a lot of the very early colonists had a vision of a better place and many of them had the will power to make that happen.
I started a Rails contract in February 2010. Rails 2 was stable and standard at the time. There was nothing revolutionary at this point but it got the job done. There was nothing to argue about. That was the decision and we went with it.
Fast forward to October 2011. Jeremy Askenas releases the initial version of Backbone. A new wave of settlers comes to the developing world of client side applications. Suddenly there are many new problems. The Backbone community plants their flag and takes hold of the emerging market. They continued to settle the new world while we sat in our comfortable world on the server.
I'd been involved with Sproutcore's (also another early and successful pioneer in this space) development for a while. I knew Tom Dale and Yehuda Katz were working on the next version. It seemed they were working on future technology. They made big promises about developing ambitious web applications. We felt we had a very ambitious application. Yehuda announced Amber (which was renamed to Ember) on December 12, 2011. The timing was perfect. We made the decision. We would bet our product's success on Yehuda, Tom, and Ember. Little did we know we were entering a whole new world.
We did not know what we were getting in to. I had no idea it would be as difficult as it was. I bet there were plenty early American settlers thought the exact same thing. Everything makes sense in hindsight, but we really no clue how much effort it would take. We've ridden the endless release treadmill, dealt with breaking changes with every other commit, and a host of other issues.
I spent a significant amount of time writing Iridium after many previous attempts. There was nothing to make the actual development experience bearable. You may be thinking: Adam, why didn't you just use Yeoman? Because this was almost a year ago. There was no such thing as Yeoman then. We needed to work now, not at some unknown point in the future. This is life on the frontier. You have to take care of yourself. No one is going to do it for you. This was a prerequisite, we really couldn't build anything serious until we had this.
Paul Cowan and I were finally ready to start heads down development in December 2012. This was just around Ember's official one year birthday. Then we hit the next wall. No one had any damn idea on how to test these applications. Of course there was nothing. So we had to build it: test runners, testability into the framework, and everything else. There were I think 3 or 4 people active in this area. There was us, Paul Chavard, Jo Liss and Erik Bryn. We setup full integration/acceptance tests and unit tests. We pushed very hard for a "reset" method and other things required to make Ember more TDD friendly. We shared our working implementation and I think some of our ideas made it into the current ember-testing package. Ember-Testing was released in one of the RCs. I'm not sure how much of well established development toolchains like Java, Python, or Rubies are taken for granted. It's very hard to build up a new platform from scratch. It feels good to be on the edge pushing the boundaries but it's also very painful at times.
I'm very reflective by nature. Ember 1.0 is quickly approaching. I ask myself: what did we accomplish and what is there left to do? I used to think that having a 1.0 release would solve all our problems. The API's would settle and the framework would approach feature completeness. Now I think the 1.0 just means: we won't break stuff for a while. Sure the framework's API will settle but that does not solve the larger problem's the community is facing.
I've seen these problems before. I started with Rails in 2006. It was difficult in the earlier years. It has only really matured in the past 3 years. I think Rails 3.1 really embodies everything you need to make a certain class of web applications. Ember and its ecosystem are so far off. I was speaking to Trek Glowacki about all the issues we're facing. He described it perfectly.
Ember is like Rails. Rails 0.51.
This does not imply either project is bad. It implies a level of rapid change as the framework and ecosystems evolved. This is the first time in internet history that we're trying a full browser application. We'll continue to learn more as we make mistakes and figure out what works. Everything learned in the early releases sets the stage for the later ones. Rail's REST support is a perfect example. It was not there in the beginning. Now it's there and you can't build a Rails app without REST. The comparison also made something painfully clear: it's going to take 3-4 years to get this right.
Ember is about big promises and ambitions. It's a long bet. I just recorded an episode of the Ember Hotseat. I mentioned that Ember is shining city on a hill. It was a bastion of hope. Ember was going to revolutionize client side development in the way Rails did thousands for web developers. I think 1.0 is our first real stab at building this city.
I think back to the early American settlers and what America became. It's intimidating. How many people died settling the country? It took slaves to build up economies. There was a civil war, two world wars, and other wars. Are we going to have our own wars? How many good developers are simply going to burn out putting up with all the crap that comes from building up a new platform? Only time will tell. On the other hand I think we can agree the American experiment spawned an amazing country. This is terribly exciting to me because it gives me hope and inspires me that, yes, we can change the web beyond our wildest dreams. We are pioneers after all.
I'd like to call out some people for all their hard work: Yehuda Katz, Tom Dale, Erik Bryn, Paul Chavard, Stefen Penner, Kris Selden, Luke Melia, Peter Wagenet, Kasper Tidlemann, Jakub Arnold, Trek Glowacki, Joachim Haagen Skeie, Igor Tezic, Robin Ward, Sami Asikainen, Jeff Atwood, Alex Matchneer, Paul Cowan, Joshua Jones, Piotr Sarnacki, Gordon Hempton, Dudley Flanders, Devin Torres, Ryan Florence, Andy Leeper, Brian Cardella, James Rosen, and everyone else who has submitted a PR to Ember or Ember Data. All of these people have contributed something and their efforts do not go unnoticed or unappreciated.
Discuss on Hacker News.
— Adam Hawkins