What is a Computer Program?
A computer is a programmable digital electronic device that — through the use of stored instructions and programs — is able to perform different tasks with data, including compilation, computation, correlation, retrieval, and selection. A computer program is one of two things. It may refer to the coding of software applications done by programmers or developers. Alternatively, it may refer to the finished products of development, known as computer programs, software applications, computer software, or apps. Even though system software is developed by programmers, it is not characteristically referred to as a computer program: the term is generally used to refer to standalone software or suites that is used in conjunction with system software, but is not required for the computer to run.
There are many different varieties of computer program, and for any task the computer user wishes to perform, there are usually a number of options available. A program can be designed for only one operating system, or there may be different iterations for the various major operating systems. It if achieves popularity, new versions of a computer program will be released periodically in order to fix bugs, add features, and provide updates to match changes in computer operating systems.
The most commonly recognized types of computer program are those that come in a box, often with a CD-ROM or DVD and a manual, which may be supplemented by online material. The user installs the program onto his or her computer and runs it alongside other programs. This type of program includes word processing programs, spreadsheets, presentation software, and database applications, which may also be sold in bundles or suites. Programs for creating or editing sound files, images, photographs, and videos are also popular, as are educational programs and games. Desktop publishing programs add layout facility to word processing capabilities and specialized science and mathematics programs handle equations and other technical material. Computer programs for creating material for sending and receiving material through the Internet are also very popular and include apps for website design, blog design, hosting webinars, conducting video chats, sending and receiving email and instant messages, uploading and downloading files, and working on files remotely along with others.
There’s one other point that I’d like to make about this article. It mentions how to access computer program files the old way, shrink and wrap. While this is still common nowadays just about everyone can buy and download software online. This isn’t just limited to free computer programs but large software packages that are hundreds of megabytes in size. In some cases you may have to download the software as one big ISO file and burn it to a DVD-ROM, then run the installer from there, but still, you can get it online.
@hamje32 - It’s definitely more enjoyable to program now than it was twenty years ago. We now have RAD (Rapid Application Development) tools that make Windows software development a breeze. I remember back in the ‘90s if you wanted to learn how to make a computer program for Windows you were stuck with Visual C++ and learning all sorts of low-level API calls. That was not a pretty picture. Nowadays everything is “drag and drop,” no matter which compiler or operating system you use.
@MrMoody - When I first started programming the thing going was BASIC. At that time (I know I’m old) the only other low-level languages were machine code and assembly language. Machine code and assembly force you to send commands to the computer’s registers and memory, and learn a whole bunch of hexadecimal stuff. To say it was slow and tedious is an understatement. I don’t think you really had to be a genius, as there are only a handful of registers you need to be aware of, but it’s certainly time-consuming. The trade-off however is increased speed. A lot of early space invader type games were written in assembly.
Nowadays PC’s are so fast that you don’t need to drop down to that low-level in order to make fast programs. I think that’s both a blessing and a curse, as programmers tend to care less about optimization than they used to. I still say the best computer programs are those that are memory efficient and use the most elegant algorithms to solve problems.
I’m not sure I follow the article’s definitions of two kinds of computer programs, but in the real world computer programs are basically broken down into software that runs in RAM and software that runs in ROM. Software loaded into RAM is what you typically think of, stuff you buy at the store. It’s installed on your hard drive and then is loaded into RAM.
Software that runs in ROM is loaded from the computer’s Read Only Memory. You can’t mess with it, for all practical purposes. I suppose you could also consider firmware software to be in this category as well. Firmware is anything that is hardware device related, like your computer’s BIOS.
Firmware nowadays would also include things like USB “dongles” and other devices where the software is basically embedded onto the chip. Depending on the device, you might be able to do some modifications to the firmware but you don’t have the freedom you have with regular software that is stored on a hard drive.
Post your comments