We detached this subthread from https://news.ycombinator.com/item?id=10871532 and marked it off-topic.
Took me two years of writing Clojure full-time to realize that there is no best. There are only trade-offs. These days I mostly use Javascript.
> These days I mostly use Javascript
You don't use javascript, you use a framework for javascript. In fact, because browsers don't fully support EMCA 6, you are probably even using a tool to convert your javascript code.
I absolutely abhor javascript, to the point where I stopped working on my chrome extension (which is < 500 lines at this point) until I figure out how to do it in another language. Which will probably be clojurescript or typescript.
I was in a similar place once and it compelled a tour of languages that's probably the most important event in my growth as a developer.
Finally, it seems like you're talking about client-side development. Client-side applications have to manage the intersection of state, user interaction, and some interface (browser API). That interaction comes with complexity that's classically hard to manage, else we wouldn't be spinning our wheels so much trying to figure out better ones.
JS syntax tends to hide certain mistakes but errors always throw.
If Chrome's extension API swallows exceptions, that's not a JS problem.