Thursday, July 24, 2014

Software Development frameworks are panacea?

The human mind has a tendency to simplify everything, which is a good thing. But then there is a tendency to oversimplify by wrapping it up in such a manner that it just looks simple on the face. At present, there are many frameworks that have come up promising the paradigm of rapid application development. They are useful, in many sense that they do remove a lot of drudgery out of the development work. Especially drudgery related to a repeated task. The problem comes up when these frameworks promise the panacea for all the issues related to application development. Most of the benchmark against the number of minutes they take to build a shiny and neat CRUD applications. I would sincerely ask them to put a benchmark against how many minutes they survive after the initial honeymoon. How long they stand when the real-world problems start appearing. Many of them make
a choice that is hard to unroll and in due course become a bottleneck.
Suppose we camouflage an airplane and make it look like a car. Now if we expect that any car driver will be able to fly the plane is a foolhardy thing. What these rapid applications development tools provide and almost all of them:
  • CRUD development. But the domain world is not a one to one mapping with the relational world. And it hardly happens that we have a simple relation between user interfaces and relational tables.
  • Generating a default project structure. Even work out the packaging and deployment structures. I like this as it saves me the initial boot-up time but to claim this as a state of the art feature.
  • Providing internationalization, localization and accessible features.
  • Enabling logging and  monitoring tools automatically
Beyond this, you are on your own. And again the tougher part of the application development is not how to do it, but what to do it. Putting too much emphasis on frameworks is not a great strategy. Softwares are developed by people and not by frameworks. Human has always tried to make a machine which can replace human. A machine that can do cognitive thinking and not depends on the zillions of logic embedded in its transistor to figure out what to do in a situation. The day we will invent such the machine we will find the solution to the automatic application development problems.

Please don't make the impression that I am against the framework. What is important to understand that frameworks are means and not an end in themselves. What is build is a much harder problem to solve than how to build. Give due focus accordingly and be ready to roll your sleeves as the trench becomes deeper.

No comments:

Post a Comment