Previously I wrote what I thought about the best programming language to learn for test automation.
Spoilers: I picked Python.
I posted links to that article on a test automation discussion site. People also posted links to the article on social media.
A couple of reactions on Twitter:
I disagree as there are many characteristics to consider and all that was mentioned is that Python has an elegant syntax, and is an interactive language. Both these points are true. Python is also fast at runtime compared to Java, but that’s about it.
— Mark Raphael (@testevangelist) February 14, 2018
Nice, a short solid answer that is easily defensible. However, I’d ask why Python over Ruby? It seems to me you could give the same reasons for Ruby. My thing with recommending Python is the confusion I first experienced trying to remember whether to dot notate or wrap a function
— Brian D. Goad (@bbbco) February 14, 2018
Mark and Brian raise valid counterpoints. Of course, the real answer is always “It depends!”
An expert knows exactly the right tool to select because they have experience to inform that choice. A beginner has almost no experience and their choices are arbitrary.
Sometimes a beginner becomes so overwhelmed by the number of choices, they become paralyzed with indecision. For a beginner, it’s often far more important to get clear direction and get some small victories under their belt. It’s about gaining momentum.
For a beginner, any choice is perfectly fine as long it gets them started. Once a beginner learns one programming language, picking up the next one will be easier.
It’s kind of like the old saying about exercise: “Which exercise is the best? The one you will do.”