Glue Languages Make You a Better Coder

September 6, 2011 holman

Glue languages are used everywhere. While you may identify as a Pythonista, or a Lua fiend, or a C++ developer, we all end up congregating in some common spaces. On the web, this means JavaScript. On the server, this means shell. These are our glue languages: languages that bring our disparate programming communities together.

JavaScript, shell scripting, SQL, and glue languages like them are ubiquitous. Grab any UNIX box and you can dive right in with a shell script. JavaScript is pushing the envelope on the client as well as the server. No matter what language you primarily develop in, improving your chops in these common-ground languages is one of the best things you can do for your career.

Specialization is for insects

It’s difficult to find a “shell scripting expert” or, to some extent, a “JavaScript expert”. Both JavaScript and shell tend to expose other technologies rather than form the primary focus of your program: your shell script exposes UNIX internals, your JavaScript binds HTML and CSS together. Because of that, you’re much more likely to find generic “sysadmins” or “front-end experts”.

That’s your opportunity. You don’t need to become the “expert” in a particular glue language, but the more you can improve your glue language skill set, the more valuable you are to a wide variety of developers.

Futuristic Glue

This is why I find projects like Node.js so interesting. JavaScript isn’t subservient to HTML and CSS anymore; it becomes a first-class language. Node is just more accessible in JavaScript than if it were written in Ruby. This is even apparent in shell: rvm, a platform-agnostic Ruby installer, is substantially written in shell rather than Ruby. You don’t need to be a Rubyist to improve the project.

It’s hard to consolidate in our industry. Technologies are forked, turned into new projects, and forked again just as quickly. But we may start to see more consolidation in the future. With more JavaScript developers, attention will continue to be focused on improving the runtime efficiency of various JavaScript engines, which will in turn continue to drive JavaScript adoption.

Back to Basics

Shell scripting syntax is fairly basic. JavaScript has a paltry standard library. But those simplicities are strengths, not weaknesses.

If your JavaScript skills consist mostly of running alert() for input validation, try stretching your legs with Node.js. If you still don’t know what a pipe is, dive into shell scripting a bit further. These languages have been around for ages, and will continue to be around for years to come.

Look into other common areas, too: they needn’t even be languages. Make sure you understand JSON and XML. Look into how you can expose your web frameworks over REST. Consider real-time streaming protocols in your API. These are concepts that transcend arbitrary language choice.

The usage of cross-discipline, cross-culture glue languages is only going to grow. Embrace it. Get out of your language comfort zone and work at becoming a better programming citizen. The more our communities can work in glue languages, the better we can work together.