The other day, I decided that it was time to update my home page. It hadn’t been updated in years and many of the links on it were stale. On a technical level, it was implemented in PHP and was ugly. I felt like it was time to update the underlying technology to something a little more in line with modern ideas about development.
My first thought was to use Rails. I had done some Rails work several years ago and had found the philosophy of configuration by convention a great improvement from the tons of XML I had to write to do a Java Server Pages site. I started investigating and discovered that I was so far behind in the Rails world that it was going to take a major effort to bring myself up to speed on all the new features. It made me question my decision to use Rails for such a “small” application.
Then I found AngularJS. What an elegant way to implement a dynamic web site. I especially liked the fact that the bulk of the compute load was shifted to the browser. The server only provided the data to feed the dynamic behavior. At last someone had implemented a framework where there was a clean separation of concerns between Model, View, and Controller. What is more, the View was implemented with carefully crafted, minimal extensions to html.
And, the most important feature of all, it was fun. I haven’t had this much fun developing in years. I also discovered the Cloud9 IDE but I’ll leave a discussion of it’s goodness for another blog post.