Curtis Franklin Jr. recently published an article detailing different programming and scripting languages commonly used in DevOps environments to drive automation. The tools he lists are essential for understanding and implementing successful DevOps.
Here is my selection of six languages that I find to be crucial for everyday DevOps:
- Java: Every list must begin with Java. It has held the honor of being the top business programming language for years and is widely considered to be the most important language any developer can have in their arsenal. Java is a dynamic language that allows developers to “write once, run anywhere.” This allows Java code to run on all supportive platforms without the need for recompilation. This is achieved through the use of a Java virtual machine, which can be used regardless of computer architecture.
- Puppet: One of the most popular application deployment automation frameworks is Puppet. Used by thousands of companies, it is an open-source configuration management tool that runs on many Unix-like systems in addition to Microsoft Windows. Puppet uses a custom declarative language to describe system resources which are stored in Puppet manifests. These manifests are cataloged and applied against target systems and the reported. The best part is that it requires limited programming knowledge to use.
- PHP: Originally designed as a web development language, PHP is now used as a multi-purpose programming language. It is applied to everything from rough prototyping to final application creation. PHP code can be used in conjunction with HTML code or combined with web template systems, web content management systems, and web frameworks. Because it lacked a written formal specification until recently, a PHP interpreter is generally necessary for code execution.
- Bash: First released in 1989, Bash is the most commonly used Unix shell. It is a command processor, but it can also read scripts. It is a powerful language that supports globbing, piping, here documents, command substitution, variables, and control structures for condition testing and iteration. In addition to running on Linux systems, Bash is also compatible with Windows and Mac OS X.
- Perl: Perl is a language used for the development of advanced web applications. It borrows features from other languages, including C, shell script (sh), AWK, and sed, making it powerful at manipulating text and text objects, but somewhat inelegant and unpolished. Nicknamed “the Swiss Army chainsaw of scripting languages” it is known for being flexible and powerful, but also extremely ugly.
- Windows PowerShell: If your business is using an application infrastructure that includes Windows, then Windows PowerShell is a must-know application. It provides four different automation control mechanisms through a .NET Framework. PowerShell is a task automation and configuration management framework that consists of a command-line shell. It provides full access to COM and WMI, enabling both local and remote administrative access of Windows and Linux systems.
Do you agree with this list? Feel free to respond in the comments with your own take on the most essential languages.