Access and Feeds

Glue Code: The Connector Between Software Components

By Dick Weisinger

Glue Code is code that connects programs and software components. It can move results, notifications, and data back and forth between islands of code. Glue is what lets you hook up programs and architectures that are fundamentally different to each other so that communication between them can flow. Glue facilitates the wrappers around complex libraries and can provides access to different programming languages and enables efficient and rapid prototyping.

Marcel Weiher, software engineer at InformIT, notes that perhaps the most elegant glue code ever created is the Linux pipe character (‘|’). This one-character command-line utility enables data to flow easily between core Linux capabilities. The conciseness of this one-character command, and also its flexibility and capability make it stand apart from a lot of other glue-code solutions.

Forrester says that “today, about 70% of the work is all about the development of glue code and wiring things together. From the UI front end to the back end of apps, as well as in the integration layer, there are lots of repetitive tasks, design patterns, and custom code written. And what’s worse, many teams develop the same code over and over repetitively. The creative business logic often represents the smallest effort.”

Weiher blames excessive use of and poor design of glue code as a pathway to bloated software. Weiher said that “if you have to write even a little custom code every time you connect two modules, you will be in quadratic complexity, meaning that as your features grow your glue code will overwhelm the core functionality. And you will only notice this when it’s far too late to do anything about it, because the initial growth rate will be low.” He points to glue as the reason why the software code base of even simple programs often balloon into thousands and millions of lines of code.

But the flip side to the case against bloated glue code is that the use of glue code typically saves the need to rewrite thousands or even millions of lines of code because glue code enables the connection to and leveraging of otherwise incompatible and unusable software component capabilities. With glue, there is no need to rewrite and retest core capabilities.

The point is not to get rid of glue code — glue serves an important purpose. But the goal of improving glue code and making the wiring of software components more efficient, more compact, and more elegant is definitely a worthwhile endeavor. One important use of glue will increasingly be with low-code and no-code software platforms that auto-generate glue code for rapid application development — being able to create efficient glue code will make these platforms shine.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)

Leave a Reply

Your email address will not be published. Required fields are marked *

*