Table of contents
- What is Software?
- History of Software
- Software vs. Hardware
- Software vs. Hardware Comparison Chart
- What Types of Software Exist?
- Saas vs. On-premise
- Popular Software Vendors
- Top 5 Related Software Questions
What is software?
Software is a set of instructions, data, or programs used to operate a computer and execute specific tasks. In simpler terms, software tells a computer how to function. It’s a generic term used to refer to applications, scripts, and programs that run on devices such as PCs, mobile phones, tablets, and other smart devices. Software contrasts with hardware, which is the physical aspects of a computer that perform the work.
Without software, most computers would be useless. For example, a web browser is a software application that allows users to access the internet. Without the web browser software, reading this page on Webopedia wouldn’t be possible. An operating system (OS) is a software program that serves as the interface between other applications and the hardware on a computer or mobile device. TCP/IP is built into all major operating systems to allow computers to communicate over long distance networks. Without the OS or the protocols built into it, it wouldn’t be possible to access a web browser.
The majority of software is written in high-level programming languages due to the language being closer to natural human language as opposed to machine language. The high-level language is then translated into low-level machine code using a compiler or interpreter for the computer to understand. Software can also be written in a low-level assembly language, but it is less common.
To learn more about Software Engineering, check out this course.
History of software
Computing as a concept dates back to ancient times with inventions such as the abacus. However, these inventions were fully hardware - software requires a general-purpose processor and computer memory in which reusable sets of routines and mathematical functions can be stored, started, and stopped. This type of technology surfaces fairly recently in history.
Ada Lovelace wrote the first known computer program in 1843 for the Analytical Engine. The Analytical Engine was designed by Charles Babbage in 1837 and was the concept for the first general mechanical computer. The program, however, remained theoretical as the Analytical Engine was never physically constructed. The first modern theory of software was proposed by Alan Turing in his 1935 essay, “Computable numbers with an application to the Entscheidungsproblem (decision problem)
The first time a stored-program computer held a piece of software in electronic memory and executed it successfully was on June 21, 1948. Computer Scientist Tom Kilburn and his colleague Freddie William built one of the earliest computers, the Manchester Small-Scale Experimental Machine (SSEM) at the University of Manchester in England. The SSEM was programmed to perform mathematical calculations using machine code instructions. The software took 52 minutes to correctly compute the greatest divisor of two to the power of 18 (262,144).
In the late 1950s, the first programming language emerged: Fortran. Other languages soon followed, including COBOL and BASIC. These languages allowed programs to be specific in an abstract way and were not dependent on the details of the hardware architecture of the computer. The languages were chiefly intended for specifying numerical calculations.
Software became popular in the 1970s and 80s with the arrival of personal computers. Apple released Apple II in 1977, an 8-bit home computer and one of the world’s first successful mass-produced microcomputer products. VisiCalc, the first spreadsheet software for personal computers, was released for the Apple II in 1979. The software was written in specialized assembly language. Other companies such as IBM soon developed home computers. Software for productivity and business dominated the early stages of personal computing. Popular software applications during this time included AutoCAD, Microsoft Word, and Microsoft Excel.
Another major innovation in the history of software development was the emergence of open-source software in the 1990s. The Linux kernel was released in 1991, and interest in open-source software skyrocketed after the 1998 publication of the source code for the Netscape Navigator Browser.
Also read: Input Definition and Meaning
Software vs. hardware
Computer software and hardware require each other – neither can be used on its own. A book provides a useful analogy. The pages and ink of a book are the hardware. The words, sentences, paragraphs, and overall meaning are the software. A computer without software is like a book full of blank pages. A computer needs software to make it useful just as words are needed to make a book meaningful.
While both are necessary, there are big differences between the two:
- Hardware is a physical device, such as a motherboard, whereas software is a collection of code needed to be installed into the system.
- Hardware cannot perform a task without software. Similarly, software cannot perform a task without hardware.
- Hardware wears out with time, software does not.
- Hardware only understands machine level language. Software takes input in human-readable languages and transforms it to machine level language.
- Software can be easily created, changed or deleted, whereas switching out hardware takes greater skill and is typically more expensive to do.
Software vs. hardware comparison chart
Collection of instructions that enables a user to interact with the computer
Physical devices that are required to store and execute (run) the software
System software, programming software, and application software
Input, storage, processing, control, and output devices
Provides the instruction to the hardware
Performs the task at machine level
Software failure is systematic. Software does not have an increasing failure rate.
Hardware failure is random. Hardware has increasing failure at the last stage.
Software is durable and doesn’t wear out, but with time, bugs may arise in the software which could be rectified.
Hardware wears out with time.
Software is logical in nature.
Hardware is physical in nature.
QuickBooks, Adobe Acrobat, Google Chrome, Microsoft Word, Microsoft Excel, Apple Maps
CPU, Hard drive, RAM, keyboard, mouse, USB drive
What Types of Software Exist?
The two major types of computer software are:
- Application software
- System software
Two other types of computer software include:
- Programming software
- Driver software
Programming and driver software are often considered as types of system software, but we’ll explain all four types separately.
Application software is software that helps an end user complete tasks such as doing research, taking notes, setting an alarm, designing graphics, or keeping an account log. Application software lies above the system software and is different from system software in that it’s designed for the end use and is specific in its functionality. This type of software is sometimes referred to as non-essential software because it’s installed and operated based on the user’s needs. Any application on a mobile phone is an example of application software.
Types of application software include:
- Word processors: Applications used for documentation. Examples include Microsoft Word, Google Docs, and AppleWorks
- Spreadsheet software: Software used to compute quantitative data. Examples include Microsoft Excel, Google Sheets, and Quattro Pro
- Database software: Software used to create and manage a database to organize data. This is also known as database management software (DBMS). Examples include MySQL, Clipper, and FileMaker
- Multimedia software: Tools that are able play, create, or record images, audio, or video files. It’s used for video editing, animation, graphics, and image editing. Examples include Adobe Photoshop and Picasa
- Application suites: A collection of related programs sold as a package. Microsoft Office is the most widely used application suite.
- Internet browsers: Software used to access and view websites. Examples include Google Chrome and Internet Explorer.
- Email programs: Software used for emailing. Examples include Outlook and Gmail.
System software helps the user, hardware, and application software interact and function with each other. System software acts as a mediator or middle layer between the user and the hardware. It’s essential in managing the whole computer system - when a computer is first turned on, it’s the system software that is initially loaded into memory. Unlike application software, system software isn’t used by end users. Instead, it runs in the background of a device.
The most well-known example of system software is the OS, which manages all other programs in a computer. Aside from the OS, other examples of system software include:
- Basic input/output system (BIOS): the built-in firmware that determines what a computer can do without accessing programs from a disk.
- Boot: loads the OS into the computer’s main memory or RAM.
- Assembler: Takes basic instructions and converts them into a pattern of bits that the processor can use to perform basic operations.
- Device driver: Controls a particular type of device attached to the computer, such as a keyboard or mouse.
Classified as a type of system software, programming software isn’t used by the end user. It’s used by programmers who are writing code. Programming software is a program that is used to write, develop, test, and debug other software, including application and system software. These programs serve as a sort of translator. It takes programming languages such as Python or C++ and translates it into something a computer will understand, known as machine language code. Besides simplifying code, it also:
- Assigns data storage
- Enlists source code as well as program details
- Offers diagnostic reports
- Recifties system errors during runtime
Also read: Program Definition and Meaning
Also classified as a type of system software, driver software operates and controls devices and peripherals plugged into a computer, enabling a device to perform the designated task. Hardware devices that need a driver to connect to a system include displays, sound cards, printer, mice, and hard disks.
Since there are numerous types of devices, drivers allow software systems to communicate through a standardized language. An OS typically comes with built-in drivers for a mouse, keyboard, and printer by default, so third-party installations aren’t required. For advanced devices, the driver may need to be installed externally. If multiple OS are used, such as Linux, Windows, or Mac, separate drivers need to be maintained for each. Examples of drivers include:
Device drivers can run in kernel mode or user mode. Running a driver in user mode improves stability, since a poorly written user mode driver can’t crash the system by overwriting kernel memory. Conversely, kernel mode is preferred for low-latency networking.
SaaS vs. on-premise
Software can be deployed in a few different ways, the two most common being cloud computing and on-premise.
Cloud computing is the delivery of computing services over the internet rather than having local servers or personal devices handle applications. Computing services can include servers, storage, databases, networking, software, analytics, and intelligence. These services are moved outside an organization’s firewall and can be accessed via the web. Software as a Service (SaaS) is a cloud computing service model that provides access to software, its functions, and subsequent updates remotely from a third party, called an Application Service Provider (ASP).
On-premise software is implemented within the physical confines of an enterprise, often in the company’s data center. By installing and running software on hardware located within the premises of the company, IT staff has physical access to the data and can directly control the configuration, management, and security of the computing infrastructure and data.
Companies that provide SaaS often sell their services using a subscription model where customers pay a set amount each week, month, or year, and receive the service in return. Businesses that choose SaaS only pay for the resources they use. Conversely, businesses that choose on-premise are responsible for the ongoing costs of the server hardware, power consumption, and space the hardware takes up.
A company using on-premise software retains more complete control over security. They are responsible for setting user access policies, installing firewalls, antivirus software, and security patches, and guarding against cyberattacks. For companies with adequate IT support, they don’t have to worry about another company handling their private data. However, if mismanaged, on-premise servers can make a company vulnerable to security breaches.
With cloud computing, data is handled by the cloud provider. Large cloud providers have robust security teams and tight procedures. But with all the sensitive data they store, it provides a tempting target for hackers. When choosing a cloud provider, consider their security protocols to make sure your data is kept safe.
Popular software vendors
Software vendors provide services in one of four categories: programming services, system services, open source, and SaaS. Vendors generate revenue from software licenses, maintenance services, subscription fees, and support fees. As of 2020, the biggest software companies by revenue are:
Top 5 software related questions
1. What is application software?
2. What is systems software?
3. What is software package?
4. What is software engineer?
5. What is enterprise application?