As someone who has built many web applications, I’ve seen the benefits that great frameworks can have on communities, ecosystems, and technology. To speculate on the impact ember.js could have on web development, I wanted to write about Ruby on Rails. I believe there are parallels to the two frameworks.
I like to study products and why some win and some fail so I thought it would be fun to apply some thought to why Rails has had success. Great products are often viral in some nature and the key to virality is an experience that gets better as the number of users interacting increases. I think Rails may have been the very first viral web application framework. (I think ember.js could be the next one)
Over the last decade, web frameworks started popping up at higher frequencies and one of them was Ruby on Rails. Ruby was a relatively unknown programming language. Modern web frameworks were in bad shape. Building web applications was not as easy as Rails would soon make it. First, Rails popularized Ruby. Then Rails promised, and delivered, the reduction of massive boilerplate web application code. Ultimately, Rails had this powerful combination: building web applications were curiously simple & instantly gratifying. Since its release, Rails has become one of the most widely used web application frameworks.
The act of building a web application has become… fun. New ideas can be built in minutes and days rather than months. Rails made building web sites more approachable (and it sped things up heavily). Beyond the build, though, Rails was open source so you could add more features to it, which made the experience of building even better for others. When you combine a great experience around building a web application with a framework that is constantly expanding, enabling you to do more with less, you ultimately have an community that was constantly improving. I call this improvement pattern the cyclical improvement vortex. While Rails started to evolve rapidly, the greater ecosystem was getting pulled into the storm and all of these other frameworks were being rapidly improved (and many new ones created). The end result was far superior options for developers and better tooling across the board. We had more choices. We started to have more fun.
Here are a few examples that highlight how this cyclical improvement vortex attracts innovation inside and outside of the frameworks and around the community. A popular framework can become an opportunity for a new business to launch, a technology to become popular, and a generation of people to learn to code.
Heroku.com is a hosting platform that launched to support seamless deployment of Ruby on Rails applications to the cloud. Developers could build their Rails applications and then easily put that code up on to the Internet in seconds. Previously, you’d typically have to purchase a web hosting server and customize that server and then upload your code and do all of these manual steps. Heroku made everything simple and developer-friendly. Fast forward: they now support almost every popular framework and programming language and thousands (and thousands) of companies rely upon them for deployment.
Ruby, the programing language, has continued to benefit from the popularity of Ruby on Rails. It’s gotten faster, scales more efficiently, and is easier to work with. Thousands of companies have realized Ruby as a language of choice for building software. It will live on with or without Rails. I’m glad about that.
Beyond the infrastructure and technology, though, Ruby on Rails also had an impact on education in web programming. Folks felt it was so easy to get started with that Rails became the center focus of curriculum in many high schools, colleges, and developer boot camp programs (2-6 month learning engagements) . It is an approachable framework with a fair amount of educational literature on. A vibrant community of software engineers, designers, and educators can build ideas using Rails and that’s pretty awesome.
So to tie this back to ember.js…