Skip to main content

Too much abstraction

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.......
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

Popular posts from this blog

Gunicorn vs NGINX Explained

Web applications typically disseminate information via three server layers: Web server   - First layer: Receives request from client(web browser) Application server - 2nd layer: Receives requests from web server if the client is requesting dynamic content Database - 3rd layer: Receives database queries from web framework's request handler methods In this example , nginx is the web server, gunicorn is the application server (interface between nginx and web framwork request handling function) and the database can be assumed to be a lightweight sqlite3 database. Example: Django architecture Alternatives to nginx : Cherokee Apache HTTP server Alternatives for gunicorn: Apache Mongoose

How to transfer a gitlab repository into github

Method 1: Use the linux command line 1. Assume you have a gitlab repository called matric2016.git 2. Create a new working directory: $ mkdir myproj && cd myproj $ git clone gitlab@gitlab.com/Banzyme2/matric2016.git $ cd matric2016.git Make sure you create a github repository with the same name as the gitlab repository ,i.e. matric2016  3. Clone your project into github as follows:  $ git remote add github https://github.com/Banzyme/matric2016.git  $  git push --mirror github Method 2: Using the github dashboard repository import 1. Click "+" next to your github profile. Select import repository 2. Fill out the import form  as follows