Skip to main content
App management icon

This post is from the Apperian blog and has not been updated since the original publish date.

Last Updated Sep 20, 2011 — App Management expert

The Reality of Web Development Frameworks

App Management
0Developers get pretty religious when it comes to the topic of web development frameworks. There are plenty of available MVC frameworks for every language, some with very strong followings. Ruby/Rails, Java/SpringMVC, and Python/Django are some examples of popular ones. Developers seem to be polarized about whether these are good or bad, and why. In my view, there are generally two types, lightweight ones that provide simple "plumbing", and heavier ones that offer a complete way to develop apps. The light ones provide a structure for separating the components of the MVC model, essentially providing a scaffolding on which apps can be built. They may include a template engine, or may work with several. The heavier frameworks promise a lot. They include the code structure, template system, and often provide implicit connections between objects, avoiding the need to write a lot of code. In many cases they also include an ORM, abstracting the developer from the database. Users of these say that they can develop web apps very quickly, and that they appreciate avoiding the need to understand complex SQL. I believe this is true, to a point, when it comes to prototypes and perhaps early software versions. These can be developed very rapidly. However, after that, my experience is that developers start to fight with their framework, and it becomes a liability. At Apperian, some of our technology is built using one of these heavy frameworks, and in the early days it allowed the software to advance rapidly. However, as the tasks become more complex, and as the load on the system increases, we find ourselves increasingly having to circumvent the framework. We are eliminating it bit by bit, and soon we will replace it entirely. As an example, some of our admin web pages list information, and those were built rapidly and with no direct interaction with the database. The framework took care of all that quite nicely. However, when the user load grew, these pages became unacceptably inefficient because the underlying code was not smart. It generated a ton of database hits unnecessarily. We have been systematically rewriting these pages, replacing them with direct SQL and essentially avoiding the "benefits" that the framework offers. I don't believe that a good developer can ever build a complex, database-driven system without understanding SQL well, and I think there is little value in abstracting it with an ORM. If you want your system to scale well, you need to understand how it works, and the database design is particularly important. Well-written queries can make the difference between a slow site and a fast, scalable one. If you don't know what is going on under the hood, you will never be able to optimize it. I see value in lightweight frameworks that string code together, provide a basic MVC model, and include a template system for pages. Anything more than that just gets in the way. In the future, I will continue to use frameworks, but they will be the light and simple ones. What is your experience with web development frameworks?

More from the Blog

View more
Apr 30, 2020

Mobile Application Management: A Forward View

App Management
  IT Is Adapting in the Midst of the COVID-19 Pandemic The Coron ...
Read More
May 19, 2019

Sneak Peek: How Are IT Leaders Driving Mobile App Adoption?

App Management
Apperian conducted the The Mobile Enterprise Application Survey to fin ...
Read More
Jan 30, 2019

Part 1: App Security Should Be an Integral Part of Your DevSecOps Process — Not an Afterthought

Application Security
What are the key considerations and components of DevSecOps? The in ...
Read More
Nov 19, 2018

Breaking Down the New California IoT Law

Application Security
Recently California passed legislation regarding the security of all I ...
Read More
Contact Us