A Side Effect of Using Frameworks

This blog will be a composition of thoughts about a side effect of frameworks that help programmers every day. This first phrase may seem odd because most developers talk about their benefits, so what is the idea here? Well, allow me to start with the definition of the context in which this phrase makes sense. 

4G has come a long way and changed the world of telecommunications for the better. Learn the history of 4G here.

Before I start, I would like to include this little main remark: in the next paragraphs, I will talk mostly about frameworks, but I know that the content of this topic can apply to other programming resources, plugins, libraries, etc.

If people could check and compare all developers’ curriculums in one or more countries, they could find some coincidences. The most important one is the experience and the acknowledgment related to frameworks, libraries, or how to use plugins. Let’s analyze this: 

A developer knows how to use a particular framework,” so this developer knows how to use an abstraction that was created to simplify a group of tasks. This can be translated as “a developer knows how to do tasks with help.” This sentence is not a good description of how probably this developer spent learning about this framework and doing all his work. However, using a framework is to simplify things for developers and allow them to do better solutions.

Now, a developer uses frameworks (and libraries, plugins, and so on) for his job. The developer has a lot of knowledge about tools that can be used to create really good solutions. The only thing that this person needs to be concerned about is writing a great performance solution, which can be maintainable and has been written thinking about code quality. There is a close relationship between these concepts, and probably a bigger list of concerns can be made, but this topic will be focused on these ones. 

After this little explanation, it is possible to summarize the context of this topic as how using frameworks can negatively affect this list of concerns when the notion that frameworks are created to help and are not here to reduce the global system quality is set in the background. 

Developers spend a lot of time learning about frameworks, solving problems related to frameworks or making mistakes related to misuses of frameworks. Sometimes, the amount of hours spent on concerns related to frameworks is more than the number of hours spent on performance concerns or code quality. At this point, someone can say, “but frameworks take into account performance, maintainability, and code quality.” Yes, that is right. The main problem is not that a framework does not reflect these concepts. The main problem is that many developers focus on simplifying a task using a framework to forget them and misuse the frameworks.

When developers have so many aids, it is too easy to do quick work, which can be a big mistake when “quick” replaces knowledge and code quality. 

Every day there is a news related to improvements, new frameworks, new versions of plugins and tools. That is great. It is great that developers can have so many resources, but imagine this situation: 

There is a new version of a framework, and now developers will have more options for a particular task. Each developer who uses it probably will want to know about what is new. This is a really good thing. 

Let’s set for this little example that this imaginary new version has no problems.

– An amount of time will be spent on learning about the new version. Then, there will be a lot of developers who will implement this new version in the best possible way. That is right. That is the idea. 

– Another group of developers who will have problems understanding the new version and spend more time learning about it. Well, this is not the best possible scenario, but it is right too. 

– Other developers will apply the newly learned concepts quickly. They will generate problems in the code and performance reduction because of a misunderstanding. Then, they will spend so much time trying to resolve the situation and blaming this new version. This is a problem.

– Other groups will apply the newly learned concepts. Still, they forget about good software practices since they focus on using the framework to solve their systems’ particular situation. This is a problem too. They are taking advantage of using a framework. But they are losing quality and maintainability and probably falling into misuse of the framework itself.

– Others (yes, this can continue and continue) will spend so much time and have the same problem as the previous groups. This is the worst scenario since we have a bigger amount of time to learn about the new version (yes, and all the errors and problems too).

Let’s now include a definition of the Cambridge dictionary as a way to represent the main idea of this blog:

Side effect: “an unwanted or unexpected result or condition that comes along with the desired effects of something / an unexpected result of a situation.”

In my opinion, using a framework can highlight the best and the worst of a developer. When developers are focused on the framework, they probably end up forgetting about system quality. Frameworks sometimes allow developers to do that so easily. It is a big side effect due to the large number of resources a developer can access.

4G has come a long way and changed the world of telecommunications for the better. Learn the history of 4G here.

You may also like

PHP Frameworks

The Usefulness of using PHP Frameworks

Web Frameworks: Why, how and when you should use them