Software consists of computer programs that instruct the execution of a computer. It also includes design documents and specifications that guide how these programs work.
The history of software began with the development of digital computers in the mid-20th century. Early programs were written in machine language, which was specific to each type of hardware. In 1958, high-level programming languages were introduced, making it easier to write and share programs across different computer architectures. Today, software is run through a compiler or interpreter to work on computer hardware.
Software can be divided into two main types: operating systems, which manage the computer's hardware and help run other programs, and application software, which performs specific tasks for users like word processing or gaming.
With the rise of cloud computing, a new way to deliver software called software as a service (SaaS) has become popular. In this model, a provider hosts applications that users accessed over the Internet.
Developing software involves several important steps, including software design, programming, testing, release, and maintenance. Ensuring software quality assurance and security is crucial because bugs and security vulnerabilities can cause problems. Legal issues like software licenses also affect how software is shared and used.
History
Main article: History of software
The term software to describe computer programs was first used in 1958 by mathematician John Wilder Tukey. Early computers from the 1940s used machine language, which was hard to work with and not easy to move between different machines. As computers grew more complex, new programming languages like Fortran, Lisp, and COBOL were developed to make programming easier.
Types
There are two main types of software. Operating systems manage a computer's resources, helping applications run smoothly and making it easier for programmers to work. They decide how to share the computer's power and memory between different tasks.
Application software runs on top of the operating system to help users do specific things, like playing games or creating art. With the rise of the Internet and cloud computing, many applications are now provided online as a service, meaning users access them through a website instead of installing them on their own computers.
Software development and maintenance
Software companies work hard to create good products on time and within budget. However, guessing how long it will take to build software is often difficult. The process starts with planning the project, checking if it’s possible, and understanding what the 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's supposed to do and works well for users. Good quality software is reliable, easy to use, and can be updated without big problems. It's smarter 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 and could be used by bad people. 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 write instructions for computers. Since the 1950s, many different languages have been created. Some are very simple and close to the computer's basic instructions, while others are easier for people to read and write. These easier languages don’t need you to know the computer’s secret code, can work on different computers, and are shorter and clearer than the computer’s basic instructions.
When you write a program in one of these easier languages, special tools called compilers turn 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, which turn the program into the computer’s instructions while it’s running, but this usually makes the program slower.
Legal issues
Liability
Software is often released with some problems, and buyers usually know this when they purchase it. Because of this, the rules about who is responsible if something goes wrong with software are different from other products.
Licenses
Since the 1970s, laws have protected software code, giving the owner the right to control how it is copied. However, the ideas behind the software are not protected. Some software is owned by the company that created it, while other software is free for anyone to use, change, or share. Using software often means agreeing to certain rules set by the owner. Some software can only be used in specific ways and cannot be shared freely.
Patents
Patents give inventors exclusive rights to a new product or process for a certain time. Unlike patents, ideas about software are not protected by law. Getting a software patent can be difficult and expensive, and there has been a lot of 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, including education, work, entertainment, and medicine. Software is now used in everyday life in developed countries, making things like household appliances and elevators work better. It has also created new technologies such as the Internet, video games, mobile phones, and GPS. The Internet allows us to communicate through email, forums, blogs, wikis, and social media, and to find vast amounts of knowledge quickly with a web search. Today, most creative professionals use software for tasks like designing, 3D modeling, editing images, and creating animations. Almost every complex device relies on software to operate.
Images
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