English4IT - Unit 2 Introduction To Software Reading
English4IT - Unit 2 Introduction To Software Reading
English4IT - Unit 2 Introduction To Software Reading
Nothing much is simple about software. Software programs can have millions of
lines of code. If one line doesn't work, the whole program could break! Even the
process of starting software goes by many different names in English. Perhaps
the most correct technical term is 'execute', as in "the man executed the
computer program." Be careful, because the term 'execute' also means (in
another context) to put someone to death! Some other common verbs used to
start a software program you will hear are 'run', 'launch, and even 'boot' (when
the software in question is an operating system).
Software normally has both features and bugs. Hopefully more of the former than
the latter! When software has a bug there are a few things that can happen. The
program can crash and terminate with a confusing message. This is not good.
End users do not like confusing error messages such as:
Sometimes when software stops responding you are forced to manually abort the
program yourself by pressing some strange combination of keys such as ctrl-alt-
delete.
Software programs are normally written and compiled for certain hardware
platforms. It is very important that the software is compatible with all the
components of the computer. For instance, you cannot run software written for a
Windows computer on a Macintosh computer or a Linux computer. Actually, you
can, but you need to have special emulation software or a virtual machine
installed. Even with this special software installed, it is still normally best to run a
program on the kind of computer for which it was intended.
There are two basic kinds of software you need to learn about as an IT
professional. The first is closed source or proprietary software, which you are not
free to modify and improve. An example of this kind of software is Microsoft
Windows or Adobe Photoshop. This software model is so popular that some
people believe it's the only model there is. But there's a whole other world of
software out there.
The other kind of software is called open source software, which is normally free
to use and modify (with some restrictions of course). Examples of this type of
software include most popular programming languages, operating systems such
as Linux, and thousands of applications such as Mozilla Firefox and Open Office.
But what is the real difference between open source and closed source
software? Is open source source software just about saving money? Let's
investigate. Let's say for instance you find a bug in the latest version of Mozilla
Firefox. The bug is causing a major project to fail and you need to fix it right
away. This is not very likely to happen, I realize, but it's just an example. You
might take the following steps:
Step 1. Download and unzip (or uncompress) the source code from Mozilla.
Step 3. Test the fix and then use a compiler to turn the source code into a binary
file. This can take a long time for big programs. Once the source code is
compiled then the program should work!
Step 4. You are almost done. Now send the bug fix back to the Mozilla Firefox
team. They may even use your bug fix in the next release!
Now imagine you find a bug in a proprietary code base such as Microsoft Word.
What can you do? Not much, just file a bug report and hope someone fixes it at
some point.
This is a rather radical example, but I think it illustrates to a large degree why
programmers generally prefer open source software to closed source
alternatives. Good programmers love code and they want access to it. Hiding the
code from a programmer is like hiding the car engine from an auto mechanic. We
don't like it!
Now you have learned a little about software. You will learn more about software
applications and programming in later units.
Discussion Questions
Have you ever written or modified any software? If so, what were the challenges
you faced? If not, why not?
Name three pieces of software you use frequently. Why do you use them? What
would you change about them?
Pretend you are the world's best programmer and can write computer code as
fast as you can think. What kind of software would you write?