One of our most bug-free services is written in Scala.
It's a great way to harvest the optimized JVM without going to Java, and its Option
type and functional mapping tendencies help you avoid NullPointerException
s.
Don't stay away from it because you think the learning curve is too steep. You'll pick up the basics in a week, and you'll become idiomatic in less time than you think.
Of course, you can always speed up the process with a good mentor.
We work in a variety of languages. Containers are useful for creating testable and encapsulated artifacts with clear boundaries, that can be verified and distributed.
But mostly, Docker is great because with minimal effort, it lets us deploy and roll back faster than our former model of cycling in new instances on EC2.
We use Python a lot. We're moving away from it, because Python's limitations in parallelism, concurrency, typing, and performance yield more costly services with a higher error ratio than other languages we've experimented with.
Python is still our lingua franca, and we love it very much, but scale has been hard on it.