Part 4 - What is computer software?Written by Eric Muss-Barnes, 6 December 2018
Now that you understand computer hardware, the next thing you need to understand is "software".
Software is what we call any information stored on your hard-drive.
There are two kinds of software: "programs" (sometimes called "applications" or "apps") and "files".
Let me explain programs first...
WHAT ARE PROGRAMS/APPLICATIONS?
Computer programs (or "applications") are a lot like television and radio programs. Televisions and radios are always the same physical object, but the program you are watching, or listening to, is constantly changing. There are educational programs on history, there are programs which are pure entertainment like a soap opera, there are programs which provide news and information, there are gameshows, there are talkshows, dramatic programs and sitcoms, and so forth.
The one enormous difference between television/radio programs and computer programs is that television/radio are passive. You just sit there and watch or listen. Computers are interactive. You actually use a computer program to complete a task. For example, while a television program might teach you how to paint, a painting program in a computer lets you use the mouse to actually draw images on your computer monitor and save them for retrieval later.
Make sense so far?
Televisions and radios are tools. They run a variety of programs you observe.
Computers are tools. They run a variety of programs you interact with.
WHAT ARE FILES?
Files are the electronic data you create with the programs.
Is that a little confusing?
Let me clarify it with another analogy.
In order to explain the difference between programs and files, I want to use the analogy of a garage.
Computers are a bit like an electronic workshop.
Computers are just like any other tool you might have in your garage. Saw. Hammer. Crescent wrench. Drill. You name it.
Like tools in your garage, computers are used to do work. To complete a task.
Unlike most tools, designed to only do one thing, like cut wood or tighten a bolt, computers are a tool that can be reconfigured to do hundreds of things. They can be used to write a book. To edit photographs. To record music. To do your taxes. To play games. And so forth.
All of these different tasks rely on a type of software called "programs".
The information you create with those programs are a different type software called "files".
For example, you might use a photo processing program to edit and save pictures, and those pictures are your files.
You might use a music production program to record songs, and those songs are your files.
Think of it like this...
I'm going to stick with the garage analogy...
Imagine you have a garage filled with tools (e.g. saws, paint, screwdrivers, drills, routers, etc.) and many objects you have created using those tools (e.g. tables, chairs, dressers, beds, desks, cabinets, shelving, etc.).
The garage is your hard-drive.
Everything in your garage is software.
The tools (saws, paint, screwdrivers, drills, routers, wrenches, etc.) are called programs.
The items you made with those tools (tables, chairs, dressers, beds, desks, cabinets, shelving, etc.) are called files.
If you haven't installed many tools inside your garage, you can't build very much.
If you haven't installed many programs inside your computer, you can't do much with it either.
When you first buy a computer, it might include a few simple programs like a calculator, a dictionary, and a digital typewriter called a "word processor". But beyond that, the metaphorical "garage" of your computer is pretty much empty. If you want to do more with your computer, you need to install more programs.
HOW DO YOU INSTALL NEW PROGRAMS INTO YOUR COMPUTER?
There are two common ways.
1.) One is to purchase a program from a store. Those programs are typically saved on some type of disk. You will insert the disk into the disk-drive on your computer and follow the instruction manual to learn how to install that program onto your hard-drive.
2.) The second way to acquire a program is over the Internet. This process is called "downloading". Downloading is slightly different from using a disk. I will have a separate article on how the Internet works, and I'll explain downloads in more detail then. So, if you're confused by downloading from the Internet, don't worry. We'll cover more of that in the future.
So, you have your disk.
Or you have your download.
Think of new computer programs like a new tool, still packaged inside a box.
Let's pretend you bought a new table saw.
What is the first thing you have to do when you get that table saw home?
You have to take it out of the box and install it. Right? It doesn't just magically set itself up in your garage, unless you're Snow White and a bunch of woodland creatures set it up for you.
Computer programs work the same way. Whether your new program is on a compact disc, or downloaded from the Internet, it is still sitting inside a kind of "digital packaging box". Once you have the digital packaging of a program on your hard-drive, it must still be installed before you can use it.
Again, I'll explain more on installing new programs a little later. For now, I just want you to understand the concept.
New tool in your garage?
Step 1: It has to be inside your garage and removed from the box.
Step 2: The tool can be installed.
New program in your computer?
Step 1: It has to be on a disc or downloaded to your hard-drive.
Step 2: The program can be installed.
HOW DO PEOPLE BUILD AND CREATE COMPUTER PROGRAMS IN THE FIRST PLACE?
A majority of the Internet languages are simplistic enough for a browser to understand your code by directly reading the file you wrote. Languages for creating software programs are a little more complicated, and the final code needs to be run through a process called "compiling". A good analogy to use is food. Compiling code is like a digital version of cooking. Once you bake a cake, there is no way to disassemble it and individually remove the milk, or the eggs, or the flour. Once an engineer compiles his code, it becomes a singular digital object, like a cooked dish of food.
While engineers write code to create programs, the programs write code to generate files. Just like the engineer uses a specific language to create the program, the program will use a specific language to store a file. This is important to understand, because it explains why you can't access any file with any program. Programs can only read and write files written in a language the program understands. For example, if you try to access a music file in a program designed to edit photographs, it will likely result in the computer giving you some kind of error message, telling you it doesn't recognize that file type. Don't worry. That won't break anything. It just won't open.
When I teach you how to code a website, the file you are working on will actually be open in two programs simultaneously. One program will be the used to write the code and the other program will be used to check your work.
Understanding exactly what "code" means is important, because that's the whole purpose of this project: Teaching you how to write computer code which displays websites.
So, how are we doing?
You keeping track so far?
"Software" is all the stuff stored electronically inside the computer, on the hard-drive.
The "hard-drive" is the piece of hardware which physically contains the software.
Software consists of "programs", which are your tools, and "files", which are your work.
Programs are written in "code" or "languages".
There are dozens of computer languages.
When programs are done being written, they are "compiled" into a final product by a computer programmer.
Files are made from code which is read and written by programs.
Programs can only read and write certain file types. If you try to access an unreadable file, the program won't know how to open it.
When you're new to computers, understanding the difference between programs and files can be very confusing. So, I hope this clarifies things for you.
Thanks for watching.
And remember, kids, the world owes you nothing... until you create things of value.
appShort for "application". Often used to describe programs on smartphones, but still befitting for computers.
applicationSee the definition of "program".
compilingThe process of packaging the code into a program. Code is like the raw ingredients of a recipe, while compiling is like cooking the dish and creating a final packaged output.
downloadAcquiring software on your computer from the Internet.
fileInformation created by programs and stored on a computer. Just like files in a physical filing cabinet in the real world, computer files might be personal letters, or essays, or photographs, or musical recordings, or blueprints or anything else you might archive.
installingRemoving a program from the "digital packaging" and getting a functional copy of it configured on your hard-drive.
languageSee the definition of "code".
softwareAny of the electronic information stored inside a computer.
source codeSee the definition of "code".
programSoftware used to configure the computer to perform different tasks. Examples of programs would be a calculator, an electronic photography darkroom, a music player, a video editor, a game, or a word processor used to compose essays and manuscripts.
programming languageSee the definition of "code".
programming languageA type of software program which allows your computer to function like a traditional typewriter.