A computer program is what makes a computer useful. Without a program
a computer is just a really expensive paper weight. Another name for
a computer program is software. This is the name that you will see
more often when referring to various programs.
"Computer software (or simply software) refers to one or more computer
programs held in the storage of a computer for some purpose. Program
software performs the function of the program it implements, either by
directly providing instructions to the computer hardware or by serving
as input to another piece of software."
"One or more computer programs, existing in any form, instructions,
manuals, associated operational procedures, or other documentation.
Software provides the instructions and controls through symbolic
languages of the operation of all computers including stand-alone and
LAN (local area network) personal computers and related equipment as
well as mainframe computers."
Software can be broken up into a lot of categories and genres. While
a full and complete list of every singe possible software category
that exists is unlikely to be possible, I have compiled a pretty good
and representative list below:
Home & Learning
Icons, Screensavers, etc.
Imaging & 3D
Math & Science
Networking & Security
There are three major types of software, Commercial, Shareware and Freeware.
** Commercial Software **
This kind of software is most often what you find in stores. The
typical model for commercial software says that you buy it up front
and any distribution of that software is illegal (known as pirating).
** Shareware **
"Shareware is a marketing method for software, whereby a trial version
is distributed without payment ahead of time as is common for
proprietary software. Typically shareware software is obtained free of
charge by downloading, thus allowing one to try out the program ahead
of time. Shareware is also known as try before you buy, demoware,
trialware and many other names. A shareware program is accompanied by
a request for payment, and often payment is required per the terms of
the license past a set period of time. "
Shareware has sub types depending on which method the author uses to
try and get the user to pay.
### CrippleWare ###
"Crippleware programs are free versions of computer programs, lacking
the most advanced or even the crucial features of the original
program. One of the canonical examples of crippleware is a word
processor that cannot save or print. Crippleware versions are made
available in order to increase popularity of the full program without
giving it away for free.
The authors of crippleware defend their marketing practices by noting
that regular shareware versions are often cracked, so that the author
is not paid for his work. Users who disagree with crippleware argue
that they cannot test the program under real life conditions and
therefore do not know whether to buy it."
### Careware ###
"Careware (or "charityware") is shareware for which either the author
suggests that some payment be made to a nominated charity or a levy
directed to charity is included on top of the distribution charge."
### Hostageware ###
"It can also describe programs that time out after a certain number of
days or after the program has been opened a certain number of times"
### Nagware ###
"Nagware (also known as annoyware) is a type of shareware, that
reminds ?or nags? the user to register it by paying a fee. It usually
does this by popping up a message when the user starts the program or,
worse, intermittently while the user is using the application."
--- Programing Languages ---
In order to make a computer do what you want a person first needs to
be able to communicate with it. This is where programming languages
come into play. There are a LOT of different programming languages
which one can choose from.
The three most popular languages at this point are C, C++, and Java.
With these different languages a user is able to create software
programs like the ones mentioned above.
You may have heard of binary (010101) before. This is how the
computer reads the programming. Because writing long and complex
programs in zeros and ones would be near impossible computer languages
were developed. These contain rules and keywords which a programmer
can use to construct a program. After he is finished it is then
compiled (translated) into binary so that the computer can read it.
While these languages are often difficult to master they are for the
most part pretty easy to learn For each of the three languages I have
described below I included the code for a sample program known as
"Hello, World". This is the standard beginner programming people
write when learning a language. When compiled and run the program
will output the words "Hello, World" to the screen.
### C ###
The C programming language was originally developed at Bell Labs
between 1969 and 1963. C was so powerful and easy to use compared to
what currently existed at the time that it quickly became (and to a
large degree still is) one of the most popular languages out there.
It was originally designed for use in the UNIX operating system. When
it became strong enough in 1973 the entire UNIX kernal was rewritten
in C, marking the first time it had been developed in something other
^^^ Sample Code ^^^
A basic explanation of each line of the program can be found here:
### C++ ###
C++ is a lot like C with one huge difference, it has what are known as
"Classes". Programming with classes is known as object-oriented
programming. A detailed explanation of object-oriented programming is
another whole answer in itself. Please see this Wikipedia article for
more information on the subject:
^^^ Sample Code ^^^
cout << "Hello World!";
### Java ###
Java is another object-oriented language which was developed by Sun
Microsystems in the early 90s.
"There were five primary goals in the creation of the Java language:
*It should use the object-oriented programming methodology.
*It should allow the same program to be executed on multiple computer platforms.
*It should contain built-in support for using computer networks.
*It should be designed to execute code from remote sources securely.
*It should be easy to use and borrow the good parts of older Object
Oriented languages like C and C++."
^^^ Sample Code ^^^
This program does the same thing that the above to do.
public class HelloWorld
public static void main(String args)
--- Sites you might be interested in... ---
Here are some links which you may find interesting.
Programming Language - Wikipedia
C Programming Tutorial
C++ Programming Tutorial
Java Programming Tutorial
I hope this answers your question. If you need anything cleared up
please request a clarification before rating my answer and I will be
more then happy to help.