Developing software is not a big deal. If you give a requirement to any fresher with a diploma/bachelor degree, she/he can also develop software. Then what is the difference between an experienced developer and a fresher? At the end, the client wants the output. Am I right?
So what should be the aim in front of that person, who is making the software? ‘To make software ready for use as early as possible' is the first aim in front of every developer. Thus, this is not a big deal as any one can do it. For just completing the software one does not need any new technology or experienced people.
To make software ready to use as early as possible is not the aim in front of software developers; rather to develop a level of software, which adopts a change (Advancement/Updating/Flow change) smoothly should be the aim of software developers. All architecture should be designed based on this principle.
In this architecture, we apply OOPS concepts, Design patterns, Encapsulation and Abstraction concepts.
Without using the OOPS concepts, we can develop software, so why it is necessary? The aim behind this stuff is if some change request arrives, then our existing code should not get disturbed and change should be added smoothly in the software.
Now, tell me.. how will you manage this stuff in the stored procedure? How can you apply OOPS concepts and Design patterns at the stored procedure level?
The answer is: We can’t.
For this one principle, the role of the database comes into play, which stores data only. Thus, your business logic should be placed in the code. Thus, in three tier architecture, middle layer is called as Business layer.
If some issue or an error arrives, then tracing the error becomes easy.
How to implement any change without disturbing other code? How to maintain coding standards? These can be understood while working on it.
We all know a quote about design patterns. 'We can't describe design patterns via example and flow charts.. We need to feel design patterns..’
In short, if we put a patch to resolve one issue, then other gets disturbed.
Something is working in one section but not in another. By not using the stored procedures, we don’t spend much time on these kinds of issues.