What is a framework?

The term ‘framework’ is used constantly in software development, but . would we know what a framework is? Here is a Description.

Many of us who are dedicated to software development use, know or, at least, we have stumbled upon the concept of framework (approximate translation would be “framework”). However, the framework concept is not easy to define, although anyone with programming experience will grasp its meaning almost intuitively, and it is quite possible that it is using its own framework (even if it does not call it that).

The frame works are not necessarily linked to a specific language, even if it is so on many occasions. In the increasingly popular Ruby on Rails, ‘Ruby’ is the programming language and ‘Rails’ frame work; On the other hand, Java Server Faces is geared towards developments in Java. However, nothing prevents you from defining the same framework for different languages: for example, there is a framework called Biscuit whose objective is practically to become a “PHP on Rails”. Of course, the more detailed the framework, the more need to stick to a specific language.

It is also possible that the framework defines a structure for a complete application, or just focuses on one aspect of it. Following the examples, Ruby on Rails provides a framework for the complete development of a web application while Java Server Faces is more oriented interface user.

What are the advantages of using a framework?

Those derived from using a standard; among other:

The programmer does not need to consider a global structure of the application, but the framework provides a skeleton that needs to be “filled”.

It facilitates collaboration . Anyone who has had to “fight” with the source code of another programmer (or even his own, after some time!) Will know how difficult it is to understand and modify it; Therefore, everything that is defined and standardized will save time and work to collaborative developments.

It is easier to find tools (utilities, libraries) adapted to the framework specifically to facilitate development.

 What if I do not need or do not want to use a framework?

Of course, a developer can create an entire application without following any known framework; you may be so small that you do not consider it necessary, that you do not know which one suits your needs, or you simply do not want to spend time selecting and using one.However, as the application grows, a competent programmer will try to follow certain guidelines that facilitate his development and maintenance work: separation of presentation and logic, a coherent syntax, etc. The natural evolution will be that, somehow.

And instead of defining a standard, why not use one already defined, and take advantage of the work of many other developers? Making a cryptic and difficult to interpret development can be useful in an obfuscated code contest or to boast of “guru”, but it is very unhelpful to develop and maintain an application. The initial cost (the learning curve) of using a framework is likely to compensate as development work grows minimally.

 In conclusion

The use of a framework in the development of an application implies a certain initial cost of learning, although in the long run it is likely to facilitate both development and maintenance.

There are many frameworks oriented to different languages, functionalities, etc. Although choosing one of them can be a complicated task, most likely in the long run only the best defined (or most used, which do not always match the first) remain. And if none of them adapts to the needs of development, it is always better to define one’s own than to develop “wholesale”.