Abstraction refers to the method of 'hiding' implementation details in the process of software development. This technique is useful to prevent code duplication in a computer application.
Usually, this is achieved by the use of libraries, packages or modules contained in the programming language core library or from external sources.
So what is the issue here.......
Usually, this is achieved by the use of libraries, packages or modules contained in the programming language core library or from external sources.
So what is the issue here.......
Too much of anything is umm... bad for you!
- Most new programmers grow up with little information concerning how most libraries work in the background
- Cloud computing eliminates the need for hardware set up and low level machine configurations
- Modern programmers are mostly concerned with integrating several "black boxes" to create innovative and disruptive solutions - GREAT!
- "Essentially, we're progressing into an age where no one knows how to operate a manual transmission vehicles" - SAD!
Potential issues
- What happens when the background code in the abstraction "falls apart"? Do we still have developers who take time to understand the implementation details of the most loved "black boxes" e.g. Blue screen of death in Microsoft windows
- Potential opportunities for performance improvement may be missed - Most developers don't understand the code behind hardware drivers
- Mistakes in abstraction implementation become difficult to detect
Conclusion
Abstraction is great for innovation and seamless solutions development, but we need to consider the effects of too much abstraction on the future generation of software developers. What do you think? We'd love to hear from you, leave you comment on the comment section below?
Comments
Post a Comment