5 programming languages you need to know for DevOps
There isn’t one true path for DevOps: it’s a state of mind. But, are there programming languages that make it easier to adopt DevOps? We take a look at some of the top languages for CI/CD success.
How can we make sure our DevOps adoption is a success? Are there certain languages that fit DevOps better than others? Today, we take a look at different programming languages to see which is the best approach for DevOps.
Quick caveat: if your favorite programming language isn’t on this list, that doesn’t mean it isn’t the bee’s knees. DevOps is a state of mind and a methodological process for technology, not an ironclad one-size-fits-all tech approach. If you’re rocking the DevOps mindset and coding in FORTRAN, you go on with your bad self.
Let’s dig right in! In no particular order:
Ah, Golang. Google’s open source programming language is more or less made for DevOps. Go was built for speed, but its emphasis on lean, network-efficient runtimes means great things for DevOps. It’s way less verbose than Java, and built on a foundation of C without any of the drawbacks.
Docker, the king of containers, is written in Go. And one reason why all sorts of DevOps tools are written in Go is because it makes it easy to compile standalone, static binaries for all major operating systems. No libraries, no dependencies, nothing.
Python is on the way up as an all-purpose language. GitHub recently crowned it as their second-most popular programming language. Stack Overflow called it the fastest-growing major programming language. And it’s even considered the most popular language for machine learning. Python is basically all that and a bag of potato chips.
So, what can Python do for DevOps? Python easily reduces maintenance problems with monitoring and deployment tools like Ansible, salt, and more. Options like OpenStack give developers the resources to create private and public cloud infrastructure.
While C may be old, it’s still relevant to computing in a lot of ways. C / C++ was the foundation for a lot of modern computing and its bones are still structurally important today. If you need to directly manipulate the hardware itself, there’s no better language than C.
However, C/C++ faces one very large hurdle in DevOps: its own bulk. C/C++’s sheer size is an order of magnitude or two larger than languages like Go or Ruby. Compilation times are consequently bigger in C/C++. And then there’s the binary issue as well. As C/C++ is compiled to native machine code, it has Application Binary Interface problems due to its size. There are ways around this (notably package managers).
Ruby may be past its heyday, but it’s still a useful language to learn. For one, it’s incredibly easy to pick up. For another, lots of popular automation tools are written in Ruby, notably chef. Ruby is an object-oriented, compiled, full-featured programming language. If you know Python or Perl, you are already familiar with the syntax.
It needs to be said that Ruby is not quite as popular as it used to be. Other languages picked up useful features from Ruby and implemented them in their own syntax. However, many projects on GitHub are still written in Ruby, including the popular Ruby on Rails.
Keep your eyes on Rust, which is poised to become the next big infrastructure language. Many Ruby fans have decamped over to Rust, in part because of the extremely well-documented Rust for Rubyists tutorial. (Documentation matters a lot! Incomplete documentation is the biggest problem encountered in open source.) Rust’s fast adoption of high documentation standards lowered the barrier to entry for everyone, making it easier for new fans to make the switch.
In DevOps, Rust has a growing role in systems automation, container management and container orchestration. Rust is being used in conjunction with Docker on a couple of projects, notably the online education platform Coursera. Oracle’s first container program was written in Rust. Clearly, Rust may be the technology to watch in 2018.
no food no slee