When a developer creates a website, chances are he or she is working from a preexisting pile of bits of computer code. These sets of code are referred to with several different names– a library, framework, a plugin, addon, template or theme. Something that I’ve come across recently is that sometimes a web developer or programmer takes their vocabulary for granted, and easily confuses the client. Although most programmers would never confuse a library with a theme, to the normal person its all just computer code.
Below are some definitions to help the non-programmers understand what part of the program developer or a programmer is talking about when they reference their code. For example, when a web coder says, “I can make changes to the theme, but that part is in the framework and we shouldn’t touch that!” you could possibly understand why.
A Code Library
When referring to websites, a library means a collection of instructions for a specific computer language. The collection of commands helps the programmer by simplifying a repeatable task.
For example, let’s say you want a JavaScript sideshow of photos on your site. Although the developer could write a sideshow program entirely out of JavaScript by himself, chances are he will simply the process by using a JavaScript library such as jQuery. Let’s look at a an instruction the programmer might write in JavaScript:
When someone clicks this button labeled next, take the photo we’re on and make it turn invisible slowly in the course of two seconds. While you’re doing that, take the next picture and make it invisible, then slowly change the visibility of it so that its fully visible in the course of 2 seconds.
However, jQuery already has that instruction as one of its set of commands. If the developer is using jQuery, he would write something different:
Fade in and fade out those two photos when I click next. Thanks!
Well, you wouldn’t write thank you to the computer, but you get the idea.
Another reason for the use for libraries is because coding can be hard and takes a lot of thought. Thinking takes time. Instead of spending someone’s money trying to think of how to word an instruction, its much easier and cost effective to use a library of previously made instructions.
What is a framework?
Again, in website programming terms, a framework is in infrastructure to build the rest of the website off of. If a library is a pile of bones, think of a framework as a skeleton.
Frameworks are used for different reasons. Like libraries, a framework could be used to save time by having a solid foundation to work off off instead of having to make your own. Another reason would be consistency with a project among other projects. In the future, if you need to replace a section of the website or web application among many different projects, you know that one size will fit all since they are were made from the same mold.
Content Management Systems
Content management systems are a web interface to change the site text, navigation, images, or other aspects of the website or project. It is a complete project in itself that is designed to allow a non- computer savvy person to easily make changes to the site without writing their own code. Its kind of like the muscle of the site that does all the heavy lifting.
Plugins, Addons, Components
An addon, plugin, or component are moderately interchangeable terms. All three represent a collection of code that is almost a program in itself that can attached to your project. Depending on the context. For example, maybe you want an easily update-able event calendar on your site. Instead of spending hours writing a calendar program, a developer could look for a calendar plugin and add it to your site.
Typically a developer would leave most of this program in tact, as the programmer who created the part of code may make changes and updates at a later date.
Templates and Themes
A template or a theme is the skin of your site. Although the words are somewhat interchangeable, typically the word template refers to the layout, size, and positions of elements of the site, where a theme refers to the colors, typography, and graphics on the site. However those definitions are sometimes swapped depending on the coder of the project.
As the template and themes are mostly cosmetic, they are often the easiest parts of the site to change.
If all this code is out there, why am I paying a Programmer/Developer?
You’re paying for the blood and the guts! It takes a developer to sew all the pieces together, and fill the insides of your site with the organs vital to what you want your project to do. Also, the programmer might create their own distinct framework, theme, or addon specific to your project. He or she may also forgo any of these parts if they feel they are unnecessary. Libraries, frameworks, plugins, and themes are simply tools in the developer’s arsenal to help get the project done on time.
I think this covers the basics. I hope this helps someone out there understand what their programmer or developer is talking about!

