**Background**:JavaScript based automation frameworks heavily depends on its features such as 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 simply identify objects based on some locators and perform operations.

**Problem Statement**:If we can handle AngularJS/Angular other front-end web application framework pages in non JavaScript based automation frameworks then why should we choose JavaScript as a language for UI test automation considering it's asynchronous nature?

**Alternatives**:Or may be use porting of frameworks like protractor in languages like ruby/python which are simple,readable , user friendly so better suitable for UI test automation task? Is there something inherent in JavaScript which is required in these frameworks?

**Disclaimer**:I am  not against JavaScript or its automation frameworks like Protractor in fact I have designed couple of large frameworks using 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???