kids encyclopedia robot

Software facts for kids

Kids Encyclopedia Facts

Software is like the brain of a computer. It's a set of instructions that tells the computer exactly what to do. Think of it as all the programs you use, from video games to web browsers and even the apps on your phone. Software also includes the plans and designs that help create these programs.

The story of software began with the first digital computers in the mid-1900s. At first, programs were written in a very basic "machine language" that only computers could understand directly. This was hard for people to use and difficult to move between different computers. In 1958, a big change happened: "high-level programming languages" were invented. These languages were much easier for humans to read and write, making it simpler to create software and use it on different types of computers. Today, software has become incredibly complex, thanks to advances in how computers connect (networking), how they run (operating systems), and how they store information (databases).

Software generally falls into two main groups:

  • Operating systems: These are the core programs that manage a computer's hardware and provide services for other programs.
  • Application software: These are programs that do specific jobs for users, like editing photos or writing documents.

A newer way to get software is through "cloud computing," which includes something called Software as a Service (SaaS). With SaaS, you don't buy and install the software on your computer. Instead, it's hosted by a company on the internet, and you access it through a web browser, often by paying a subscription fee.

Making software involves several steps: designing it, writing the code (programming), testing it to find problems, releasing it to users, and then maintaining it. Making sure software is high-quality and secure is super important. If there are "bugs" (mistakes in the code) or "vulnerabilities" (security weaknesses), it can cause systems to crash or allow unauthorized access. Also, rules about software licenses and who owns the ideas (intellectual property) are important for how software is shared and sold.

The History of Software

The word "software" was first used to describe computer programs by a mathematician named John Tukey in 1958.

The very first computers that could be programmed appeared in the late 1940s. These early machines were programmed using "machine language." This language was very hard to understand and fix, and it couldn't be easily moved from one computer to another. Back then, computer parts were very expensive, but as programs grew more complex, writing them became the biggest challenge.

In 1958, "high-level programming languages" were created. These languages made it easier to write programs by hiding the complex details of the computer's hardware. They allowed programmers to focus on the steps the computer needed to take. Some of the first high-level languages included Fortran, Lisp, and COBOL.

Types of Software

Operating system placement (software)
A diagram showing how a user interacts with application software on a typical computer. The application software works with the operating system, which then talks to the computer hardware.

There are two main kinds of software:

  • Operating Systems (OS) are like the main boss of your computer. They manage all the computer's resources for you and your other programs. An operating system does three main things:
    • It decides how to share the computer's resources, like when a program gets to use the main processor (CPU) or how much memory it can use.
    • It makes it easier for programmers to access hardware details, so they don't have to worry about the tiny specifics of the computer's parts.
    • It offers common services, like helping programs connect to the internet or save files to the hard drive. This means programs can run on different computers without needing to be completely rewritten.
  • Application Software runs on top of the operating system. It uses the computer's resources to do specific jobs. There are tons of different types of application software because computers can do so many things! Most of the software you use every day, like games, word processors, or video editors, are application software. They need an operating system to work.
Comparison of on-premise, IaaS, PaaS, and SaaS
Comparison of traditional software, Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS).

Software can also be grouped by how it's delivered to you. Traditionally, you would buy a software license, download the program, and install it on your own computer. But with the rise of the internet and "cloud computing," a new way called Software as a Service (SaaS) became popular.

In SaaS, a company hosts the software (usually on powerful computers they rent) and lets customers use it, often for a monthly fee. By 2023, SaaS products, which you usually access through a web browser, became the main way companies deliver applications.

How Software is Made and Updated

Traditional software development life cycle diagram
A diagram showing the steps in a traditional software development process from 1988. The numbers show the typical cost of each step.

Software companies want to create great products on time and within their budget. A big challenge is that it's often hard to guess how much effort a software project will take. Making software starts with an idea, then figuring out if it's possible, understanding what users need, and designing the software. Many projects speed things up by using parts of existing software, either bought from other companies or available for free (open-source).

Checking software quality usually involves people reviewing the code and automated tests. Because there's not enough time to test everything, developers often focus on the most important parts. Special methods are used for very important systems (like those in airplanes) to prove the code works perfectly. Also, users test the software to make sure it meets their expectations. There are many ways to develop software, from step-by-step plans to more flexible, ongoing methods. Creating new software is driven by what users need, while updating it (maintenance) happens when bugs are found or changes are requested.

Often, software is released even if it's not completely finished, perhaps because the development team ran out of time or money. Even after lots of testing, almost all software has "bugs" (mistakes) where it doesn't work as planned. After software is released, "maintenance" is needed to fix these bugs and keep the software working as technology changes. New features are also often added later. Over time, less maintenance is done until the product is no longer supported. Older software, called "legacy software," can sometimes be used for decades, even if no one knows how to fix it anymore. It's estimated that maintaining software over its lifetime can cost 75% or more of the total development cost.

Making a software project happen needs many different skills. It's not just programmers, but also testers, writers for instructions, project managers, graphic designers, people who focus on how easy it is to use, customer support, marketing, and even fundraising.

Software Quality and Security

Software quality means that the software does what it's supposed to do and meets what customers expect. Quality can mean the code works correctly and efficiently, can be reused, or is easy to change. It's usually cheaper to build quality into the software from the start rather than trying to add it later. Higher quality code costs less over time for both the creators and users because it's more reliable and easier to maintain. If software fails in very important systems (like medical equipment), it can have serious consequences. Some experts say that poor quality software can cost companies 20% to 40% of their sales. Even though developers try to make perfect software, almost all software has bugs.

The internet has also greatly increased the need for computer security. This is because bad actors can now launch "cyberattacks" from anywhere in the world. If a bug creates a security risk, it's called a "vulnerability." Companies often release "software patches" to fix these vulnerabilities. However, those that are unknown (called "zero-days") or haven't been fixed yet can still be exploited. Vulnerabilities vary in how easily they can be used by attackers. Some might just stop a system from working (a "denial of service" attack), while others allow attackers to run their own harmful code (called "malware") without you knowing. To stop cyberattacks, all software must be designed to resist and recover from attacks. Even with all these efforts, a lot of computers still get infected with malware.

How Software is Written and Run

Programming Languages

C Hello World Program
The source code for a simple computer program in the C language. The gray lines are comments that explain the program to humans. When this program is run, it will display "Hello, world!".

Programming languages are the special formats used to write software. Since the 1950s, thousands of different programming languages have been invented. Some have been used for many years, while others are no longer popular. Some very basic languages, like "machine code" (the exact instructions a computer understands) and "assembly language" (a slightly easier-to-read version of machine code), are sometimes called programming languages.

However, most software is written in "high-level programming languages." These languages have a few key things in common: you don't need to know machine code to write them, they can be used on different computer systems, and they are much shorter and easier for humans to read than machine code. They need to be both understandable by humans and able to be turned into clear instructions for computer hardware.

Compilation, Interpretation, and Execution

When high-level programming languages were invented, "compilers" were also created. Compilers are special programs that automatically translate high-level code into machine code. Most programs don't contain everything they need to run and rely on external "software libraries" (collections of pre-written code). Part of what a compiler does is link these files together so the program can run on the computer's hardware. Once compiled, the program can be saved as a file. Then, a part of the operating system called the "loader" can take this file and run it as a "process" on the computer.

Some programming languages use an "interpreter" instead of a compiler. An interpreter translates the program into machine code as it's running. This can make these programs 10 to 100 times slower than programs that have been compiled.

The Impact of Software

A computer graphic of the Queen Elizabeth carrier and carrier group
Computer-generated simulations are one of the amazing things made possible by software.

An engineer named Capers Jones once said that "computers and software are making profound changes to every aspect of human life: education, work, warfare, entertainment, medicine, law, and everything else." Software is everywhere in our daily lives, especially in developed countries. In many cases, software makes existing technologies better, like making household appliances or elevators smarter.

Software has also created entirely new technologies, such as the internet, video games, mobile phones, and GPS. New ways to communicate, like email, online forums, blogs, wikis, and social media, were all made possible by the internet. Huge amounts of information, far more than any paper library, are now available with a quick online search. Most creative jobs now use software tools, like computer-aided design, 3D modeling, digital image editing, and computer animation. Almost every complex device you see is controlled by software.

See also

Kids robot.svg In Spanish: Software para niños

kids search engine
Software Facts for Kids. Kiddle Encyclopedia.