Safekipedia
Software

Software

Adapted from Wikipedia · Discoverer experience

A 3D modeling software displaying a basic cube shape, useful for learning about digital design and geometry.

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 written in the JavaScript language

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.

Diagram for a traditional software development life cycle from 1988. The numbers represent the typical cost of each phase.

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

The source code for a computer program in C. The gray lines are comments that explain the program to humans. When compiled and run, it will output "Hello, world!".

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

Blender, a free software program

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

Diagram showing different ways to use cloud computing: on-premise, Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS).

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.