I was also asked what programming language you should use for automation. Here’s is my response to that question.
Regarding the programming language you use for automation — I don’t think it matters.
A few points to consider:
1) What language will the product developers around you be using?
You should consider using what they use because you can ask them for help and it might make for a more consistent base.
2) What platform will you be deploying to?
This isn’t a big factor, but if you’re using Linux, probably don’t use C#, but if you’re a Microsoft shop, there’s nothing wrong with it. It will also be easier to work with your existing tool chain (e.g. build tools)
I don’t think anyone needs told not to use Objective-C even if they’re an all Apple shop.
3) Do you value static or dynamic typing?
They both have pluses. I like that I can build a framework that’s intuitive to use (especially in an IDE) when I use static typing, but I often get frustrated by the hoops I have to jump through (using enums and collections) to do so.
Sometimes it’s easier to just get things done in a dynamic language. And it is still true that they’re easier to learn and the lack of a compile step can help speed things up. But type safety is nice too. I guess it depends on your own personal style.