Aankhen has a peer who loves writing Python scripts to automate repetitive tasks. We'll call this person Ernest.
Ernest was pretty proud of some helpers he wrote to help him manage his Docker containers. For example, when he wanted to stop and remove all his running Docker containers, he wrote this script:
#!/usr/bin/env python
import subprocess
subprocess.run("docker kill $(docker ps -q)", shell=True)
subprocess.run("docker rm $(docker ps -a -q)", shell=True)
He aliased this script to docker-stop, so that with one command he could… run two.
"Ernest," Aankhen asked, "couldn't this just be a bash script?"
"I don't really know bash," Ernest replied. "If I just do it in bash, if the first command fails, the second command doesn't run."
Aankhen pointed out that you could make bash not do that, but Ernest replied: "Yeah, but I always forget to. This way, it handles errors!"
"It explicitly doesn't handle errors," Aankhen said.
"Exactly! I don't need to know when there are no containers to kill or remove."
"Okay, but why not use the Docker library for Python?"
"What, and make the software more complicated? This has no dependencies!"
Aankhen was left with a sinking feeling: Ernest was either the worst developer he was working with, or one of the best.
This post originally appeared on The Daily WTF.
