Development of the different paradigms
Limitations of the imperative paradigm
Difficulty with solving certain types of problems
- Computers were intitally designed to solve mathematicl problems
- Many real life probelms do not have definite answers or a variety of answers
- This means that strategies are not purely mathematical in nature meaning the imperative paradigm is not suitable
Need to specify code for every individual process
- The imperative paradigm requires that every part of the problem must be solved for the enitre produc to work
- With a different paradigm, not all methods must be described and testing can start occuring
- In this case, modification could take place without developers becoming involved
Difficulty of coding for variability
- Many problems solved by devlopers are similar in solution strategies
- The ability to reuse code is inherent in imperative paradigms however it is not integral
- It would be preferable if code could be used for similar problems without rewriting the code
- A paradigm that focuses on the ability to reproduce code for lsightly different problems would be beneficial
Emerging technologies
- First programmers had to programs in machine language
- Assembler languages was made to remove the programmer from technical aspects and focus on solving the problem
- Ever increasing speed of hardware has allowed languages to remove the programmer from the technical
- Computers are now evolved enough for different ways of viewing and solving the problems can be utilised
Simplifying the devlopment and testing of some larger software projects
- By using different paradigms to solve a problem will allow for the simplifying of the development and testing of the solution
Strengths of different programs
- A logic paradigm allows for the inference of different methods
- This allows for different parts of the product to be tested without the entire product to be working
- An object oriented paradigm will allow for the reuse of methods for different situations
- Object oriented also allows the simplification of the problems for a real world application