Background:JavaScript based automation frameworks such as Protractor/WebDriverJS 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/other front-end web application framework pages in non JavaScript based automation frameworks then why should we go for JavaScript frameworks for UI test automation?
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???