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.
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?
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?
I am also not against JavaScript or its automation frameworks like Protractor, 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.
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???