Background:JavaScript based automation frameworks heavily depends on asynchronous execution, promises, callbacks, anonymous functions, etc which are inherently complex and probably an overkill for a straight forward task like UI test automation where we identify objects based on some locators and perform operations.
Problem Statement: why should we choose JavaScript as a language for UI test automation considering it's fundamental asynchronous nature? What are the trade-offs of choosing it as a language for test automation?
Disclaimer: I have designed a couple of large automation frameworks using the protractor for multiple applications, but I want to understand the trade-off of choosing JavaScript as a language for UI test automation?
Note: I raised this question initially on Stack Overflow but as did not get much response so thought of this might be a better platform as focused on QA only.
Other Similar Questions: Also I have seen other close question(as remarked by Peter),but I think that question is based on the premise where we already have large test base in python/other language but I am taking one more step back where we even don't have any tests in any language.Should we even then consider JavaScript as a language for UI test automation in first place considering its inherent complexity and quirkiness for straight forward task like UI automation???