Software consists of computer programs that tell a computer what to do. It also includes plans and ideas that show how these programs should work.
The history of software started when digital computers were first made in the middle of the last century. Early programs were written in machine language, which only worked on one type of computer. In 1958, high-level programming languages were created, making it easier to write programs that could work on many different kinds of computers. Today, software is prepared to run on computer hardware using a compiler or interpreter.
Software is mainly split into two types: operating systems, which control the computer's hardware and help run other programs, and application software, which does specific jobs for users like writing or playing games.
With the growth of cloud computing, a new way to provide software called software as a service (SaaS) has become popular. In this way, a provider keeps applications that users accessed over the Internet.
Making software has several important steps, such as software design, writing the program, testing, release, and maintenance. It is important to make sure software quality assurance and security are good because bugs and security vulnerabilities can cause trouble. Rules about software licenses also matter for sharing and using software.
History
Main article: History of software
The word software was first used in 1958 by a mathematician named John Wilder Tukey. Early computers from the 1940s used machine language, which was difficult and not easy to use on different machines. As computers became more complex, new ways to write programs were created. These included languages like Fortran, Lisp, and COBOL to make programming simpler.
Types
There are two main types of software. Operating systems help manage a computer's resources. They make sure applications run well and share the computer's power and memory.
Application software runs on the operating system. It helps users do specific tasks, like playing games or creating art. Because of the Internet and cloud computing, many applications are now available online. Users access them through a website instead of installing them on their own computers.
Software development and maintenance
Software companies work to make good products on time and within budget. But guessing how long it will take to build software is often hard. The process starts with planning the project, checking if it’s possible, and learning what customers need. Many projects save time by using existing software, either from stores or open-source projects that anyone can use.
After a software product is released, it usually still has small problems, called bugs. Fixing these bugs and updating the software as things change is called maintenance. Over time, older software may become hard to update, especially if no one remembers how it works anymore. Maintenance can take up most of the time and money spent on a software project.
Creating software needs many different skills, including programming, testing, writing instructions, managing the project, designing graphics, understanding what users like, supporting users, marketing, and finding money to start the project.
Quality and security
Software quality means making sure a program does what it is supposed to do and works well for users. Good quality software is reliable, easy to use, and can be updated without big problems. It is better to build quality into software from the start, because fixing problems later can cost a lot of money.
With the growth of the Internet, keeping software safe became very important. Sometimes, small mistakes in software can let bad people try to take control of computers. These mistakes are called vulnerabilities. To fix known problems, developers release updates called patches. Even with these updates, some problems might still exist. Good software is designed to stay safe and work well even when someone tries to attack it.
Encoding and execution
Main article: Programming language
Programming languages are special ways to tell computers what to do. Since the 1950s, many different languages have been made. Some are very simple and close to the computer’s basic instructions. Others are easier for people to read and write. These easier languages don’t need you to know the computer’s secret code. They can work on different computers and are shorter and clearer.
When you write a program in one of these easier languages, special tools called compilers change it into the computer’s basic instructions so it can run. Sometimes, programs need extra pieces called libraries to work. The compiler helps connect these pieces. Once ready, the program can be saved and run on the computer. Some languages use interpreters instead. These turn the program into the computer’s instructions while it’s running, but this usually makes the program slower.
Legal issues
Liability
Software can have problems when it is released, and buyers usually know this. The rules about who is responsible if software stops working are different from rules for other products.
Licenses
Since the 1970s, laws have protected the code of software, giving the owner control over how it is copied. But the ideas behind the software are not protected. Some software is owned by the company that made it, while other software is free for anyone to use, change, or share. When you use software, you often agree to rules set by the owner. Some software can only be used in certain ways and cannot be shared freely.
Patents
Patents give inventors exclusive rights to a new product or process for a certain time. But ideas about software are not protected by law. Getting a software patent can be hard and costly, and there has been much discussion about whether software should be patented. In the past, software patents were not common in the United States, but a court decision in 1998 changed that. Patents only work in the country where they are granted.
Impact
Further information: Information Age
Computers and software have changed many parts of our lives, such as learning, working, playing, and health care. Software is used in everyday life in developed countries to help things like home tools and lifts work well. It has also made new technologies like the Internet, video games, mobile phones, and GPS.
The Internet lets us talk to each other through email, forums, blogs, wikis, and social media. We can also find lots of information fast with a web search. Today, many artists and designers use software to make things, like drawing, 3D modeling, changing pictures, and making moving images. Almost every complicated machine needs software to work.
This article is a child-friendly adaptation of the Wikipedia article on Software, available under CC BY-SA 4.0.
Images from Wikimedia Commons. Tap any image to view credits and license.
Safekipedia