Skip to main content
Sep 20, 2011

The Reality of Web Development Frameworks

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?

Rob Friedman

More from the Blog
Aug 08, 2019

Mind the Gap: Applications Are Your Biggest Weakness

Something Has To Change There has been a lot of talk this year about the need to better protect applications, particularly m ...
Read more
Aug 07, 2019

Here Comes CCPA

Ready Or Not, Here It Comes! As of publication, there are 147 days left until CCPA and SB-327 come into effect.
Read more
Aug 01, 2019

A Wake-up Call to the Financial Services Industry and Legislators: It’s Time to Regulate Mobile Apps

The time for resting on laurels is over.
Read more