Software constitutes the set of computer programming code alongside other utility and dependency files and tools which provide a unified application experience to end users and application programming interface (API) consumers.

Software can be created in any computer programming language, markup language or scripting language by using one or more algorithms, and can generally be classified into two major categories:

  • System software. This includes operating systems and other low-level tools which come as supplement or dependency for the operating system.
  • Application software. This includes any software written in a high-level computer programming language.

Programming languages are generally classified into two major categories:

  • Imperative languages (.NET languages, Python, etc)
  • Declarative languages (Powershell Desired State Configuration, Azure ARM, Azure Bicep, Terraform, etc)

Software runs on computer hardware and is related to firmwareFirmware stands between software and hardware and is considered as very low-level software.

Software can be deployed by using various architectures and deployment methods, including Web-based applications, mobile applications, IoT applications, operating system bootstrap routines, Microsoft Installer for Windows apps, Linux bash scripts (.sh), configuration management tools, Powershell scripts and other deployment tools and frameworks.

Other specialized types of software include middleware, which is software that is used to provide interconnection between different software architectures. Integration services and cloud-based API services are used to implement the middleware functionality. The most well-known and used API method are the following:

Related Cloud terms