Software is basically a collection of code and instructions that tell a computer how to perform a specific task. This is in stark contrast to physical hardware where the machine actually does all the work and is built by a group of people who have programming or computer science degrees. With software, there is usually just one group of people who write the software and they are called the software engineers. The software development process usually consists of writing code and testing it to make sure it’s right for the software before it’s released to the general public.
There are four main types of software applications. These are platform independent, client/server, embedded and third party. Each type has its pros and cons. I’ll discuss each one in detail below.
Platform Independent Software: This type of application software is designed to run on just about any operating system that exists. This includes Windows, Linux, MacOS, Solaris and BSD. There are exceptions to this rule such as Novell, which has their own implementation and Apple which only support a select set of languages on their OS.
Client/Server Software: This type of software development is server based meaning it’s designed to run exclusively on a computer or server. It’s the more commonly used type of programming software and is usually used as an interface between a user and a server. It can either be written in source code or in object code or with both. Most client/server programming software has a database, which stores information and resources.
Embedded Software: This category includes several different types of examples. They’re generally very simple programs that simply act as if they’re part of the OS or the hardware itself. Examples include drivers, security applications, and browser plugins. All of these examples are generally sold with a specific operating system. There are some exceptions to this though including some of the big names such as the Android Software Development kit and the iOS Software development kit.
Compilers: One major category of software is the compiler. These examples are used for compiling source code into an executable format so it can be executed on an operating system. Some examples of popular compilers include the Sun’s compiler and the Unix’s compiler. Libraries and Operating Systems: The library and operating system categories have similarities but there are many differences as well. This is probably the most important section of this article because it will describe the common software packages that you might encounter when researching different types of software development.