Let me tell you a little story about glue.

Last week I visited Waterloo, Ontario on vacation from work in order to visit my friends who still live there. In the middle of the week, I went to the Imprint production night, in which the University of Waterloo student newspaper, Imprint, is created.

During this night I met with Michael Davenport (hereafter referred to as "D-pr0n" or "Davenpr0n"), an ex-Imprinter I had known from my years as a student. Davenpr0n and I were in Tim Hortons at the time, discussing the things that we do and the things that had happened since I graduated and moved to New Brunswick.

Eventually the topic got changed to computer science. Though D-pr0n is a physicist in name, he is truly a mathematician at heart and therefore has a keen understanding of things computer science (like everyone should — but that's another topic).

I forget exactly what it is that he said, but he was talking about a student in software engineering with whom he had spoken. Davenpr0n, keen on programming, had asked the student her opinion about C#, Java and other similar languages (specifically, languages which "compile" to an intermediate language other than machine code) and their benefits against true compiled languages. (I may not have the exact topic right. Davenport needs to correct me if I'm wrong.)

The point is this third-year software engineering student did not understand what Davenpr0n had asked because she did not understand the differences between intermediate-language runtimes and machine code. This did not particularly surprise me, but it is a bit scary thinking that this student might go on to write real-time software for managing and monitoring a factory, power plant, space shuttle, aut cetera without a proper understanding of how the software is working at its lowest level.

At this point, Davenport asked me, "Did you know that most people don't know there are different kinds of glue?" At first glance, that seems like a rather major segue; however, the implications of this are rather profound.

When people need to attach two things together, they generally think of the problem as just that: attaching two things together. This would be fine if there were only one kind of glue that equally attached all things of all types together without needing any special considerations. The reality is the problem is fully defined by the properties of the objects that need to be attached together. Assuming glue is, in fact, the correct method of adhesion, then the type, surface area, mass and many other properties of the objects being attached dictate the type of glue needed.

Some glues attach more readily to porous materials such as wood and paper, some attach to smoother things like plastic, and some to smoother-still surfaces like glass. Some glues dry immediately, some take days to dry completely. Sometimes in order to firmly attach two objects, two different glues need to be used.

But this isn't a discussion about glues per se. The lesson here is in order to do something properly you need to understand what you're doing. Someone who thinks he can attach a glass marble to a smooth, metal surface using Elmer's paper glue will find that the marble will not remain attached for very long. This fictional person did not understand fully the problem of connecting the two objects and therefore failed before he even began.

This is true with any software Davenport's software-engineering friend creates. She cannot create effective and robust software without a firm understanding of the tools she uses to create them. One cannot attach two objects together without understanding the differences between glues. One cannot create anything, in fact, without a solid understanding of the tools needed to create.

Noticing the amount of time we had spent discussing glue, D-pr0n and I went our separate ways. I went back to Imprint to continue on my crusade against bad grammar, and he went home to get some well deserved rest.

And so, I have chosen the name for this web site: The Right Glue. Without knowing the right glue for the job, one is doomed to fail before one even begins.