For the past 2 weeks, I have been delving into the magical world of AngularJS and single page applications. This is how the internet should be. Increased processing speeds and more memory have allowed the browser to process a lot more than what was previously feasible, allowing for a much better experience for the user.
Once one understands the main components of the Angular framework and how they fit together, creating an application isn’t too difficult. For smaller applications, it’s a lot easier. For larger applications, the learning curve may get steep. But it’s still made it so much easier to do what would take forever to do without the framework. And this may be part of the problem.
When one uses the framework (or any other framework such as ASP.Net, Spring, Django, Rails, etc), the developer can become really good at the framework, but may forego understanding on the layers that the framework abstract. So someone can put together an ASP.Net MVC project in a few minutes, but be completely oblivious to how a web request is handled by IIS (or possible Linux these days), and handled by the application. Someone can use Hibernate to abstract connections to the database, but be completely oblivious of the underlying mechanisms the application uses to connect to the database. And this leads to enslavement to the framework.
Imagine an ASP.Net WebForms (or JSP) developer from 10 years ago. Let’s call him Farai. He knows how to create massive web applications with the tools he has been given. ListViews. GridViews. Repeaters. TextBoxes. Update panels. He becomes really good at creating WebForms applications. He is promoted to senior developer in his organisation. Then ASP.Net MVC comes along. He feels threatened because this is a completely new way of doing things. He has to start from scratch. He advises his company against using the new technology, giving the appearance of prudence. Then single page applications come along with frameworks such as Knockout and Angular. His company and clients are wondering how to make their application look and feel like the other modern applications. He can’t adapt. He gets frustrated.
On the other hand, meet Thandi. She started off as an ASP.Net WebForms developer. She started off her career creating applications with WebForms. She also chose to dig deeper and understand the layers the WebForms framework abstracts. Then ASP.Net MVC comes along. Because she understands the underlying framework, she can see that it was built on top of the same framework as WebForms, and therefore shares many similarities. When asked whether to choose one or the other, she makes an informed decision, rather than one just trying to protect herself. When the client side frameworks come along, she gets excited about what they can do. She understands how the web works.
Farai’s story is one that is common for many developers. Enslaved by the framework. For adaptability and understanding, it pays a little more to dig a little deeper. Be like Thandi.