Programming languages become important because they either contain interesting ideas, or they are popular. How do languages that are ‘okay’ at best become so popular?
What is Bash?
Bash is another specialized language that is very popular for programming tasks on Unix, Linux, BSD, OS X, and Windows (Cygwin). Bash is also tied closely to a well designed API, in this case the portable operating system interface, or POSIX.
It has shortcomings including a limited programming model, inelegant syntax, compatibility problems between different platforms, and inefficiencies in speed of execution and resource utilization.
Yet, it is quick and easy to use, good for working with files and directories, and works well for automating system administration tasks.
While Bash does not quite have the unique advantage of being the only option for shell scripting, it is the default shell provided by most operating systems and it can be assumed to be widely available.
The Rise Of jQuery
Node.JS Adds To JS
Cloud Computing Makes Bash More Popular
Bash has becoming a more popular programming language in recent years due to the emergence of cloud computing as a new model for IT that displaces the client/server computing model. Next generation applications, such as big data, mobile applications, and SaaS have very elastic workloads and are being designed for web-scale computing where infrastructure elements such as servers are expected to be transient. Not to mention that failures in the infrastructure should not cause the application to fail.
These higher level IT services allow programmers to treat server infrastructure as objects that need to be automatically configured when provisioned, and for this purpose Bash is ideally suited. Another important driver for the rise in the popularity of Bash shell scripting is the growing emphasis DevOps places on collaborative team work between development and IT operations resulting in the fast flow of planned work with high deployment rates and increased stability, resiliency, and security of the production environment.
Embedding Bash Shell Scripts Into Automation Frameworks
There are a number of automation frameworks, such as Puppet, Chef, and CFEngine that are designed to manage large numbers of servers. The designers of these frameworks all take a slightly different approach, but all allow programmers to embed Bash shell scripts into the elements that are used to manage the servers.
Even higher level frameworks for managing infrastructure on cloud computing platforms like CloudFormation and CloudScript are designed to manage multiple infrastructure elements such as networks, servers and storage. Not only do these frameworks allow programmers to embed Bash shell scripts into the elements that are used to manage the servers, but they allow to programmers to launch Puppet, Chef and CFEngine in the cloud computing platform.
The majority of the programming languages used by these frameworks that are designed to manage large numbers of servers and other infrastructure on cloud computing platforms are declarative, with the exception of Chef, and they are domain specific languages that have their own interpreters. Each framework provides an execution engine for the distributed systems management of the infrastructure elements.
The Technology Ecosystem Driving Bash’s Popularity
Specialized languages that are just good enough can become extremely popular due to the extenuating circumstances of a technology ecosystem, and a new innovation can catalyze the rise in popularity of the language.
Due to the coming of cloud computing, DevOps, and automation frameworks for large-scale distributed systems, don’t be surprised if you find Bash as an important language in your programming toolkit.